dbt

Junior

ClickHouse теперь на платформе dbt — что это реально значит для вашего пайплайна

ClickHouse стал первым партнёрским v2-адаптером на платформе dbt, работающим на новом движке Fusion на Rust — вот что реально доступно уже сегодня.

Читать на:
ClickHouse + dbt БЕТА Пока не рекомендуется для продакшн-нагрузок
Полный набор dbt v1 81% Тесты для CH Cloud 92%
Процент прохождения тестового набора адаптера, по данным собственного анонса ClickHouse — не проверено независимо.

Если вы используете dbt с Snowflake, BigQuery или Postgres и думаете, реалистичен ли теперь ClickHouse как цель — честный ответ: движение в эту сторону есть, но пока не для продакшна.

Что было анонсировано на самом деле

ClickHouse теперь — первый партнёрский v2-адаптер на платформе dbt, и первый участник программы dbt Labs Partner Adapter Program. Новый адаптер работает на движке dbt v2 под названием Fusion — переписанном на Rust ядре dbt, созданном ради скорости, взамен прежнего движка на Python. Он поддерживает и self-managed ClickHouse, и ClickHouse Cloud в качестве целей, а отдельно существующий коннектор dbt-clickhouse уже работает с трансформациями, управляемыми Fivetran.

Что готово сегодня, а что нет

Это как раз тот момент, где важна точность — «только что анонсировано» и «готово для продакшн-пайплайна» здесь очень разные вещи. По собственным словам ClickHouse:

  • v2-адаптер в статусе бета — устанавливайте и тестируйте локально, на self-managed однонодовом инстансе или ClickHouse Cloud, в dev или staging.
  • Он явно не рекомендован для продакшн-нагрузок пока что.
  • По собственному тестовому набору dbt v1 он проходит более 81% полного набора и 92% тестов, реально применимых к ClickHouse Cloud (см. график выше).
  • Возможности Fusion, которые dbt ещё достраивает для этого адаптера, включают dialect-aware валидацию, статический анализ, language server, отображение колонок в расширении VS Code и column-level lineage на стороне движка — ничего из этого пока не готово полностью.

Если вы уже используете более старый, устоявшийся адаптер dbt-clickhouse с dbt Core (не новый путь v2/Fusion) — это отдельная, более зрелая интеграция, появившаяся раньше этого анонса и никак им не затронутая.

Почему на это всё же стоит обратить внимание

Независимо от статуса беты, здесь интересны две отдельные вещи. Во-первых, сам ClickHouse создан для быстрых аналитических запросов с уровнем стоимости, который сложно повторить row-oriented хранилищам для подходящей формы нагрузки (агрегации с высокой кардинальностью, real-time аналитика) — полноценная интеграция с dbt снижает порог входа для реальной проверки этого варианта вместо написания SQL вручную вне графа зависимостей и тестового фреймворка dbt. Во-вторых, Rust-движок Fusion — это собственный ответ dbt на медленные локальные циклы разработки: если заявления о скорости подтвердятся по мере созревания, это реальное улучшение качества жизни для любого dbt-воркфлоу, не только у пользователей ClickHouse.

Честно о том, как это пересекается с opti-pipe: правила для dbt здесь читают данные о времени и числе строк прямо из run_results.json — elapsed_time и execution_time по каждой модели — которые dbt записывает в одинаковом формате независимо от того, какой адаптер или хранилище произвели запуск. В принципе, run_results.json проекта с целью ClickHouse должен пройти через тот же поток загрузки, что и любой другой. Тем не менее, это не тестировалось конкретно на файле, сгенерированном адаптером ClickHouse, так что считайте это разумным ожиданием, а не проверенным утверждением.

Посмотрите, как это выглядит на вашем собственном пайплайне.

Загрузите реальный event log Spark, run_results.json от dbt или экспорт метрик Flink — и получите конкретные рекомендации, которые нужно одобрить, а не ещё одно эмпирическое правило.

Источник: официальный анонс ClickHouse, сверено с освещением анонса на саммите dbt Labs и репозиторием dbt-clickhouse на GitHub.