deprecation_date
models:
- name: my_model
description: устаревший
deprecation_date: 1999-01-01 00:00:00.00+00:00
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:mmYYYY-MM-DD hh:mm:ss.sssYYYY-MM-DD
Когда deprecation_date не включает смещение от UTC, она интерпретируется как находящаяся в системном часовом поясе среды выполнения dbt.
Объяснение
Цель
Объявление deprecation_date для модели dbt предоставляет механизм для передачи планов и сроков долгосрочной поддержки и обслуживания, а также для упрощения управления изменениями.
Указание deprecation_date хорошо работает в сочетании с другими возможностями model governance, такими как model versions, но также может использоваться и независимо от них.
Предупреждающие сообщения
Когда проект ссылается на модель, которая подлежит устареванию, или дата устаревания прошла, генерируется предупреждение. Если это версия модели, с доступной более новой версией, то предупреждение об этом сообщает. Этот дополнительный элемент межкомандной коммуникации, от производителей к потребителям, является преимуществом использования встроенной функциональности dbt вокруг версий моделей для упрощения миграций.
Кроме того, WARN_ERROR_OPTIONS предоставляет механизм, с помощью которого пользователи могут повышать эти предупреждения до фактических ошибок времени выполнения:
| Loading table... |
Пример
Пример вывода для предупреждения 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 ls -q --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 будут удалены, и их хранилище будет восстановлено.