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

dbt freshness

Команда dbt freshness проверяет, соответствуют ли источники и модели с настроенной проверкой актуальности данных пороговым значениям warn_after и error_after, и сообщает о предупреждениях и ошибках соответственно.

Использование​

dbt freshness [--select SELECTOR] [--resource-type RESOURCE_TYPE] [--exclude-resource-type RESOURCE_TYPE]

Запуск проверки актуальности данных для всех источников и моделей​

dbt freshness

Включение или исключение типов ресурсов​

Используйте флаг, чтобы указать, какой тип ресурса нужно включить или исключить при выполнении команды:

# Include sources only
dbt freshness --resource-type source

# Include models only
dbt freshness --resource-type model

# Exclude sources only
dbt freshness --exclude-resource-type source

Выбор конкретной модели или источника​

Используйте --select, чтобы указать, какую модель или источник нужно включить при выполнении команды:

# Select a specific model 
dbt freshness --select stg_orders

# Select all sources in a namespace
dbt freshness --select "source:jaffle_shop"

# Select a specific source table
dbt freshness --select "source:jaffle_shop.orders"

Как оценивается актуальность данных​

dbt freshness проверяет источники или модели, у которых в конфигурации freshness задан параметр warn_after или error_after.

dbt получает последнюю временную метку одним из следующих способов, а затем сравнивает её с текущей временной меткой, чтобы определить возраст данных.

СпособКогда используетсяКак dbt получает временную метку
loaded_at_queryЕсли настроен для ресурсаВыполняет пользовательское SQL-выражение для получения последней временной метки.
loaded_at_fieldЕсли настроен для ресурсаВыполняет запрос MAX(<loaded_at_field>) к материализованному объекту базы данных.
Метаданные адаптераЕсли не настроен ни loaded_at_query, ни loaded_at_fieldПолучает время последнего изменения из метаданных объекта базы данных, предоставляемых адаптером. Доступно для источников и для моделей с материализацией table, incremental, materialized_view или dynamic_table, если адаптер это поддерживает. Для моделей с материализацией view или external необходимо использовать loaded_at_field или loaded_at_query.

Нельзя настроить одновременно loaded_at_query и loaded_at_field для одного ресурса. Если заданы оба параметра, возникает ошибка разбора.

Вывод команды​

freshness.json​

После завершения dbt freshness dbt записывает результаты проверки источников и моделей в target/freshness.json. Каждая запись содержит поле resource_type, указывающее, является ли ресурс источником или моделью.

Полную схему см. в разделе freshness.json.

{
"metadata": {
"generated_at": "2026-08-28T00:00:00.000000Z"
},
"results": [
{
"unique_id": "model.jaffle_shop.stg_orders",
"resource_type": "model",
"max_loaded_at": "2026-08-27T22:00:00+00:00",
"snapshotted_at": "2026-08-28T00:00:00+00:00",
"max_loaded_at_time_ago_in_s": 7200,
"status": "Pass",
"criteria": {
"warn_after": {"count": 24, "period": "hour"},
"error_after": {"count": 48, "period": "hour"}
}
},
{
"unique_id": "source.jaffle_shop.jaffle_shop.orders",
"resource_type": "source",
"max_loaded_at": "2026-08-27T23:30:00+00:00",
"snapshotted_at": "2026-08-28T00:00:00+00:00",
"max_loaded_at_time_ago_in_s": 1800,
"status": "Pass",
"criteria": {
"warn_after": {"count": 12, "period": "hour"},
"error_after": {"count": 24, "period": "hour"}
}
}
]
}

sources.json (устаревший формат)​

Для обратной совместимости, если в запуск dbt freshness включены источники, dbt также записывает файл target/sources.json. Он содержит только источники, без поля resource_type. Если запуск включает только модели, dbt не перезаписывает sources.json.

Полную схему см. в разделе sources.json.

Устаревшая команда dbt source freshness по-прежнему работает для обратной совместимости и создаёт только sources.json.

Связанная документация​

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

0
Loading