Развёртывание YDB с функцией Federated Query

Важно

Данная функциональность находится в режиме "Experimental".

Общая схема инсталляции

YDB может выполнять федеративные запросы ко внешним источникам (например, объектным хранилищам или реляционным СУБД) без необходимости перемещения их данных непосредственно в YDB. В данном разделе мы рассмотрим изменения, которые необходимо внести в конфигурацию YDB и окружающую инфраструктуру для включения функциональности федеративных запросов.

Примечание

Для организации доступа к некоторым из источников данных требуется развёртывание специального микросервиса - коннектора. Ознакомьтесь c перечнем поддерживаемых источников, чтобы понять, требуется ли вам установка коннектора.

Кластер YDB и внешние источники данных в варианте production-инсталляции должны развёртываться на разных физических или виртуальных серверах, в том числе в облаках. Если для доступа к определённому источнику требуется развёртывание коннектора, это необходимо сделать на тех же серверах, на которых развёрнуты динамические узлы YDB. Иными словами, на каждый процесс ydbd, работающий в режиме динамического узла, должен приходиться один локальный процесс коннектора.

При этом должны выполняться следующие требования:

  • внешний источник данных должен быть доступен по сети для запросов со стороны YDB или со стороны коннектора (при его наличии);
  • коннектор должен быть доступен по сети для запросов со стороны YDB (что достигается тривиальным образом благодаря работе этих процессов на одном и том же хосте).

Инсталляция YDB FQ

Примечание

В настоящее время мы не поддерживаем развёртывание коннектора в Kubernetes, но планируем добавить её в ближайшем будущем.

Пошаговое руководство

  1. Выполните шаги инструкции по развёртыванию динамического узла YDB до подготовки конфигурационных файлов включительно.
  2. Если для доступа к нужному вам источнику требуется развернуть коннектор, сделайте это согласно инструкции.
  3. В конфигурационном файле YDB в секции feature_flags включите флаг enable_external_data_sources:
feature_flags:
  enable_external_data_sources: true
  1. В конфигурационный файл 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
  1. Продолжайте развёртывание динамического узла YDB по инструкции.