Обновление до версии v1.0
Ресурсы
Что нужно знать перед обновлением
Мажорная версия dbt Core 1.0 включает ряд ломающих изменений! Там, где это было возможно, мы сохранили обратную совместимость со старым поведением, а там, где это было необходимо, упростили процесс миграции.
Переименованные поля в dbt_project.yml
Эти изменения касаются всех:
- model-paths заменили
source-pathsвdbt-project.yml. - seed-paths заменили
data-pathsвdbt-project.ymlсо значением по умолчаниюseeds. - packages-install-path был обновлен с
modules-path. Кроме того, значение по умолчанию теперьdbt_packagesвместоdbt_modules. Возможно, вам потребуется обновить это значение вclean-targets. - Значение по умолчанию для
quote_columnsтеперьTrueдля всех адаптеров, кроме Snowflake.
Эти изменения, вероятно, не касаются большинства:
- Значение по умолчанию для test-paths было обновлено на множественное число
tests. - Значение по умолчанию для analysis-paths было обновлено на множественное число
analyses.
Тесты
Два типа тестов теперь называются «singular» и «generic» (вместо «data» и «schema» соответственно). Метод выбора test_type: принимает значения test_type:singular и test_type:generic. (Также по соображениям обратной совместимости он принимает test_type:schema и test_type:data.) Не обратно совместимо: флаги --data и --schema для команды dbt test больше не поддерживаются, а тестам больше не назначаются теги 'data' и 'schema' автоматически. Обновлённая документация: data tests, test selection, selection methods.
Флаг/свойство greedy было переименовано в indirect_selection, который теперь по умолчанию является eager. Примечание: Это возвращает выбор тестов к поведению до версии v0.20 по умолчанию. dbt test -s my_model будет выбирать тесты с несколькими родителями, такие как relationships, которые зависят от невыбранных ресурсов. Чтобы достичь изменения поведения в v0.20 + v0.21, установите --indirect-selection=cautious в CLI или indirect_selection: cautious в YAML селекторах. Обновленная документация: примеры выбора тестов, yaml селекторы.
Глобальные макросы
Глобальные макросы проекта были реорганизованы, и некоторые старые неиспользуемые макросы были удалены: column_list, column_list_for_create_table, incremental_upsert. Это вряд ли повлияет на ваш проект.
Установка
- Документация по установке отражает установки, специфичные для адаптеров
python -m pip install dbtбольше не поддерживается и вызовет явную ошибку. Установите нужный плагин адаптера какpython -m pip install dbt-<adapter>.brew install dbtбольше не поддерживается. Установите нужный плагин адаптера (среди Postgres, Redshift, Snowflake или BigQuery) какbrew install dbt-<adapter>.- Официальная поддержка python 3.6 была удалена, так как он достигает конца жизни 23 декабря 2021 года
Для пользователей плагинов адаптеров
- BigQuery: Поддержка таблиц с разделением по времени загрузки официально устарела в пользу современных подходов. Используйте
partition_byи стратегии инкрементального моделирования. Для получения дополнительной информации обратитесь к Инкрементальные модели.
Для разработчиков плагинов и других интеграций
Мы представили новый интерфейс структурированных событий, и мы перевели весь журнал dbt на использование этой новой системы. Это включает изменение, нарушающее совместимость, для плагинов адаптеров, требующее очень простой миграции. Для получения более подробной информации см. README модуля events. Если вы поддерживаете другой тип плагина, который нуждается в устаревшем журналировании, на данный момент вы можете повторно включить его с помощью переменной окружения (DBT_ENABLE_LEGACY_LOGGER=True); обратите внимание, что мы удалим эту возможность в будущей версии dbt Core.
Сервер dbt RPC был выделен из dbt-core и теперь упакован отдельно. Его функциональность будет полностью устаревшей к концу 2022 года в пользу нового сервера dbt. Вместо dbt rpc используйте dbt-rpc serve.
Артефакты: Новые схемы (manifest v4, run results v4, sources v3). Значительные изменения: добавлены узлы metrics; узлы тестов схемы и данных переименованы в узлы generic test и singular test; значения по умолчанию для порогов свежести выглядят немного иначе.
Устаревшие функции из давних версий
Несколько изменений под капотом из прошлых минорных версий, помеченных предупреждениями об устаревании, теперь полностью устарели.
- Аргумент
packagesв dispatch устарел и вызовет исключение при использовании. - Макрос "adapter_macro" устарел. Вместо этого используйте метод dispatch для поиска макроса и вызова результата.
- Аргумент
releaseбыл удален из методаexecute_macro.
Новые функции и измененная документация
- Добавлены метрики, новый тип узла
- Generic tests могут быть определены в
tests/generic(новое), а также вmacros/(как и раньше) - Парсинг: частичный парсинг и статический парсинг теперь включены по умолчанию.
- Глобальные конфигурации были стандартизированы. Связанные обновления для глобальных флагов CLI и
profiles.yml. - Команда
initполучила совершенно новый вид и ощущения. Она больше не только для новичков. - Добавлены подвыборки
result:<status>для более умных повторных запусков, когда модели dbt имеют ошибки и тесты не проходят. См. примеры: Советы для рабочих процессов - Переменные окружения с префиксом Secret env vars теперь разрешены только в
profiles.yml+packages.yml