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

Обновление до версии 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 моделей

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

0
Loading