Развёртывание YDB с функцией Federated Query
Важно
Данная функциональность находится в режиме "Experimental".
Общая схема инсталляции
YDB может выполнять федеративные запросы ко внешним источникам (например, объектным хранилищам или реляционным СУБД) без необходимости перемещения их данных непосредственно в YDB. В данном разделе мы рассмотрим изменения, которые необходимо внести в конфигурацию YDB и окружающую инфраструктуру для включения функциональности федеративных запросов.
Примечание
Для организации доступа к некоторым из источников данных требуется развёртывание специального микросервиса - коннектора. Ознакомьтесь c перечнем поддерживаемых источников, чтобы понять, требуется ли вам установка коннектора.
Кластер YDB и внешние источники данных в варианте production-инсталляции должны развёртываться на разных физических или виртуальных серверах, в том числе в облаках. Если для доступа к определённому источнику требуется развёртывание коннектора, это необходимо сделать на тех же серверах, на которых развёрнуты динамические узлы YDB. Иными словами, на каждый процесс ydbd, работающий в режиме динамического узла, должен приходиться один локальный процесс коннектора.
При этом должны выполняться следующие требования:
- внешний источник данных должен быть доступен по сети для запросов со стороны YDB или со стороны коннектора (при его наличии);
- коннектор должен быть доступен по сети для запросов со стороны YDB (что достигается тривиальным образом благодаря работе этих процессов на одном и том же хосте).

Примечание
В настоящее время мы не поддерживаем развёртывание коннектора в Kubernetes, но планируем добавить её в ближайшем будущем.
Пошаговое руководство
- Выполните шаги инструкции по развёртыванию динамического узла YDB до подготовки конфигурационных файлов включительно.
- Если для доступа к нужному вам источнику требуется развернуть коннектор, сделайте это согласно инструкции.
- В конфигурационном файле YDB в секции
feature_flagsвключите флагenable_external_data_sources:
feature_flags:
enable_external_data_sources: true
- В конфигурационный файл YDB добавьте настройки внешних источников данных.
query_service_config:
generic:
default_settings:
- name: UsePredicatePushdown
value: "true"
all_external_data_sources_are_available: false
available_external_data_sources:
- ObjectStorage
query_service_config:
generic:
connector:
endpoint:
host: localhost # имя хоста, где развернут коннектор
port: 2130 # номер порта коннектора
use_ssl: false # флаг, включающий шифрование соединений
ssl_ca_crt: "/opt/ydb/certs/ca.crt" # путь к сертификату CA
default_settings:
- name: UsePredicatePushdown
value: "true"
all_external_data_sources_are_available: false
available_external_data_sources:
- ClickHouse
- MySQL
- Продолжайте развёртывание динамического узла YDB по инструкции.