# Конфигурации проверок

Доступно в v2

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

* [Проверки](https://docs.getdbt.tech/docs/build/checks.md)
* [Свойства проверок](https://docs.getdbt.tech/reference/check-properties.md)
* [Команда `dbt check`](https://docs.getdbt.tech/reference/commands/check.md)

## Доступные конфигурации

### YAML-файл проекта

dbt\_project.yml

```yaml
checks:
  <resource-path>:
    +severity: error | warn
    +enabled: true | false
    +selection_filter_on: column_name | [column_names] | none
    +tags: string | [string]
    +meta: {dictionary}
```

### YAML-файл свойств

checks/\_checks.yml

```yaml
version: 2

checks:
  - name: check-name
    config:
      severity: error | warn
      enabled: true | false
      selection_filter_on: column_name | [column_names] | none
      tags: string | [string]
      meta: {dictionary}
```

### Конфигурация в SQL

checks/\<check\_name>.sql

```sql
{{ config(
    severity = "error" | "warn",
    enabled = true | false,
    selection_filter_on = "column_name" | ["column_names"] | "none",
    tags = ["string"],
    meta = {"key": "value"}
) }}

select ...
from {{ info_schema('models') }}
where ...
```

## Примеры

Следующие примеры показывают распространённые способы настройки проверок.

### Предупреждение при неуспешной проверке

Вы можете использовать `severity: warn` при постепенном внедрении нового правила. Проблемы записываются в журнал, но не приводят к ошибке сборки.

checks/\_public\_models\_have\_owners.yml

```yaml
checks:
  - name: public_models_have_owners
    config:
      severity: warn  # по умолчанию — error
```

### Фильтрация по определённому столбцу

В таблице `edges` нет столбца `unique_id`, поэтому проверки, которые обращаются к ней, не возвращают этот столбец. При использовании `--select` dbt ищет столбец `unique_id`, чтобы ограничить результаты, но не находит его, поэтому проверка выполняется для всего проекта независимо от селектора. Укажите в `selection_filter_on` столбцы, содержащие идентификаторы ресурсов, чтобы `--select` фильтровал строки по этим столбцам. Например, проверка `multiple_sources_joined` выполняет агрегацию по `child_unique_id`, поэтому достаточно указать только этот столбец:

checks/\_multiple\_sources\_joined.yml

```yaml
checks:
  - name: multiple_sources_joined
    config:
      selection_filter_on: child_unique_id
```
