Работа с базами данных Managed Service for YDB
В этом разделе описана основная информация про работу с Managed Service for YDB.
Для работы с базой данных Managed Service for YDB из Yandex Query необходимо выполнить следующие шаги:
- Создать соединение, содержащее реквизиты для подключения к базе данных.
- Выполнить запрос к базе данных.
Пример запроса, выполняющего чтение данных из Managed Service for YDB:
SELECT * FROM ydb_connection.my_table
где:
ydb_connection
— название созданного соединения с базой данных.my_table
— имя таблицы в базе данных.
Настройка соединения
Чтобы создать соединение с Managed Service for YDB:
-
В консоли управления
выберите каталог, в котором нужно создать соединение. -
В списке сервисов выберите Yandex Query.
-
На панели слева перейдите на вкладку Соединения.
-
Нажмите кнопку
Создать. -
Укажите параметры соединения:
-
В блоке Общие параметры:
- Имя — название соединения с Managed Service for YDB.
- Тип —
Managed Service for YDB
.
-
В блоке Параметры типа соединения:
-
Кластер — выберите существующую базу данных Managed Service for YDB или создайте новую.
-
Сервисный аккаунт — выберите сервисный аккаунт Managed Service for YDB, от имени которого будет выполняться подключение к кластерам
Managed Service for YDB
и аутентификация в базе данных. Если сервисного аккаунта нет, создайте его и назначьте ему рольydb.viewer
.Чтобы использовать сервисный аккаунт, пользователю нужна роль
iam.serviceAccounts.user
.
-
-
-
Нажмите кнопку Создать.
Синтаксис запросов
Для работы с Managed Service for YDB используется следующая форма SQL-запроса:
SELECT * FROM <соединение>.<имя_таблицы>
где:
<соединение>
— название созданного соединения с базой данных.<имя_таблицы>
— имя таблицы в базе данных.
Ограничения
Внешние источники доступны только для чтения данных через запросы SELECT
. Запросы, модифицирующие таблицы во внешних источниках, сервисом Yandex Query в настоящее время не поддерживаются.
Пушдаун фильтров
Yandex Query умеет передавать обработку частей запросов в систему-источник данных. Это означает, что фильтрующие выражения передаются сквозь Yandex Query непосредственно в базу данных для обработки, обычно это условия запросов, указанных в WHERE
. Такой способ обработки называется пушдаун фильтров
.
Пушдаун фильтров возможен при использовании:
Описание | Пример |
---|---|
Фильтров вида IS NULL /IS NOT NULL |
WHERE column1 IS NULL или WHERE column1 IS NOT NULL |
Логических условий OR , NOT , AND . |
WHERE column IS NULL OR column2 is NOT NULL . |
Условий сравнения = , <> , < , <= , > , >= c другими колонками или константами. |
WHERE column3 > column4 OR column5 <= 10 . |
Поддерживаемые типы данных для пушдауна фильтров:
Тип данных Yandex Query |
---|
Bool |
Int8 |
Uint8 |
Int16 |
Uint16 |
Int32 |
Uint32 |
Int64 |
Uint64 |
Float |
Double |
String |
Utf8 |
Поддерживаемые типы данных
Ниже приведены таблицы соответствия типов данных в Managed Service for YDB и Yandex Query. Типы данных, не указанные в таблицах, не поддерживаются.
Примитивные типы данных
Тип данных Managed Service for YDB | Тип данных Yandex Query |
---|---|
Bool |
Bool |
Int8 |
Int8 |
Uint8 |
Uint8 |
Int16 |
Int16 |
Uint16 |
Uint16 |
Int32 |
Int32 |
Uint32 |
Uint32 |
Int64 |
Int64 |
Uint64 |
Uint64 |
Float |
Float |
Double |
Double |
Date |
Date |
Datetime |
Datetime |
Timestamp |
Timestamp |
String |
String |
Utf8 |
Utf8 |
Json |
Json |
JsonDocument |
Json |
Опциональные типы данных
Тип данных Managed Service for YDB | Тип данных Yandex Query |
---|---|
Optional<Bool> |
Optional<Bool> |
Optional<Int8> |
Optional<Int8> |
Optional<Uint8> |
Optional<Uint8> |
Optional<Int16> |
Optional<Int16> |
Optional<Uint16> |
Optional<Uint16> |
Optional<Int32> |
Optional<Int32> |
Optional<Uint32> |
Optional<Uint32> |
Optional<Int64> |
Optional<Int64> |
Optional<Uint64> |
Optional<Uint64> |
Optional<Float> |
Optional<Float> |
Optional<Double> |
Optional<Double> |
Optional<Date> |
Optional<Date> |
Optional<Datetime> |
Optional<Datetime> |
Optional<Timestamp> |
Optional<Timestamp> |
Optional<String> |
Optional<String> |
Optional<Utf8> |
Optional<Utf8> |
Optional<Json> |
Optional<Json> |
Optional<JsonDocument> |
Optional<Json> |