Поддерживаемые возможности
Узнайте о возможностях, поддерживаемых dbt v2, а также о требованиях и ограничениях.
При установке dbt вы по умолчанию получаете v2. Выбирать между отдельными наборами возможностей не нужно — v2 — это тот же dbt, который работает быстрее и предоставляет больше встроенных возможностей.
Требования
Чтобы использовать v2 в своём проекте, необходимо:
- Использовать поддерживаемый адаптер и метод аутентификации: Обратите внимание, что жизненный цикл адаптера может различаться для dbt platform и локальной разработки. Адаптер может стать общедоступным (GA) в платформе dbt раньше, чем для локального использования.
- Убедиться, что ваш проект может выполняться на последней версии v1 без предупреждений об устаревших возможностях и ошибок.
- Перевести конфигурации Semantic Layer на последнюю спецификацию YAML.
Функциональный паритет с dbt v1
На сегодняшний день dbt v2 поддерживает почти все возможности v1.x. Немногочисленные оставшиеся различия описаны ниже, в разделе Ограничения.
В v2 также удалены некоторые устаревшие возможности и введена более строгая проверка ошибочного кода проекта по сравнению с v1.x. Подробности см. в Руководстве по обновлению.
Функции и возможности
dbt v2 ускоряет рабочие процессы разработки вашей команды благодаря обнаружению семантических и синтаксических ошибок, более быстрому линтеру, отслеживанию происхождения данных на уровне столбцов, языковому серверу и интеграции с VS Code, документации v2 (в полном объёме) и сравнению данных. Расширение dbt для VS Code дополнительно предоставляет такие возможности редактора, как IntelliSense, информация при наведении и отображение ошибок прямо в коде, на базе LSP.
Большинство возможностей v2 доступны сразу и не требуют входа в систему. Некоторые возможности на базе платформы dbt становятся доступны после входа с учётной записью dbt platform — её можно создать бесплатно, платный тариф не требуется. Полное описание возможностей, доступных без входа и после входа в систему, см. в разделе Доступность возможностей v2. Подробнее о возможностях LSP см. в разделе О dbt LSP.
Возможности dbt platform (такие как Advanced CI, dbt Mesh и другие) — это корпоративный уровень функциональности поверх v2 — они доступны независимо от способа запуска dbt, в зависимости от вашего тарифного плана dbt.
Ограничения
Если ваш проект использует что-либо из перечисленного ниже, вы всё ещё можете использовать v2, но полная миграция пока может быть невозможна:
- Модели, которые зависят от возможностей материализации, не полностью поддерживаемых v2, или требуют конфигураций, которые в ней пока отсутствуют
- Инструменты, которые зависят от точного формата вывода журналов v1.x
- Рабочие процессы, построенные на возможностях платформы dbt, которые v2 пока не поддерживает, например на уведомлениях на уровне моделей
- Использование расширения dbt для VS Code в режиме Agent в Cursor — визуализация происхождения данных отображается только в режиме Editor, поэтому переключитесь в него, если вам нужна полноценная вкладка происхождения данных
- Линтинг с помощью SQLFluff — Вы используете SQLFluff для линтинга в CI или при локальной разработке. SQLFluff изначально не совместим с dbt v2, но в составе dbt v2 мы предоставляем высокопроизводительную альтернативу, совместимую с SQLFluff. Поддержка зависит от среды запуска:
- Задания CI в dbt platform: задания CI на версии dbt v2 вызывают
dbt lintвместо SQLFluff, поэтому результаты могут отличаться. См. раздел Паритет правил с SQLFluff. - Studio IDE: линтинг с помощью SQLFluff работает, но использует обработчик шаблонов движка dbt v1, а не dbt v2.
- Локальная разработка: в качестве обходного решения можно запускать SQLFluff локально с помощью отдельного обработчика шаблонов движка dbt v1. Встроенный линтер dbt v2 доступен через команду
dbt lint
- Задания CI в dbt platform: задания CI на версии dbt v2 вызывают
Поддержка пакетов
Чтобы определить, совместим ли пакет с dbt v2, посетите каталог пакетов dbt и найдите значок совместимости с dbt v2 или проверьте настройку require-dbt-version пакета.
-
Пакеты, у которых значение
require-dbt-versionравно2.0.0или задаёт диапазон, включающий эту версию, совместимы с dbt v2. Например,require-dbt-version: ">=1.10.0,<3.0.0".Даже если в каталоге пакетов не указана совместимость пакета, он всё равно может работать с v2. Взаимодействуйте с сопровождающими пакетов, чтобы отслеживать обновления, и перед развёртыванием тщательно тестируйте пакеты, совместимость которых явно не подтверждена.
-
Сопровождающие пакетов, которые хотят обеспечить совместимость своих пакетов с v2, могут найти инструкции в руководстве по обновлению пакетов для dbt v2.
Особенности пакетов Fivetran:
- Пакеты Fivetran
sourceиtransformationобъединены в один пакет. - Если вы вручную установили пакеты источников, такие как
fivetran/github_source, необходимо убедиться, что установлен пакетfivetran/github, и деактивировать модели преобразования.
Сообщения о совместимости пакетов
dbt-autofixПредупреждения dbt v2 и журналы dbt-autofix могут содержать разные сообщения о совместимости пакетов.
Если вы используете dbt-autofix при переходе на v2 в Studio IDE или расширении dbt для VS Code, вы можете заметить расхождения между сообщениями о совместимости пакетов в dbt-autofix и предупреждениями v2.
Вот почему:
- Предупреждения dbt v2 выдаются на основе значения
require-dbt-versionпакета и того, включает лиrequire-dbt-versionверсию2.0.0. - Некоторые пакеты уже совместимы с v2, хотя их сопровождающие еще не обновили
require-dbt-version. dbt-autofixзнает об этих совместимых пакетах и не будет пытаться обновить пакет, о совместимости которого ему уже известно.
Это означает, что даже если вы видите предупреждение v2 для пакета, который dbt-autofix определяет как совместимый, вам не нужно менять этот пакет.
Это временное расхождение в сообщениях: мы работаем над внедрением улучшенного механизма определения совместимости из dbt-autofix в предупреждения v2.
Вот пример предупреждения v2 в Studio IDE, которое сообщает, что пакет несовместим с v2, хотя dbt-autofix указывает, что он совместим:
dbt1065: Package 'dbt_utils' requires dbt version [>=1.30,<2.0.0], but current version is 2.0.0. This package may not be compatible with your dbt version. dbt(1065) [Ln 1, Col 1]
Дополнительная информация о dbt v2
- Журнал изменений dbt v2
- О расширении dbt
- Установка dbt v2
- Краткое руководство по началу работы с dbt v2
- Руководство по обновлению
- Лицензионное соглашение dbt v2