# dbt state explain

(Версии dbt: v2.0 и новее) `dbt state explain` — это команда CLI, доступная при включении [dbt State](https://docs.getdbt.tech/docs/deploy/dbt-state-about.md). После завершения задания выполните эту команду, чтобы узнать, почему dbt State принял то или иное решение для каждого узла и был ли узел выполнен, пропущен или клонирован. Используйте её для проверки поведения State, отладки неожиданных пропусков или подтверждения того, что проверки актуальности данных и запросов работают должным образом.

(Версии dbt: v2.0 и новее)

```bash
dbt state explain
```

В выводе отображаются все узлы из последнего запуска с кратким описанием решения State для каждого из них:

```shell
SKIP_EXECUTION model.jaffle_shop.customers - model was a no-op because its query is up to date and its upstream data is within freshness tolerance
READY_TO_EXECUTE model.jaffle_shop.orders - model was executed because the view definition is newer than the cached execution
READY_TO_EXECUTE test.jaffle_shop.not_null_customers_customer_id - data test was executed because it has no prior execution or its query changed
UNKNOWN unit_test.jaffle_shop.orders.test_order_items_compute_to_bools_correctly - dbt State explain details unavailable
```

Если вы используете dbt platform, та же информация доступна без выполнения команды — перейдите на [**вкладку Explain**](https://docs.getdbt.tech/docs/deploy/dbt-state-interface.md#explain-tab) на странице сведений о запуске задания, чтобы просмотреть подробное обоснование решения для каждого узла.

## Указание файла журнала

По умолчанию (Версии dbt: v2.0 и новее) `dbt state explain` считывает данные последнего выполнения. Чтобы проанализировать предыдущий запуск, используйте `--log-file` (или `-l`) и укажите файл состояния из каталога `logs/state/`:

(Версии dbt: v2.0 и новее)

```bash
dbt state explain --log-file 'logs/state/responses_2026_08_25_11_00_15_667.jsonl'
```

## Использование подробного режима

Используйте флаг `--verbose`, чтобы увидеть полный пошаговый анализ для каждого узла и добавить сводку конфигурации запуска. Используйте `-s`, чтобы ограничить вывод определённым узлом.

(Версии dbt: v2.0 и новее)

```bash
dbt state explain --verbose -s my_node_name
```

В dbt v2 флаг `--verbose` добавляет сводку конфигурации запуска в начало вывода и отображает полный пошаговый анализ для каждого узла.

```shell
Run configuration:
  - started at: 2026-08-17T12:24:15.822733+00:00
  - profile: my_profile
  - target: dev
  - defer to target: prod
  - freshness tolerance: 2700 seconds
  - tolerate nondeterminism: true
  - clone incremental in dev: IF_TABLE_MISSING
  - metadata cache TTL: 0 seconds
  - select: fqn:my_node_name
SKIP_EXECUTION model.jaffle_shop.customers - model was a no-op because its query is up to date and its upstream data is within freshness tolerance
  - table analysis ("ANALYTICS"."MY_SCHEMA"."CUSTOMERS")
    - the model table exists already [SUCCESS, TARGET_TABLE_EXISTS]
  - query analysis
    - the model query has not changed [SUCCESS, NODE_QUERY_UNCHANGED]
    - upstream model queries have not changed [SUCCESS]
  - data freshness analysis
    - upstream dependencies
      - "ANALYTICS"."MY_SCHEMA_RAW"."RAW_CUSTOMERS" [FRESH]
        - no updates since "ANALYTICS"."MY_SCHEMA"."CUSTOMERS" last executed
        - last updated: 5 days ago
    - upstream data is up to date [SUCCESS]
```

Флаг `--verbose` выводит подробное обоснование решения, которое в зависимости от типа узла может включать следующие виды анализа:

* **Анализ таблицы**: существует ли целевая таблица в схеме
* **Анализ запросов**: изменился ли запрос модели или запросы вышестоящих моделей
* **Анализ актуальности данных**: актуальны ли данные вышестоящих узлов или находится ли их отставание в пределах настроенного значения [`lag_tolerance`](https://docs.getdbt.tech/reference/resource-configs/lag-tolerance.md)

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

* [О dbt State](https://docs.getdbt.tech/docs/deploy/dbt-state-about.md)
* [Мониторинг работы dbt State](https://docs.getdbt.tech/docs/deploy/dbt-state-interface.md)
* [Настройки dbt State](https://docs.getdbt.tech/reference/resource-configs/dbt-state-configs.md)
