Подключение к Yandex Managed Service for ClickHouse®
С помощью направленного ациклического графа (DAG) можно настроить подключение к БД в кластере Yandex Managed Service for ClickHouse®. Данные для подключения к БД хранятся в Yandex Lockbox и автоматически подставляются в граф.
Перед началом работы
-
Создайте кластер Managed Service for ClickHouse® с параметрами:
- Имя БД —
default
; - Имя пользователя —
admin
; - Пароль —
admin-password
.
- Имя БД —
-
Выдайте своему сервисному аккаунту роль
lockbox.payloadViewer
.Роль
lockbox.payloadViewer
не обязательно выдавать на весь каталог. Достаточно назначить ее на конкретный секрет Yandex Lockbox после его создания.
Создайте секрет Yandex Lockbox
Создайте секрет Yandex Lockbox с именем airflow/connections/ch1
и содержимым json.dumps(conn)
, где conn
— подключение к кластеру Managed Service for ClickHouse®. В качестве значения conn_type
укажите SQLite
или другую БД SQL.
conn = {
"conn_type": "SQLite",
"host": "<FQDN_хоста_кластера_ClickHouse®>",
"port": 9440,
"schema": "default",
"login": "admin",
"password": "admin-password",
"extra": {
"secure": True,
}
}
В секрете будут сохранены данные для подключения к БД в кластере Managed Service for ClickHouse®.
Подробнее о том, как узнать FQDN хоста кластера ClickHouse®, см. в разделе FQDN хостов ClickHouse®.
Подготовьте DAG-файл и запустите граф
-
Создайте локально файл с именем
clickhouse.py
и скопируйте в него скрипт:from airflow.decorators import dag, task from airflow_clickhouse_plugin.hooks.clickhouse import ClickHouseHook @dag(schedule=None) def clickhouse(): @task def query_clickhouse(): ch_hook = ClickHouseHook(clickhouse_conn_id="ch1") result = ch_hook.execute('select 1;') print(f'query result: {result}') query_clickhouse() clickhouse()
-
Загрузите DAG-файл
clickhouse.py
в созданный ранее бакет. В результате одноименный граф появится в веб-интерфейсе Apache Airflow™ автоматически. -
Убедитесь, что в разделе DAGs появился новый граф
clickhouse
.Загрузка DAG-файла из бакета может занять несколько минут.
-
Чтобы запустить граф, в строке с его именем нажмите кнопку
.
Проверьте результат
Чтобы проверить результат в веб-интерфейсе Apache Airflow™:
- В разделе DAGs откройте граф
clickhouse
. - Перейдите в раздел Graph.
- Выберите задание query_clickhouse.
- Перейдите в раздел Logs.
- Убедитесь, что в логах есть строка
query result: 1
. Это значит, что запрос выполнен успешно.