feat(airflow): подключён официальный провайдер ClickHouse
- Зачем: - нужен единый штатный путь исполнения SQL и программных запросов ClickHouse из Airflow. - Что: - добавлен официальный провайдер и подключения типа `clickhouse`. - SQL-файлы переданы `SQLExecuteQueryOperator`, а программные запросы — `ClickHouseHook`. - разбор заказов собран в одном файле, DDL разделён по задачам, документация и смоук обновлены. - Проверка: - выполнены `make lint` и `make config-test`. - собран образ, выполнены `pip check`, `make rebuild-storage`, `make smoke` (21/21), `make check-clickhouse` (10/10) и `make check-services` (7/7).
This commit is contained in:
1 parent
587e392220
commit
8d82679bc1
17 files changed
+393
-438
No files matched your search
@@ -32,13 +32,18 @@ JSON-файл отдельного тома `airflow_auth`. Новый имен
|
||||
|
||||
Airflow получает два подготовленных подключения к `clickhouse-01`: рабочее
|
||||
`clickhouse_default` и административное `clickhouse_lifecycle` для дагов
|
||||
жизненного цикла мира ([ADR 0013](0013-world-lifecycle.md)). Superset получает
|
||||
подключение `clickhousedb://` к `clickhouse-02`. Провайдер ClickHouse для
|
||||
Airflow не нужен: локальный образ содержит прямой клиент.
|
||||
Пробник создаёт служебные таблицы `ON CLUSTER`, пишет на первой ноде и через
|
||||
`remote` читает `Distributed` на второй. Разные ноды сохраняют учебную
|
||||
ловушку: забытый `ON CLUSTER` проявится в Superset, даже если операция Airflow
|
||||
на первой ноде прошла успешно.
|
||||
жизненного цикла мира ([ADR 0013](0013-world-lifecycle.md)). Оба имеют тип
|
||||
`clickhouse`, который регистрирует официальный провайдер
|
||||
`apache-airflow-providers-clickhousedb`. SQL-файлы исполняет общий
|
||||
`SQLExecuteQueryOperator`, а программные запросы идут через `ClickHouseHook`.
|
||||
Сам провайдер работает через `clickhouse-connect`; его версия закреплена
|
||||
отдельно, чтобы сборка не меняла транспорт незаметно.
|
||||
|
||||
Superset получает подключение `clickhousedb://` к `clickhouse-02`. Пробник
|
||||
Airflow создаёт служебные таблицы `ON CLUSTER`, пишет на первой ноде и через
|
||||
`remote` читает `Distributed` на второй. Разные ноды сохраняют учебную ловушку:
|
||||
забытый `ON CLUSTER` проявится в Superset, даже если операция Airflow на первой
|
||||
ноде прошла успешно.
|
||||
|
||||
Клиент Kafka также добавлен прямо в образ Airflow. Официальный провайдер
|
||||
использует тот же `confluent-kafka`, а пробнику не нужны его подключение,
|
||||
@@ -84,10 +89,18 @@ Prometheus читает встроенные точки метрик двух с
|
||||
Оттуда взяты `airflow.sdk`, обязательный отдельный обработчик DAG, возможность
|
||||
не запускать triggerer и проверка конкретных компонентов здоровья.
|
||||
|
||||
Для интеграционных пробников проверены `Connection.get` в публичном
|
||||
`airflow.sdk`, запросы через `clickhouse-connect` и состав официального
|
||||
провайдера Kafka. Выбран прямой `confluent-kafka`: провайдер строит свои
|
||||
подключения и обёртки поверх него, которые двум коротким пробникам не нужны.
|
||||
Для ClickHouse через Context7 и официальную документацию Airflow проверены
|
||||
`ClickHouseHook`, тип подключения `clickhouse` и работа
|
||||
`SQLExecuteQueryOperator` с SQL-файлом, параметрами и несколькими выражениями.
|
||||
Закреплён `apache-airflow-providers-clickhousedb==1.0.0`: на 21 августа
|
||||
2026 года это последний стабильный выпуск; `1.0.1` опубликован только как
|
||||
предварительная версия. Зависимость провайдера допускает любой
|
||||
`clickhouse-connect>=1.3.0`, поэтому прежний `clickhouse-connect==1.6.0`
|
||||
оставлен прямой зависимостью образа.
|
||||
|
||||
Для Kafka проверен состав официального провайдера. Выбран прямой
|
||||
`confluent-kafka`: провайдер строит свои подключения и обёртки поверх него,
|
||||
которые двум коротким пробникам не нужны.
|
||||
|
||||
Драйверы и строки подключения проверены по документации Superset 6.1.0:
|
||||
[подключения к базам](https://superset.apache.org/user-docs/6.1.0/databases/),
|
||||
|
||||
Reference in new issue
Block a user