deprecation_date
models:
- name: my_model
description: устаревший
deprecation_date: 1999-01-01 00:00:00.00+00:00
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 будут удалены, и их хранилище будет восстановлено.