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

Поддерживаемые функции

Узнайте, какие возможности поддерживает движок dbt Fusion, а также о требованиях и ограничениях.

Требования

Чтобы использовать Fusion в вашем dbt-проекте:

  • Вы используете поддерживаемый адаптер и метод аутентификации:
     BigQuery
     Databricks
    • Служебная учетная запись / токен пользователя
    • Нативный OAuth
     Redshift
    • Имя пользователя / пароль
    • Профиль IAM
     Snowflake
    • Имя пользователя / пароль
    • Нативный OAuth
    • Внешний OAuth
    • Пара ключей с использованием современного метода PKCS#8
    • MFA
  • В проекте определены только SQL-модели. Python-модели в настоящее время не поддерживаются, так как Fusion не может анализировать их для извлечения зависимостей (refs) от других моделей.

Паритет с dbt Core

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

Обратите внимание, что мы удалили некоторые устаревшие функции и внедрили более строгую валидацию ошибочного кода проекта. Подробности см. в руководстве по обновлению.

Возможности и функциональность

dbt Fusion Engine (построенный на Rust) обеспечивает до 30× более высокую производительность и предлагает разные возможности в зависимости от того, где вы его используете.

  • Он лежит в основе как улучшений на уровне движка (например, более быстрая компиляция и инкрементальные сборки), так и функций на уровне редактора (таких как IntelliSense, подсказки при наведении и встроенные ошибки) через LSP в расширении dbt для VS Code.
  • Подробнее о возможностях LSP, поддерживаемых в рамках dbt platform, см. в разделе About dbt LSP.
  • Чтобы быть в курсе последних возможностей и обновлений, следите за Fusion diaries.

dbt Core (построенный на Python) поддерживает SQL rendering, но не включает парсинг SQL и современные функции редактора, которые реализованы с помощью dbt Fusion Engine и LSP.

подсказка

Клиенты dbt platform, использующие Fusion, могут разрабатывать на нескольких рабочих поверхностях, включая Studio IDE и VS Code с расширением dbt.

Возможности dbt platform features (такие как Advanced CI, dbt Mesh, State-aware orchestration и другие) доступны независимо от того, какую среду разработки вы используете, в зависимости от вашего тарифного плана dbt.

Если вы не уверены, какие функции доступны в Fusion, расширении dbt для VS Code, Fusion-CLI и других инструментах, следующая таблица фокусируется на возможностях, работающих на базе Fusion.

В этой таблице self-hosted означает, что решение является open-source/source-available и работает в вашей собственной инфраструктуре; dbt platform размещается и поддерживается dbt Labs и включает функции уровня платформы.

✅ = Доступно | 🟡 = Частично / только на этапе компиляции | ❌ = Недоступно | Скоро = Пока недоступно

Категория/возможностьFusion CLI
(self-hosted)
Fusion + расширение VS Code
(self-hosted)
dbt platform
** + расширение VS Code**1
dbt platform ** + Studio IDE**
** + Другие dev-интерфейсы**2
Требует
статического анализа
Производительность движка
SQL rendering
Парсинг и компиляция SQL (понимание SQL)
Редактор и опыт разработки
IntelliSense/autocomplete/hover info
Ошибки inline (при сохранении/в редакторе)🟡
Live CTE previews/просмотр скомпилированного SQL🟡
(только Live CTE previews)
Инструменты рефакторинга (переименование модели/колонки)Coming soon🟡
(только рефакторинг колонок)
Переход к определению/ссылкам/макросуСкоро🟡
(только переход к определению колонки)
Column-level lineage (в редакторе)Coming soon
Сравнение изменений разработчикаComing soonComing soon
Платформа и governance
Advanced CI compare changes
dbt Mesh
Efficient testing
State-aware orchestration (SAO)
Governance (PII/PHI tracking)Coming soonComing soon
Оптимизация стоимости CI/CD (Slimmer CI)Coming soonComing soon
Loading table...

1 Поддержка других возможностей dbt platform и LSP, таких как Canvas, Semantic Layer или column-level lineage, появится в ближайшее время. См. About LSP для более подробного сравнения сред разработки dbt.
2 Расширение dbt для VS Code можно использовать в VS Code, Cursor, Windsurf и других редакторах на базе VS Code.

Дополнительные соображения

Ниже приведены дополнительные моменты, которые стоит учитывать при использовании Fusion CLI без расширения VS Code или расширения VS Code без Fusion CLI:

  • Fusion CLI (binary)
    • Бесплатен в использовании и работает на dbt Fusion Engine (отличается от dbt Core).
    • Использует преимущества производительности Fusion engine для parse, compile, build и run, но не включает возможности LSP features, такие как автодополнение, подсказки при наведении, lineage и другие.
    • Требует только profiles.yml (файл dbt_cloud.yml не нужен).
  • dbt VS Code extension
    • Бесплатно, работает на dbt Fusion Engine; необходимо зарегистрировать email в течение 14 дней.
    • Использует преимущества производительности Fusion engine для parse, compile, build и run, а также включает возможности LSP features, такие как автодополнение, подсказки при наведении, lineage и другие.
    • Ограничение — до 15 пользователей на организацию. Подробнее см. в acceptable use policy.
    • Если у вас уже есть учетная запись dbt platform (даже если пробный период истек), войдите с тем же email. При необходимости разблокируйте или сбросьте учетную запись.
    • Требуются файлы profiles.yml и dbt_cloud.yml.

Ограничения

Если ваш проект использует какие-либо из функций, перечисленных в таблице ниже, вы можете использовать Fusion, но не сможете полностью перенести все рабочие нагрузки, так как у вас есть:

  • Модели, использующие специфические возможности materialization, которые могут не запускаться или не поддерживать некоторые желаемые настройки.
  • Инструменты, ожидающие точный формат логов dbt Core. Система логирования Fusion в настоящее время нестабильна и не завершена.
  • Процессы, построенные вокруг дополнительных возможностей dbt platform (таких как уведомления на уровне моделей, Advanced CI и Semantic Layer), которые Fusion пока не поддерживает.
  • При использовании расширения dbt VS Code в Cursor визуализация lineage лучше всего работает в режиме Editor и не отображается в режиме Agent. Если вы работаете в режиме Agent и вам нужно посмотреть lineage, переключитесь в режим Editor, чтобы получить доступ к полной функциональности вкладки lineage.
примечание

Мы активно внедряем многие из этих возможностей в преддверии General Availability. Подробнее читайте о пути к GA и отслеживайте прогресс в dbt-fusion milestones.

Функциональность
Это затронет вас, если…
GitHub issue
--store-failuresВы используете возможность --store-failures в dbt test для материализации результатов тестовых запросов в audit-таблицах.dbt-fusion#15
--fail-fastВы используете флаг --fail-fast, чтобы прерывать выполнение при первом же сбое.dbt-fusion#18
microbatch incremental strategyВы настраиваете модели с материализациями, отличными от view, table или incremental. В настоящее время такие модели нельзя запускать с Fusion, но вы можете запускать модели со стандартными материализациями.dbt-fusion#12
--warn-error, --warn-error-optionsВы повышаете все или отдельные предупреждения до ошибок либо подавляете конкретные предупреждения, настраивая имена warning‑событий. Система логирования Fusion пока неполная и нестабильная, поэтому конкретные имена событий с большой вероятностью будут меняться.dbt-fusion#8
Advanced CI ("compare changes")Вы используете функцию «compare changes» в Advanced CI на платформе dbt.dbt-fusion#26
Model governance (полировка и полнота функциональности)Если у вас есть модели с заданным deprecation_date, Fusion пока не выдает предупреждения о предстоящих или прошедших депрекациях. Система логирования Fusion в настоящее время неполная и нестабильная.dbt-fusion#25
Iceberg support (BigQuery)Вы настроили модели на материализацию в виде Iceberg‑таблиц или определяете catalogs в проекте BigQuery для настройки внешнего места записи Iceberg‑моделей. Fusion не поддерживает такие конфигурации моделей для BigQuery.dbt-fusion#947
Model-level notificationsВы используете возможности платформы dbt для уведомлений на уровне моделей в своих workflow. В настоящее время Fusion поддерживает только уведомления на уровне job.dbt-fusion#1103
retryFusion пока не поддерживает CLI‑команду dbt retry или сценарий «повторный запуск упавшего job с точки сбоя». В средах деплоя при использовании state-aware orchestration вы можете просто перезапустить job — Fusion пропустит модели, у которых нет свежих данных или которые не превысили порог freshness.build_after с момента последнего билда.dbt-fusion#21
state:modified.<subselector> methodsВы полагаетесь на более детализированные «subselector’ы», потому что state:modified недостаточно точен. Механизм определения состояния в Fusion «умнее» по умолчанию — попробуйте его в работе.dbt-fusion#33
dbt-docs documentation site и команды "docs generate/serve"Fusion пока не поддерживает локальный сценарий генерации, хостинга и просмотра документации, аналогичный тому, который есть в dbt Core через dbt‑docs (статический HTML‑сайт). Мы планируем поддержать такой сценарий к моменту GA. Если вам нужно генерировать и хостить локальную документацию, продолжайте генерировать catalog, запуская dbt docs generate с использованием dbt Core.dbt-fusion#9
Programmatic invocationsВы используете Python API dbt Core для программного запуска invocations и регистрации callback’ов на события/логи. Обратите внимание, что система логирования Fusion пока неполная и нестабильная.dbt-fusion#10
Semantic Layer: development + saved_query exportsЕсли вы активно разрабатываете новые семантические объекты (semantic_models, metrics, saved_queries) или изменяете существующие в своем dbt‑проекте, вам следует делать это с помощью dbt Core, а не Fusion, поскольку Fusion пока не формирует semantic_manifest.json (интерфейс для MetricFlow). Если вы используете функцию «exports» для saved queries, она также пока не поддерживается в Fusion, поэтому следует продолжать запускать job’ы на dbt Core.dbt-fusion#40
Logging systemУ вас есть скрипты, workflow или другие интеграции, которые зависят от конкретных лог‑сообщений (структурированных или текстовых). В настоящее время система логирования Fusion неполная и нестабильная. Также нашей целью не является полное соответствие логирования dbt Core и Fusion.dbt-fusion#7
Linting via SQLFluffВы используете SQLFluff для линтинга в процессе разработки или в CI‑workflow. В перспективе мы планируем встроить поддержку линтинга непосредственно в Fusion, поскольку движок обладает возможностями понимания SQL. Пока что вы можете продолжать использовать интеграцию dbt Core + SQLFluff. dbt Cloud делает именно это в Cloud IDE / Studio и CI‑job’ах.dbt-fusion#11
Active and auto exposuresВы полагаетесь на auto exposures для подтягивания downstream‑ассетов (например, дашбордов Tableau) в lineage dbt или на active exposures для проактивного обновления downstream‑ассетов (например, extract’ов Tableau) во время запланированных job’ов.

Fusion пока не поддерживает active и auto exposures.
dbt-fusion#704
{{ graph }} — атрибут raw_sql (например, для отдельных моделей в dbt_project_evaluator)Вы обращаетесь к атрибуту raw_sql / raw_code контекстной переменной {{ graph }}, который Fusion во время выполнения подставляет как пустое значение. Если вы обращаетесь к этому атрибуту, код не упадет, но вернет другие результаты. Это используется в трех проверках качества в пакете dbt_project_evaluator. В будущем мы планируем найти более производительный механизм предоставления этой информации в Fusion.Coming soon
Externally orchestrated jobsВы используете сторонний оркестратор (например, Astronomer‑Cosmos), который зависит от dbt‑manifest, сгенерированного dbt Core. Многие из таких интеграций пока не поддерживают manifest’ы, сгенерированные Fusion. При этом Fusion поддерживает внешние оркестраторы, которые интегрируются через API запуска job’ов dbt platform.Coming soon
Loading table...

Поддержка пакетов

Чтобы определить, совместим ли пакет с dbt Fusion Engine, посетите dbt package hub и найдите бейдж совместимости с Fusion, либо изучите конфигурацию пакета require-dbt-version.

  • Пакеты с require-dbt-version, который равен 2.0.0 или включает его, совместимы с Fusion. Например: require-dbt-version: ">=1.10.0,<3.0.0".

    Даже если пакет не отражает совместимость в package hub, он всё равно может работать с Fusion. Рекомендуется взаимодействовать с мейнтейнерами пакета, чтобы отслеживать обновления, и тщательно тестировать пакеты, совместимость которых не очевидна, перед развертыванием.

  • Мейнтейнеры пакетов, которые хотят сделать свой пакет совместимым с Fusion, могут обратиться к руководству по обновлению пакетов для Fusion с подробными инструкциями.

Особенности пакетов Fivetran:

  • Пакеты Fivetran source и transformation были объединены в один пакет.
  • Если вы устанавливали source-пакеты вручную, например fivetran/github_source, необходимо убедиться, что установлен fivetran/github, и отключить модели трансформации.

Сообщения о совместимости пакетов

Несоответствие предупреждений Fusion и логов dbt-autofix

Предупреждения Fusion и логи dbt-autofix могут содержать разные сообщения о совместимости пакетов.

Если вы используете dbt-autofix при обновлении до Fusion в Studio IDE или в расширении dbt для VS Code, вы можете увидеть различающиеся сообщения о совместимости пакетов между dbt-autofix и предупреждениями Fusion.

Вот почему это происходит:

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

Это означает, что даже если вы видите предупреждение Fusion для пакета, который dbt-autofix определяет как совместимый, вам не нужно менять этот пакет.

Расхождение в сообщениях является временным и будет устранено по мере внедрения и распространения улучшенного механизма определения совместимости из dbt-autofix в предупреждениях Fusion.

Ниже приведён пример предупреждения Fusion в Studio IDE, которое сообщает, что пакет не совместим с Fusion, тогда как dbt-autofix указывает, что он совместим:

dbt1065: Package 'dbt_utils' requires dbt version [>=1.30,<2.0.0], but current version is 2.0.0-preview.72. This package may not be compatible with your dbt version. dbt(1065) [Ln 1, Col 1]

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

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

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

0
Loading