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

deprecation_date

models/<schema>.yml
models:
- name: my_model
description: устаревший
deprecation_date: 1999-01-01 00:00:00.00+00:00
models/<schema>.yml
version: 2
models:
- name: my_model
description: устаревание в будущем
deprecation_date: 2999-01-01 00:00:00.00+00:00

Определение

Дата устаревания модели форматируется как дата, опционально с учетом смещения по времени. Поддерживаемые форматы RFC 3339 включают:

  • YYYY-MM-DD hh:mm:ss.sss±hh:mm
  • YYYY-MM-DD hh:mm:ss.sss
  • YYYY-MM-DD

Когда deprecation_date не включает смещение от UTC, она интерпретируется как находящаяся в системном часовом поясе среды выполнения dbt.

Объяснение

Цель

Объявление deprecation_date для модели dbt предоставляет механизм для передачи планов и сроков долгосрочной поддержки и обслуживания, а также для упрощения управления изменениями.

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

Предупреждающие сообщения

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

Кроме того, WARN_ERROR_OPTIONS предоставляет механизм, с помощью которого пользователи могут повышать эти предупреждения до фактических ошибок времени выполнения:

ПредупреждениеСценарийЗатронутые проекты
DeprecatedModelПарсинг проекта, который определяет устаревшую модельПроизводитель
DeprecatedReferenceСсылка на модель с прошедшей датой устареванияПроизводитель и потребители
UpcomingReferenceDeprecationСсылка на модель с будущей датой устареванияПроизводитель и потребители

Пример

Пример вывода для предупреждения UpcomingReferenceDeprecation:

$ dbt parse
15:48:14 Запуск с dbt=1.6.0
15:48:14 Зарегистрированный адаптер: postgres=1.6.0
15:48:14 [WARNING]: При компиляции 'my_model_ref': Найдена ссылка на my_model, которая подлежит устареванию '2038-01-19T03:14:07-00:00'.

Синтаксис выбора

Не существует специфического синтаксиса выбора узлов для deprecation_date. Программные вызовы — это один из способов идентификации устаревших моделей (возможно, в сочетании с dbt list). Например, dbt -q ls --output json --output-keys database schema alias deprecation_date.

Процесс устаревания

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

Устаревшие модели могут продолжать строиться производителями и использоваться потребителями до тех пор, пока они не будут отключены или удалены.

Так же, как dbt не автоматически удаляет связи, когда модели удаляются, dbt не удаляет связи для устаревших моделей.

Стратегии, подобные здесь или здесь, могут быть использованы для удаления связей, которые были устаревшими и больше не используются.

Истечение срока действия таблицы в BigQuery

dbt-bigquery может установить hours_to_expiration, который переводится в expiration_timestamp в BigQuery.

dbt не автоматически синхронизирует deprecation_date и hours_to_expiration, но пользователи могут захотеть координировать их каким-либо образом (например, установить срок действия модели на 48 часов после ее deprecation_date). Просроченные таблицы в BigQuery будут удалены, и их хранилище будет восстановлено.

0