Развёртывание YDB с функцией Federated Query
Важно
Данная функциональность находится в режиме "Experimental".
Общая схема инсталляции
YDB может выполнять федеративные запросы ко внешним источникам (например, объектным хранилищам или реляционным СУБД) без необходимости перемещения их данных непосредственно в YDB. В данном разделе мы рассмотрим изменения, которые необходимо внести в конфигурацию YDB и окружающую инфраструктуру для включения функциональности федеративных запросов.
Примечание
Для организации доступа к некоторым из источников данных требуется развёртывание специального микросервиса - коннектора. Ознакомьтесь c перечнем поддерживаемых источников, чтобы понять, требуется ли вам установка коннектора.
Кластер YDB и внешние источники данных в варианте production-инсталляции должны развёртываться на разных физических или виртуальных серверах, в том числе в облаках. Если для доступа к определённому источнику требуется развёртывание коннектора, это необходимо сделать на тех же серверах, на которых развёрнуты динамические узлы YDB. Иными словами, на каждый процесс ydbd
, работающий в режиме динамического узла, должен приходиться один локальный процесс коннектора.
При этом должны выполняться следующие требования:
- внешний источник данных должен быть доступен по сети для запросов со стороны YDB или со стороны коннектора (при его наличии);
- коннектор должен быть доступен по сети для запросов со стороны YDB (что достигается тривиальным образом благодаря работе этих процессов на одном и том же хосте).
Примечание
В настоящее время мы не поддерживаем развёртывание коннектора в Kubernetes, но планируем добавить её в ближайшем будущем.
Пошаговое руководство
-
Выполните шаги инструкции по развёртыванию динамического узла YDB до подготовки конфигурационных файлов включительно.
-
Если для доступа к нужному вам источнику требуется развернуть коннектор, сделайте это согласно инструкции.
-
Если для доступа к нужному вам источнику трубуется развернуть коннектор, в конфигурационном файле YDB в секции
query_service_config
добавьте подсекциюgeneric
по приведённому ниже образцу. В поляхconnector.endpoint.host
иconnector.endpoint.port
укажите сетевой адрес коннектора (по умолчаниюlocalhost
и2130
). При совместном размещении коннектора и динамического узла YDB на одном сервере установка шифрованных соединений между ними не требуется, но в случае необходимости вы можете включить шифрование, передав значениеtrue
в полеconnector.use_ssl
и указав путь до сертификата CA, использованного для подписи TLS-ключей коннектора, вconnector.ssl_ca_crt
: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: DateTimeFormat value: string - name: UsePredicatePushdown value: "true"
-
В конфигурационном файле YDB добавьте секцию
feature_flags
следующего содержания:feature_flags: enable_external_data_sources: true enable_script_execution_operations: true
-
Продолжайте развёртывание динамического узла YDB по инструкции.