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

selection_filter_on

Когда вы передаёте селектор (--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
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 для этой проверки одним из следующих способов:

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

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

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

0
Loading