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

Обновление до версии v1.6

В версии dbt Core v1.6 есть три ключевые области фокуса:

  1. Следующий этап развития multi-project deployments: улучшения контрактов, групп и управления доступом, версий, а также базовые строительные блоки для межпроектного ref
  2. Перезапуск семантического слоя: интеграция dbt Core и MetricFlow
  3. Механизмы для поддержки зрелых развертываний в масштабе (dbt clone и dbt retry)

Ресурсы

Что нужно знать перед обновлением

dbt Labs стремится обеспечить обратную совместимость для всех версий 1.x, за исключением изменений, явно указанных ниже. Если вы столкнетесь с ошибкой при обновлении, пожалуйста, сообщите нам, создав проблему.

Изменения в поведении

Требуется действие, если ваш проект определяет metrics

Спецификация для метрик изменилась и теперь использует MetricFlow.

Если ваш проект dbt определяет метрики, вам необходимо перейти на dbt v1.6, так как спецификация YAML переместилась из dbt_metrics в MetricFlow. Любые тесты, которые у вас есть, не будут компилироваться на v1.5 или более старых версиях.

  • dbt Core v1.6 не поддерживает Python 3.7, срок поддержки которого (End Of Life) закончился 23 июня. Поддерживаемые версии Python: 3.8, 3.9, 3.10 и 3.11.
  • В рамках перезапуска (в статусе beta) dbt Semantic layer спецификация metrics была существенно изменена. Подробнее о том, как выполнить миграцию на обновлённый dbt Semantic Layer, см. руководство по миграции.
  • Версия схемы manifest теперь — v10.
  • dbt Labs прекращает поддержку установки dbt Core и адаптеров через Homebrew. Подробнее см. обсуждение.

Для потребителей артефактов dbt (метаданные)

Версия схемы манифеста обновлена до v10. Конкретные изменения:

  • Добавление semantic_models и изменения в атрибутах metrics
  • Добавление deprecation_date как свойства модели
  • Добавление on_configuration_change как конфигурации узла по умолчанию (для поддержки материализованных представлений)
  • Небольшие изменения типов в contracts и constraints
  • Манифест metadata включает project_name

Для разработчиков плагинов адаптеров

Для получения более подробной информации и возможности задать вопросы, пожалуйста, ознакомьтесь с обсуждением и оставьте комментарий в GH: dbt-labs/dbt Core#7958.

Новая и измененная документация

MetricFlow

  • Создавайте свои метрики с помощью MetricFlow — ключевого компонента Semantic Layer. Вы можете определять метрики и строить семантические модели с помощью MetricFlow, доступного в командной строке (CLI) для dbt Core версии v1.6 beta и выше.

Материализованные представления

Поддерживается на:

Новые команды для зрелого развертывания

dbt retry выполняет ранее запущенную команду с точки сбоя. Перестройте только те узлы, которые завершились ошибкой или были пропущены в предыдущем запуске/сборке/тесте, вместо того чтобы начинать с нуля.

dbt clone использует функциональность каждой платформы данных для создания легковесных копий моделей dbt из одной среды в другую. Полезно при быстром развертывании новой среды разработки или продвижении конкретных моделей из промежуточной среды в производственную.

Многопроектное сотрудничество

Дата устаревания: Модели могут объявлять дату устаревания, которая будет предупреждать производителей моделей и потребителей ниже по потоку. Это позволяет установить четкие окна миграции для версионных моделей и предоставляет механизм для удаления незрелых или малоиспользуемых моделей, помогая избежать разрастания проекта.

Названия моделей могут дублироваться в разных пространствах имен (проектах/пакетах), если они уникальны в каждом проекте/пакете. Мы настоятельно рекомендуем использовать двухаргументный ref при ссылке на модель из другого пакета/проекта.

Больше согласованности и гибкости вокруг пакетов. Ресурсы, определенные в пакете, будут учитывать определения переменных и глобальных макросов в рамках этого пакета.

  • vars, определенные в dbt_project.yml пакета, теперь доступны в порядке разрешения при компиляции узлов в этом пакете, хотя CLI --vars и vars корневого проекта все еще будут иметь приоритет. Подробнее см. "Приоритет переменных".
  • Макросы generate_x_name (определяющие пользовательские правила для именования базы данных, схемы, псевдонимов) следуют той же схеме, что и другие "глобальные" макросы для переопределений в рамках пакета. См. макросы диспетчеризации для обзора возможных схем.
Closed Beta - dbt Enterprise

Project dependencies: Представляет файл dependencies.yml и зависимые projects как функциональность dbt Enterprise. Позволяет принудительно применять правила доступа к моделям (public vs. protected/private) на границах проектов и пакетов. Обеспечивает кросс‑проектный ref к публичным моделям без необходимости устанавливать исходный код вышестоящего проекта.

:::

Устаревший функционал

Возможность для установленных пакетов переопределять встроенные материализации без явного согласия пользователя устаревает.

  • Переопределение встроенной материализации из установленного пакета вызывает предупреждение об устаревании.

  • Использование пользовательской материализации из установленного пакета не вызывает предупреждения об устаревании.

  • Использование переопределения встроенной материализации из корневого проекта через оберточную материализацию все еще поддерживается. Например:

    {% materialization view, default %}
    {{ return(my_cool_package.materialization_view_default()) }}
    {% endmaterialization %}

Быстрые изменения

  • state:unmodified и state:old для MECE выборки по состоянию
  • invocation_args_dict включает полную invocation_command как строку
  • dbt debug --connection для тестирования только подключения к платформе данных, указанного в профиле
  • dbt docs generate --empty-catalog для пропуска заполнения каталога при генерации документации
  • --defer-state позволяет более детально управлять
  • dbt ls добавляет метод выбора семантической модели, позволяя использовать dbt ls -s "semantic_model:*" и возможность выполнять dbt ls --resource-type semantic_model.
  • Синтаксис для DBT_ENV_SECRET_ изменен на DBT_ENV_SECRET и больше не требует завершающего подчеркивания.

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

0
Loading