# selection\_filter\_on

Доступно в v2

Когда вы передаёте селектор (`--select`, `--exclude`, `--selector`) в `dbt check` или `dbt build`, dbt использует его, чтобы определить, какие ресурсы проекта оценивает каждая проверка. `selection_filter_on` указывает dbt, какой столбец в результатах проверки содержит идентификаторы ресурсов для сопоставления с выборкой.

## Значения

* **По умолчанию (не задано):** Если запрос возвращает `unique_id`, dbt сохраняет только строки, у которых `unique_id` входит в выборку. Если запрос не возвращает `unique_id`, проверка выполняется для всего проекта. Это полезно для агрегатных проверок, например «в проекте есть хотя бы одна модель».
* **`none`:** Проверка всегда выполняется для всего проекта, игнорируя любые селекторы. Используйте это значение, чтобы явно задать проверку всего проекта.
* **Имя столбца или список имён столбцов:** dbt сохраняет строку, если идентификатор хотя бы в одном из указанных столбцов входит в выборку. Каждый указанный столбец должен присутствовать в результате, иначе проверка завершится с ошибкой. Используйте этот вариант для проверок, которые возвращают связи между ресурсами (рёбра).

## Когда задавать эту настройку

Если ваша проверка возвращает столбец `unique_id`, задавать эту настройку не нужно.

Используйте `selection_filter_on`, если ваша проверка возвращает строки со столбцами идентификаторов, отличными от `unique_id`. Укажите в этой настройке столбцы, содержащие идентификаторы ресурсов, чтобы селекторы могли ограничивать набор строк по этим столбцам.

Следующая проверка запрашивает таблицу `edges` и возвращает `child_unique_id` вместо `unique_id`, поэтому необходимо задать `selection_filter_on`:

checks/multiple\_sources\_joined.sql

```sql
select child_unique_id, count(*) as source_parents
from {{ info_schema('edges') }}
where parent_unique_id like 'source.%'
group by child_unique_id
having count(*) > 1
```

Настройте `selection_filter_on` для этой проверки одним из следующих способов:

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

dbt\_project.yml

```yaml
checks:
  +selection_filter_on: child_unique_id
```

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

checks/\_checks.yml

```yaml
version: 2
checks:
  - name: multiple_sources_joined
    description: "Проверка завершается неудачей, если какая-либо модель читает данные напрямую более чем из одного источника."
    config:
      selection_filter_on: child_unique_id
```

### Настройка в SQL-файле

checks/multiple\_sources\_joined.sql

```sql
{{ config(
    selection_filter_on = "child_unique_id"
) }}
```

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

* [Проверки](https://docs.getdbt.tech/docs/build/checks.md)
* [Настройки проверок](https://docs.getdbt.tech/reference/check-configs.md)
* [Использование селекторов с проверками](https://docs.getdbt.tech/docs/build/checks.md#using-selectors-with-checks)
