tags
- Файл проекта
- Свойство конфигурации
- Блок конфигурации
dbt_project.yml
models:
<resource-path>:
+tags: <string> | [<string>]
snapshots:
<resource-path>:
+tags: <string> | [<string>]
seeds:
<resource-path>:
+tags: <string> | [<string>]
models/resources.yml
version: 2
models:
- name: model_name
config:
tags: <string> | [<string>]
columns:
- name: column_name
tags: [<string>]
tests:
<test-name>:
config:
tags: <string> | [<string>]
{{ config(
tags="<string>" | ["<string>"]
) }}
Определение
Примените тег (или список тегов) к ресурсу.
Эти теги могут использоваться как часть синтаксиса в ыбора ресурсов при выполнении следующих команд:
dbt run --select tag:my_tag
dbt seed --select tag:my_tag
dbt snapshot --select tag:my_tag
dbt test --select tag:my_tag
(косвенно запускает все тесты, связанные с моделями, которые имеют теги)
Примеры
Используйте теги для запуска частей вашего проекта
Примените теги в вашем dbt_project.yml
как одно значение или строку:
dbt_project.yml
models:
jaffle_shop:
+tags: "contains_pii"
staging:
+tags:
- "hourly"
marts:
+tags:
- "hourly"
- "published"
metrics:
+tags:
- "daily"
- "published"
Вы также можете применить теги к отдельным ресурсам, используя блок конфигурации:
models/staging/stg_payments.sql
{{ config(
tags=["finance"]
) }}
select ...
Затем выполните часть вашего проекта следующим образом:
# Запустите все модели с тегом "daily"
$ dbt run --select tag:daily
# Запустите все модели с тегом "daily", кроме тех, которые имеют тег hourly
$ dbt run --select tag:daily --exclude tag:hourly
Примените теги к семенам
dbt_project.yml
seeds:
jaffle_shop:
utm_mappings:
+tags: marketing
dbt_project.yml
seeds:
jaffle_shop:
utm_mappings:
+tags:
- marketing
- hourly
Примечания по использованию
Теги являются аддитивными
Теги накапливаются иерархически. Приведенный выше пример приведет к следующему:
Модель | Теги |
---|---|
models/staging/stg_customers.sql | contains_pii , hourly |
models/staging/stg_payments.sql | contains_pii , hourly , finance |
models/marts/dim_customers.sql | contains_pii , hourly , published |
models/metrics/daily_metrics.sql | contains_pii , daily , published |
Другие типы ресурсов
Теги также могут применяться к источникам, экспозициям и даже конкретным столбцам в ресурсе.
Эти ресурсы пока не поддерживают свойство config
, поэтому вам нужно будет указать
теги как ключ верхнего уровня.
models/schema.yml
version: 2
exposures:
- name: my_exposure
tags: ['exposure_tag']
...
sources:
- name: source_name
tags: ['top_level']
tables:
- name: table_name
tags: ['table_level']
columns:
- name: column_name
tags: ['column_level']
tests:
- unique:
tags: ['test_level']
В приведенном выше примере тест unique
будет выбран любым из этих четырех тегов:
$ dbt test --select tag:top_level
$ dbt test --select tag:table_level
$ dbt test --select tag:column_level
$ dbt test --select tag:test_level
0