Выполнение запросов
Важно
Поддержка синтаксиса PostgreSQL в YDB находится в разработке. Использовать её в production окружениях не рекомендуется. Запросы в PostgreSQL могут исполняться до нескольких раз медленнее по сравнению с аналогичными запросами на YQL.
Основной сценарий, который можно тестировать — выполнение аналитических запросов к хранимым в YDB данным.
Существует несколько способов запуска запросов на диалекте PostgreSQL:
- Использование нативных PostgreSQL-инструментов. YDB обладает сервисом совместимости для поддержки нативного сетевого протокола PostgreSQL - pgwire, поэтому к YDB можно подключаться стандартными клиентами PostgreSQL.
- Использование нативных YDB инструментов и явного указания, что запрос выполняется в синтаксисе PostgreSQL с помощью параметров (настроек) этих инструментов при выполнении запросов.
- Использование любых инструментов, взаимодействующих с YDB и явного указания, что запрос выполняется в синтаксисе PostgreSQL с помощью специального комментария в начале тела запроса
--!syntax_pg
.
Нативный сетевой протокол PostgreSQL
Для подключения к YDB через PostgreSQL-протокол можно использовать любые клиентские библиотеки и приложения, поддерживающие этот протокол. Ниже приведен пример подключения с помощью утилиты psql
, входящей в комплект поставки PostgreSQL.
Для подключения необходимо выполнить предварительные шаги:
- Получить адрес кластера, к которому производится подключение.
- Получить название базы данных в кластере, к которому производится подключение.
Выполнить запрос в YDB:
psql -h <ydb_address> -U <user_name> <database_name>
Где:
<ydb_address>
- адрес кластера YDB, к которому выполняется подключение.<database_name>
- название базы данных в кластере. Может быть сложным именем, например,mycluster/tenant1/database
.<user_name>
- логин пользователя.
Использование стандартных инструментов YDB
Выполнять запросы на PostgreSQL-диалекте можно с помощью любых инструментов YDB, явно указав в начале тела запроса признак диалекта с помощью специального комментария: --!syntax_pg
.
Для подключения необходимо выполнить предварительные шаги:
- Получить адрес кластера, к которому производится подключение.
- Получить название базы данных в кластере, к которому производится подключение.
Выполнить запрос к YDB:
ydb -e <ydb_address> -d <database_name> --user <user_name> sql -s '--!syntax_pg
SELECT 1;
'
Где:
<ydb_address>
— адрес кластера YDB, к которому выполняется подключение.<database_name>
— название базы данных в кластере. Может быть сложным именем, например,mycluster/tenant1/database/
.<user_name>
— логин пользователя.