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

Актуальность источников

dbt предоставляет удобный интерфейс для работы с расчетами актуальности исходных данных в dbt. Когда задание dbt настроено на создание snapshot’ов актуальности исходных данных, dbt отображает пользовательский интерфейс, показывающий состояние самого последнего snapshot’а. Этот интерфейс предназначен для того, чтобы помочь вам определить, соответствует ли актуальность ваших исходных данных соглашению об уровне сервиса (SLA), которое вы определили для своей организации.

Data Sources in dbtData Sources in dbt

Включение снимков актуальности источников

dbt build не включает проверки свежести источников (source freshness) при сборке и тестировании ресурсов в вашем DAG. Вместо этого вы можете использовать один из следующих распространённых шаблонов для определения jobs:

Выбор актуальности источниковВыбор актуальности источников

Чтобы включить снимки актуальности источников, сначала убедитесь, что ваши источники настроены для снимка информации об актуальности. Вы можете добавить актуальность источников в список команд на этапах выполнения задачи или включить флажок. Однако вы можете ожидать разные результаты при настройке задачи, выбрав флажок Run source freshness по сравнению с добавлением команды в этапы выполнения.

Рассмотрите следующие варианты и результаты:

ВариантыРезультаты
Выбрать чекбокс Чекбокс Run source freshness в разделе Execution Settings запускает команду dbt source freshness в качестве первого шага вашего job и не прерывает последующие шаги, даже если проверка завершится с ошибкой. Если вам нужен job, исключительно предназначенный для проверки freshness, всё равно необходимо добавить как минимум один шаг‑заглушку, например dbt compile.
Добавить как шаг выполненияДобавьте команду dbt source freshness в job в любом месте списка шагов выполнения. Однако, если исходные данные устарели — этот шаг «упадёт», и последующие шаги выполняться не будут. dbt отправит email‑уведомления (если они настроены) в зависимости от итогового состояния этого шага.

Вы можете создать отдельный job для снятия снапшотов freshness источников.

Если вы не хотите, чтобы модели запускались при устаревших исходных данных, хорошей идеей будет запускать dbt source freshness первым шагом в job. В противном случае мы рекомендуем добавлять dbt source freshness последним шагом в job или создавать отдельный job специально для этой задачи.
Loading table...
Добавление шага для снимка актуальности источниковДобавление шага для снимка актуальности источников

Частота снимков актуальности источников

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

SLAЧастота снимков
1 час30 минут
1 день12 часов
1 неделяОколо одного раза в день
Loading table...

Дополнительное чтение

  • Обратитесь к разделу Artifacts, чтобы узнать больше о том, как создавать артефакты dbt, делиться ссылками на актуальную документацию и распространять отчёты о свежести источников внутри команды.
  • Свежесть источников для Snowflake рассчитывается с использованием столбца LAST_ALTERED. Подробнее об ограничениях читайте в разделе Snowflake configs.

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

0
Loading