[Документация Yandex Cloud](../../../index.md) > [Yandex DataLens](../../index.md) > Подключения > Базы данных > Создание подключения к ClickHouse®

# Создание подключения к ClickHouse® в Yandex DataLens

{% note info %}

Все запросы к данным выполняются с включенным флагом [join_use_nulls](https://clickhouse.com/docs/ru/operations/settings/settings#join_use_nulls). Ознакомьтесь с разделом [Особенности работы с подключением к ClickHouse®](#ch-connection-specify), если вы используете представления (VIEW) или подзапросы с секцией JOIN в DataLens.

{% endnote %}


{% note warning %}

Yandex Cloud не отвечает за настройки удаленного подключения со стороны внешнего сервера БД. Подключая внешнюю БД, которая не является ресурсом Yandex Cloud:

* При использовании собственного [SSL-сертификата](../../../glossary/ssl-certificate.md) проверьте, что он совпадает с сертификатом на стороне БД.
* Предоставьте доступ к БД для следующих диапазонов IP-адресов сервиса DataLens (через `/` указана длина маски подсети):

  {% list tabs group=ip_address %}

  - ipv4 {#ipv4}

    * `178.154.242.176/28`
    * `178.154.242.192/28`
    * `178.154.242.208/28`
    * `178.154.242.128/28`
    * `178.154.242.144/28`
    * `178.154.242.160/28`
    * `130.193.60.0/28`

  - ipv6 {#ipv6}

    * `2a02:6b8:c03:500:0:f83d:a987:0/112`
    * `2a02:6b8:c02:900:0:f83d:a987:0/112`
    * `2a02:6b8:c0e:500:0:f83d:a987:0/112`
    * `2a02:6b8:c41:1300:0:f83d:a987:0/112`

  {% endlist %}

{% endnote %}

Чтобы создать подключение к ClickHouse®:

1. Перейдите на [страницу создания нового подключения](https://datalens.ru/connections/new).
1. В разделе **Базы данных** выберите подключение **ClickHouse®**.


1. Выберите тип подключения:

   {% list tabs group=connection %}

   - Выбрать в организации {#organization}

     Выберите управляемую БД в текущей организации Yandex Cloud и укажите для нее параметры, чтобы подключиться по внутренней сети:

     * **Облако и каталог**. Выберите каталог, в котором находится кластер.
     * **Кластер**. Укажите кластер из списка доступных кластеров ClickHouse®. В настройках кластера должна быть активирована опция **Доступ из DataLens**. Если у вас нет доступного кластера, нажмите кнопку **Создать новый**.

       {% note info %}
       
       В списке отображаются кластеры:
       
       * с правами доступа для пользователя, создающего подключение;
       * созданные в той же [организации](../../concepts/organizations.md), что и экземпляр DataLens.
       
       {% endnote %}

     * **Тип хоста**. Выберите тип хоста:

       * **Обычный** (по умолчанию) — позволяет выбрать обычные хосты для подключения.
       * **Особые FQDN** — позволяет выбрать [особый FQDN](../../../managed-clickhouse/operations/connect/fqdn.md#auto) для подключения к доступному хосту кластера ClickHouse®.

     * **Имя хоста**. Выберите имя хоста из списка доступных в кластере ClickHouse®. Вы можете выбрать несколько хостов. Если к первому хосту подключиться не получится, DataLens выберет следующий из списка.
     * **Порт HTTP-интерфейса**. Укажите порт подключения к ClickHouse®. Порт по умолчанию — 8443.
     * **Имя пользователя**. Укажите имя пользователя для подключения к ClickHouse®.

       {% note warning %}
                     
        У пользователя должно быть установлено одно из следующих значений параметра [readonly](https://clickhouse.com/docs/ru/operations/settings/permissions-for-queries#settings_readonly):
                
         * `0` — разрешены все запросы.
         * `1` — разрешены только запросы на чтение данных. В этом случае в [настройках](https://clickhouse.com/docs/ru/operations/settings/settings) ClickHouse® укажите:
       
           * `join_use_nulls = 1`
           * `send_progress_in_http_headers = 0`
           * `output_format_json_quote_denormals = 1`
       
           Для использования разрешения в DataLens в дополнительных настройках подключения для параметра `Readonly` выберите значение `1`.
       
         * `2` — разрешены запросы на чтение данных и изменение настроек.
                 
       {% endnote %}

     * **Пароль**. Укажите пароль для пользователя.
     * **Время жизни кеша в секундах**. Укажите время жизни кеша или оставьте значение по умолчанию. Рекомендованное значение — 300 секунд (5 минут).

     * **Уровень доступа SQL-запросов**. Позволяет использовать произвольный SQL-запрос для [формирования датасета](../../dataset/settings.md#sql-request-in-datatset). По умолчанию опция отключена. При активации необходимо выбрать уровень доступа SQL-запросов:
     
        * **Только подзапросы** — описывать источники датасета с помощью [SQL-запросов](../../dataset/settings.md#sql-request-in-datatset).
        * **Подзапросы и параметры** — описывать источники датасета с помощью SQL-запросов и использовать [параметризацию источников](../../dataset/settings.md#parametrization).
        * **SQL на чтение** — описывать источники датасета с помощью SQL-запросов, использовать параметризацию источников и [создавать QL-чарты](../../concepts/chart/ql-charts.md).

       Чтобы проверить корректность введенных параметров, нажмите кнопку **Проверить подключение**.

     ![image](../../../_assets/datalens/connection/ch.png)  

   - Указать вручную {#manual}

     Вручную укажите реквизиты внешней БД, чтобы подключиться через публичную сеть:

     - **Имя хоста**. Укажите путь до хоста-мастера или IP-адрес хоста-мастера ClickHouse®. Вы можете указать несколько хостов через запятую. Если к первому хосту подключиться не получится, DataLens выберет следующий из списка.
     - **Порт HTTP-интерфейса**. Укажите порт подключения к ClickHouse®. Порт по умолчанию — 8443.
     - **Имя пользователя**. Укажите имя пользователя для подключения к ClickHouse®.
     
       {% note warning %}
                     
        У пользователя должно быть установлено одно из следующих значений параметра [readonly](https://clickhouse.com/docs/ru/operations/settings/permissions-for-queries#settings_readonly):
                
         * `0` — разрешены все запросы.
         * `1` — разрешены только запросы на чтение данных. В этом случае в [настройках](https://clickhouse.com/docs/ru/operations/settings/settings) ClickHouse® укажите:
       
           * `join_use_nulls = 1`
           * `send_progress_in_http_headers = 0`
           * `output_format_json_quote_denormals = 1`
       
           Для использования разрешения в DataLens в дополнительных настройках подключения для параметра `Readonly` выберите значение `1`.
       
         * `2` — разрешены запросы на чтение данных и изменение настроек.
                 
       {% endnote %}
     
     - **Пароль**. Укажите пароль для пользователя.
     - **Время жизни кеша в секундах**. Укажите время жизни кеша или оставьте значение по умолчанию. Рекомендованное значение — 300 секунд (5 минут).
     
     * **Уровень доступа SQL-запросов**. Позволяет использовать произвольный SQL-запрос для [формирования датасета](../../dataset/settings.md#sql-request-in-datatset). По умолчанию опция отключена. При активации необходимо выбрать уровень доступа SQL-запросов:
     
        * **Только подзапросы** — описывать источники датасета с помощью [SQL-запросов](../../dataset/settings.md#sql-request-in-datatset).
        * **Подзапросы и параметры** — описывать источники датасета с помощью SQL-запросов и использовать [параметризацию источников](../../dataset/settings.md#parametrization).
        * **SQL на чтение** — описывать источники датасета с помощью SQL-запросов, использовать параметризацию источников, [создавать QL-чарты](../../concepts/chart/ql-charts.md) и выполнять SQL-запросы на чтение.
     

     Чтобы проверить корректность введенных параметров, нажмите кнопку **Проверить подключение**.

   - Connection Manager {#conn-man}

     {% note info %}
     
     Для использования подключения Connection Manager в DataLens пользователю должна быть назначена [роль](../../../metadata-hub/security/connection-manager-roles.md) `connection-manager.user` на это подключение.
     
     {% endnote %}

     Выберите [подключение](../../../metadata-hub/concepts/connection-manager.md) к кластеру с управляемой БД ClickHouse®, созданное в сервисе Yandex Connection Manager:

     * **Облако и каталог**. Выберите каталог, в котором создано подключение к кластеру.
     * **Идентификатор подключения**. Выберите одно из доступных подключений в Connection Manager или [создайте новое](../../../metadata-hub/operations/create-connection.md).
     * **Хост**. Выберите хост из списка доступных в кластере ClickHouse®.
     * **Порт**. Заполняется автоматически в зависимости от выбранного хоста.
     * **Имя пользователя**. Заполняется автоматически из данных выбранного подключения.
     * **Время жизни кеша в секундах**. Укажите время жизни кеша или оставьте значение по умолчанию. Рекомендованное значение — 300 секунд (5 минут).
     
     - **Имя хоста**. Укажите путь до хоста-мастера или IP-адрес хоста-мастера ClickHouse®. Вы можете указать несколько хостов через запятую. Если к первому хосту подключиться не получится, DataLens выберет следующий из списка.
     - **Порт HTTP-интерфейса**. Укажите порт подключения к ClickHouse®. Порт по умолчанию — 8443.
     - **Имя пользователя**. Укажите имя пользователя для подключения к ClickHouse®.
     
       {% note warning %}
                     
        У пользователя должно быть установлено одно из следующих значений параметра [readonly](https://clickhouse.com/docs/ru/operations/settings/permissions-for-queries#settings_readonly):
                
         * `0` — разрешены все запросы.
         * `1` — разрешены только запросы на чтение данных. В этом случае в [настройках](https://clickhouse.com/docs/ru/operations/settings/settings) ClickHouse® укажите:
       
           * `join_use_nulls = 1`
           * `send_progress_in_http_headers = 0`
           * `output_format_json_quote_denormals = 1`
       
           Для использования разрешения в DataLens в дополнительных настройках подключения для параметра `Readonly` выберите значение `1`.
       
         * `2` — разрешены запросы на чтение данных и изменение настроек.
                 
       {% endnote %}
     
     - **Пароль**. Укажите пароль для пользователя.
     - **Время жизни кеша в секундах**. Укажите время жизни кеша или оставьте значение по умолчанию. Рекомендованное значение — 300 секунд (5 минут).
     
     * **Уровень доступа SQL-запросов**. Позволяет использовать произвольный SQL-запрос для [формирования датасета](../../dataset/settings.md#sql-request-in-datatset). По умолчанию опция отключена. При активации необходимо выбрать уровень доступа SQL-запросов:
     
        * **Только подзапросы** — описывать источники датасета с помощью [SQL-запросов](../../dataset/settings.md#sql-request-in-datatset).
        * **Подзапросы и параметры** — описывать источники датасета с помощью SQL-запросов и использовать [параметризацию источников](../../dataset/settings.md#parametrization).
        * **SQL на чтение** — описывать источники датасета с помощью SQL-запросов, использовать параметризацию источников, [создавать QL-чарты](../../concepts/chart/ql-charts.md) и выполнять SQL-запросы на чтение.

   {% endlist %}


1. Нажмите кнопку **Создать подключение**.


1. Выберите [воркбук](../../workbooks-collections/index.md), в котором сохранится подключение, или создайте новый. Если вы пользуетесь старой навигацией по папкам, выберите папку для сохранения подключения. Нажмите кнопку **Создать**.


1. Укажите название подключения и нажмите кнопку **Создать**.



## Дополнительные настройки {#clickhouse-additional-settings}

Вы можете указать дополнительные параметры подключения в разделе **Продвинутые настройки подключения**:

* **TLS** — когда опция включена, при взаимодействии с БД используется протокол `HTTPS`, когда выключена — `HTTP`.

* **CA Certificate** — чтобы загрузить сертификат, нажмите кнопку **Прикрепить файл** и укажите файл сертификата. Когда сертификат загружен, поле отображает название файла.

* **Запрет на экспорт данных** — когда опция включена, в чартах на базе этого подключения в меню ![icon](../../../_assets/console-icons/ellipsis.svg) пункт экспорта данных будет недоступен. При этом останется возможность копировать данные из чартов, а также снимать скриншоты.

* **Readonly** — выберите разрешение для запросов на чтение данных, запись данных и изменение параметров. Значение этой настройки не должно превышать значение соответствующей настройки для пользователя в ClickHouse®:

  * `0` — разрешены все запросы.
  * `1` — разрешены только запросы на чтение данных.
  * `2` — разрешены запросы на чтение данных и изменение настроек.

## Особенности работы с подключением к ClickHouse® {#ch-connection-specify}

Вы можете создавать датасеты поверх представлений (`VIEW`) в ClickHouse®, содержащих секцию `JOIN`. Для этого представление должно быть создано с включенной опцией `join_use_nulls`. Рекомендуется выставлять настройку `join_use_nulls = 1` в секции `SETTINGS`:

```sql
CREATE VIEW ... (
    ...
) AS
    SELECT
        ...
    FROM
        ...
    SETTINGS join_use_nulls = 1
```

Также следует включать эту опцию для подзапросов raw-sql, которые используются как источник данных в датасете.

Чтобы избежать ошибок при работе с представлениями в DataLens, содержащими секцию JOIN, создайте заново все представления с настройкой `join_use_nulls = 1`. Пустые ячейки при этом заполнятся значениями `NULL`, а тип соответствующих полей преобразуется в [Nullable](https://clickhouse.com/docs/ru/sql-reference/data-types/nullable#data_type-nullable).

_ClickHouse® является зарегистрированным товарным знаком [ClickHouse, Inc](https://clickhouse.com)._


## Примеры использования {#examples}

* [Миграция базы данных из Google BigQuery в Yandex Managed Service for ClickHouse®](../../tutorials/bigquery-to-clickhouse.md)
* [Дашборд сети магазинов из БД ClickHouse®](../../tutorials/data-from-ch-visualization.md)
* [Геокодинг с помощью API Яндекс Карт для визуализации в DataLens](../../tutorials/data-from-ch-geocoder.md)
* [Примеры создания QL-чартов](../../tutorials/data-from-ch-to-sql-chart.md)