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

Обновление до v1.1

Ресурсы​

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

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

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

Мы переработали набор тестов для проверки функциональности плагинов адаптеров. Подробности о новом наборе тестов см. в разделе «Тестирование адаптера» руководства Создание, тестирование, документирование и продвижение адаптеров.

Теперь в аннотациях типов абстрактных методов get_response и execute в качестве возвращаемого значения указан только connection.AdapterReponse. Раньше эти методы могли возвращать строку. Мы рекомендуем обновить ваши методы так, чтобы они возвращали объект класса AdapterResponse, либо реализовать подкласс, специфичный для вашего адаптера. Это также позволит добавлять поля, отражающие особенности выполнения запросов вашим адаптером, например rows_affected или bytes_processed.

Для пользователей артефактов dbt (метаданных)​

Версия схемы манифеста будет обновлена до v5. Единственное изменение касается значения по умолчанию для config у узлов, прошедших разбор.

Пользователям функциональности на основе состояния, например селектора state:modified, следует помнить:

Версии схем артефактов, передаваемых через --state, должны быть совместимы с используемой версией dbt.

Если у вас есть два задания и одно из них сравнивает состояние с артефактами, созданными другим заданием, или использует их для отложенного разрешения ссылок, необходимо обновить оба задания одновременно. При несовпадении версий dbt сообщит об этом следующей ошибкой:

Expected a schema version of "https://schemas.getdbt.com/dbt/manifest/v5.json" in <state-path>/manifest.json, but found "https://schemas.getdbt.com/dbt/manifest/v4.json". Are you running with a different version of dbt?

Новая и обновлённая документация​

Инкрементальные модели теперь могут принимать список из нескольких столбцов в качестве unique_key, если для уникальной идентификации каждой строки требуется комбинация столбцов. Это поддерживается наиболее распространёнными хранилищами данных для инкрементальных стратегий, использующих настройку unique_key (merge и delete+insert).

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

Источники позволяют задавать настройки непосредственно рядом с другими свойствами в .yml, как и другие типы ресурсов. Единственная поддерживаемая настройка — enabled; с её помощью можно динамически включать и отключать источники в зависимости от окружения или переменных пакета.

Расширенные и экспериментальные возможности​

Пересборка по обновлённым источникам. Появился новый экспериментальный метод выбора: source_status:fresher. Как и методы state: и result, он предназначен для более эффективного выполнения вашего DAG с использованием метаданных dbt. Если у dbt есть доступ к предыдущим и текущим результатам dbt source freshness (артефакту sources.json), dbt может сравнить их, определить, в какие источники загружены новые данные, и выбрать только ресурсы, расположенные ниже по графу зависимостей от «более свежих» источников. Подробнее см. в разделах Понятие состояния и CI/CD в dbt.

У функций dbt-Jinja появилась новая обзорная страница и два новых элемента:

  • print предоставляет доступ к функции Python print(). Её можно использовать как альтернативу log(), а также совместно с настройкой QUIET в расширенных рабочих процессах на основе макросов.
  • selected_resources предоставляет во время выполнения список узлов DAG, выбранных текущей задачей.

В глобальные настройки добавлено несколько новых параметров:

  • QUIET и NO_PRINT позволяют управлять тем, какие сообщения журнала dbt выводит в терминал. Они предназначены для расширенных рабочих процессов на основе макросов, например codegen.
  • CACHE_SELECTED_ONLY — экспериментальная настройка, которая может значительно ускорить подготовку dbt к запуску, если вы запускаете лишь несколько моделей из большого проекта, управляющего множеством схем.

Для пользователей отдельных адаптеров​

В dbt-bigquery добавлена поддержка более детальной настройки времени ожидания запросов и повторных попыток при определении профиля подключения.

В dbt-spark добавлена поддержка метода подключения session для работы с сессией pySpark, позволяющего быстро выполнять итерации при разработке расширенной или экспериментальной функциональности. Этот метод подключения не рекомендуется новым пользователям и не поддерживается в dbt.

Зависимости​

Совместимость с Python: dbt v1 официально поддерживает Python 3.10

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

0
Loading