Перейти к основному содержимому

О движке dbt Fusion

dbt — это отраслевой стандарт для трансформации данных. dbt Fusion Engine позволяет dbt работать с беспрецедентной скоростью и масштабируемостью.

dbt Fusion Engine использует тот же знакомый фреймворк для написания трансформаций данных, что и dbt Core, но при этом позволяет разработчикам данных работать быстрее и более эффективно развёртывать нагрузки трансформаций.

Что такое Fusion

Fusion — это полностью новый программный продукт, написанный на другом языке программирования (Rust), чем dbt Core (Python). Fusion значительно быстрее, чем dbt Core, и нативно понимает SQL в диалектах различных движков. Со временем Fusion будет поддерживать весь фреймворк dbt Core, включая надмножество его возможностей, а также подавляющее большинство существующих проектов dbt.

Fusion содержит смесь source-available, проприетарного и open source кода. Это означает, что:

  • dbt Labs публикует значительную часть исходного кода в репозитории dbt-fusion, где вы можете изучать код и участвовать в обсуждениях сообщества.
  • Некоторые возможности Fusion доступны исключительно платным клиентам облачной платформы dbt. Подробнее см. в разделе поддерживаемые возможности.

Подробнее о лицензировании движка dbt Fusion можно прочитать здесь.

Зачем использовать Fusion

Для разработчика Fusion позволяет:

  • Мгновенно обнаруживать некорректный SQL в моделях dbt
  • Просматривать встроенные CTE для более быстрого отладки
  • Отслеживать определения моделей и колонок по всему проекту dbt

Всё это и многое другое доступно в расширении dbt для VSCode, в основе которого лежит Fusion.

Fusion также обеспечивает более эффективное развёртывание больших DAG. Отслеживая, какие колонки где используются и в каких исходных таблицах появились свежие данные, Fusion может гарантировать, что модели будут пересобраны только тогда, когда им действительно нужно обработать новые данные. Такая "оркестрация с учётом состояния" является возможностью платформы dbt (ранее dbt Cloud).

Управление потоками

dbt Fusion Engine управляет параллелизмом иначе, чем dbt Core. Вместо того чтобы рассматривать параметр threads как жёсткое ограничение на количество параллельных операций, Fusion динамически оптимизирует параллелизм в зависимости от выбранного хранилища данных.

В Redshift параметр threads ограничивает количество запросов или операторов, которые могут выполняться параллельно, что важно для управления лимитами конкурентности Redshift. В других хранилищах Fusion динамически регулирует использование потоков в зависимости от возможностей конкретного хранилища, используя вашу конфигурацию потоков как ориентир и автоматически оптимизируя выполнение для максимальной эффективности.

Подробнее см. в разделе Using threads.

Как использовать Fusion

Вы можете:

Сразу переходите к разделу Quickstart, чтобы как можно быстрее почувствовать Fusion.

Что дальше?

dbt Labs запустила движок dbt Fusion в статусе публичной беты 28 мая 2025 года и планирует достичь полного паритета возможностей с dbt Core до общей доступности Fusion.

Дополнительная информация о Fusion

Fusion — это значительное обновление dbt. Хотя многие рабочие процессы, к которым вы привыкли, остаются без изменений, появляется множество новых идей, а также происходит отказ от ряда старых подходов. Ниже приведён список, охватывающий полный объём текущего релиза движка Fusion, включая вопросы реализации, установки, устаревших возможностей и ограничений:

Нашли ошибку?

0
Loading