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

tags

dbt_project.yml

models:
<resource-path>:
+tags: <string> | [<string>]

snapshots:
<resource-path>:
+tags: <string> | [<string>]

seeds:
<resource-path>:
+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.sqlcontains_pii, hourly
models/staging/stg_payments.sqlcontains_pii, hourly, finance
models/marts/dim_customers.sqlcontains_pii, hourly, published
models/metrics/daily_metrics.sqlcontains_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