---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ydb.tech/docs/en/devops/deployment-options/manual/federated-queries.md?version=main
  - https://ydb.tech/docs/ru/devops/deployment-options/manual/federated-queries.md?version=main
sourcePath: ru/core/devops/deployment-options/manual/federated-queries/index.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

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

{% note warning %}

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

{% endnote %}

## Общая схема инсталляции{#general-scheme}

YDB может выполнять [федеративные запросы](https://ydb.tech/docs/ru/concepts/query_execution/federated_query/index.md?version=main) ко внешним источникам (например, объектным хранилищам или реляционным СУБД) без необходимости перемещения их данных непосредственно в YDB. В данном разделе мы рассмотрим изменения, которые необходимо внести в конфигурацию YDB и окружающую инфраструктуру для включения функциональности федеративных запросов.

{% note info %}

Для организации доступа к некоторым из источников данных требуется развёртывание специального микросервиса - [коннектора](https://ydb.tech/docs/ru/concepts/query_execution/federated_query/architecture.md?version=main#connectors). Ознакомьтесь c [перечнем поддерживаемых источников](https://ydb.tech/docs/ru/concepts/query_execution/federated_query/architecture.md?version=main#supported-datasources), чтобы понять, требуется ли вам установка коннектора.

{% endnote %}

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

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

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

![Инсталляция YDB FQ](_images/ydb_fq_onprem.png "Инсталляция YDB FQ" =1024x)

{% note info %}

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

{% endnote %}

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

1. Выполните шаги инструкции по развёртыванию динамического узла YDB до [подготовки конфигурационных файлов](https://ydb.tech/docs/ru/devops/deployment-options/manual/initial-deployment/deployment-configuration-v1.md?version=main#config) включительно.
2. Если для доступа к нужному вам источнику требуется развернуть коннектор, сделайте это [согласно инструкции](https://ydb.tech/docs/ru/devops/deployment-options/manual/federated-queries/connector-deployment.md?version=main).
3. [В конфигурационном файле](https://ydb.tech/docs/ru/reference/configuration/index.md?version=main) YDB в секции `feature_flags` включите флаг `enable_external_data_sources`:

```yaml
feature_flags:
  enable_external_data_sources: true
```

4. [В конфигурационный файл](https://ydb.tech/docs/ru/reference/configuration/index.md?version=main) YDB добавьте [настройки внешних источников данных](https://ydb.tech/docs/ru/reference/configuration/query_service_config.md?version=main).

{% list tabs %}

- Без использования коннектора

    ```yaml
    query_service_config:
      generic:
        default_settings:
        - name: UsePredicatePushdown
          value: "true"
      all_external_data_sources_are_available: false
      available_external_data_sources:
      - ObjectStorage
    ```

- С использованием коннектора

    ```yaml
    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
    ```

{% endlist %}

5. Продолжайте развёртывание динамического узла YDB по [инструкции](https://ydb.tech/docs/ru/devops/deployment-options/manual/initial-deployment/index.md?version=main).
