import clickhouse_driver

Функция получает параметры Airflow Connection и создаёт клиент ClickHouse native protocol. Её нужно вызывать во время выполнения задачи, а не при импорте DAG.

Короткий ответ

Что ответить на собеседовании

Функция получает параметры Airflow Connection и создаёт клиент ClickHouse native protocol. Её нужно вызывать во время выполнения задачи, а не при импорте DAG.

Подробный разбор

Ответ с пояснениями

Условие

import clickhouse_driver from airflow.hooks.base import *

def get_clickhouse_client(): conn = BaseHook.get_connection("clickhouse_default") return clickhouse_driver.Client( host=conn.host, port=conn.port, user=conn.login, password=conn.password, database=conn.schema )

Ответ

Функция получает параметры Airflow Connection и создаёт клиент ClickHouse native protocol. Её нужно вызывать во время выполнения задачи, а не при импорте DAG.

Замените wildcard-import явным BaseHook с учётом версии Airflow. Проверьте корректный native-порт, базу, таймауты и настройки TLS из согласованного конфига; HTTP-порт не взаимозаменяем с native.

Пароль не следует логировать. После работы освобождайте соединение подходящим методом клиента, а повторные записи делайте идемпотентными. Создание объекта клиента не подтверждает успешную загрузку данных.

Источник: clickhouse-driver.readthedocs.io.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее