Обновление до версии v1.4
Ресурсы
Финальный релиз: 25 января 2023
dbt Core v1.4 — это релиз "за кулисами". Мы усердно работали над перестройкой внутренних компонентов dbt-core на более надежных основах, чтобы обеспечить захватывающий год разработки новых функций. Ознакомьтесь с вехой v1.5 на GitHub, чтобы увидеть, что планируется на апрель.
Что нужно знать перед обновлением
dbt Labs стремится обеспечить обратную совместимость для всех версий 1.x. Если вы столкнетесь с ошибкой при обновлении, пожалуйста, сообщите нам, создав проблему.
Для пользователей артефактов dbt (метаданные)
Версия схемы manifest обновилась до v8. Эти изменения важны для пользователей, которые парсят или анализируют содержимое файла manifest.json, а также для тех, у кого есть пользовательский код, обращающийся к переменным model или graph, например {{ model.root_path }}.
Актуальные изменения:
- Атрибут
root_pathбыл удален для узлов, не являющихся семенами, чтобы уменьшить дублирующую информацию. - Неиспользуемые атрибуты были удалены из узлов семян (включая
depends_on.nodes) и изmacros(включаяtags). unique_idблоков документации теперь начинается сdocдля согласованности с другими типами ресурсов.
Для разработчиков адаптеров
Кратко: Не так много работы для этой минорной версии. Мы ожидаем больше работы для
1.5.0. Мы планируем выпускать бета-версии рано и часто, а также предоставлять рекомендации по обновлению.
Основные изменения:
- Добавлена поддержка Python 3.11
- Переименованы/заменены устаревшие функции исключений
- Добавлена поддержка инкрементальных предикатов (если применимо)
- Использование новых тестов в зоне адаптера
Для получения более подробной информации и чтобы задать любые вопросы, пожалуйста, посетите dbt Core/discussions/6624.
Новая и измененная документация
- События и структурированное логирование: система событий dbt получила обновление. Ожидайте больше согласованности в доступности и структуре информации, поддерживаемой схемами событий с типобезопасностью.
- Поддержка Python: Python 3.11 был выпущен в октябре 2022 года. Он официально поддерживается в dbt-core v1.4, хотя полная поддержка также зависит от адаптера для вашей платформы данных. По словам разработчиков Python, "Python 3.11 на 10-60% быстрее, чем Python 3.10." Мы рекомендуем попробовать
dbt parseс dbt Core v1.4 + Python 3.11 и сравнить время выполнения с dbt Core v1.3 + Python 3.10. Сообщите нам, что вы обнаружите! - Метрики:
time_grainявляется необязательным, чтобы обеспечить лучшую эргономику для метрик, не связанных со временем. - Контекст dbt-Jinja: Метод контекста local_md5 будет вычислять MD5-хеш для использования внутри dbt. (Не путать с SQL md5!)
- Экспозиции теперь могут зависеть от
metrics. - Пакеты "Tarball": Некоторые организации имеют требования безопасности, чтобы загружать ресурсы только из внутренних сервисов. Чтобы удовлетворить необходимость установки пакетов из размещенных сред (таких как Artifactory или облачные хранилища), теперь можно указать любой доступный URL, откуда можно скачать сжатый пакет dbt.
- Гранулярная конфигурация "warn error": Благодаря полной очистке и консолидации классов предупреждений и исключений в
dbt-core, теперь можно определить более детализированную конфигурацию--warn-error-options, которая указывает точные предупреждения, которые вы хотите (или не хотите), чтобы dbt рассматривал как ошибки. - Отложение поддерживает необязательную конфигурацию,
--favor-state.
Расширенные конфигурации для инкрементальных моделей
- Конфигурация
incremental_predicatesтеперь поддерживается на самых популярных адаптерах, обеспечивая большую гибкость при настройке производительности в операцияхmergeиdeleteс большими наборами данных. - BigQuery: Инкрементальная стратегия
insert_overwriteподдерживает новый (старый) механизм,time_ingestion_partitioning+copy_partitions, который может значительно сэкономить затраты и время для больших наборов данных.
Обновления для Python моделей
- Python модели настроены на материализацию как
tableпо умолчанию. - Python модели работающие на Snowpark будут использовать "анонимные" хранимые процедуры по умолчанию, что обеспечивает небольшое ускорение и более чистую историю запросов.