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

Добавление групп в ваш DAG

Группа — это коллекция узлов в dbt DAG. Группы имеют названия, и у каждой группы есть владелец. Они позволяют организовать целенаправленное сотрудничество внутри и между командами, ограничивая доступ к приватным моделям.

Члены группы могут включать модели, тесты, seeds, snapshots, анализы и метрики. (Не включены: источники и экспозиции.) Каждый узел может принадлежать только одной группе.

Объявление группы

Группы определяются в файлах .yml, вложенных под ключом groups:.

models/marts/finance/finance.yml
groups:
- name: finance
owner:
# 'name' или 'email' обязательны; дополнительные свойства разрешены
email: finance@jaffleshop.com
slack: finance-data
github: finance-data-team

Добавление модели в группу

Используйте конфигурацию group, чтобы добавить одну или несколько моделей в группу.

dbt_project.yml
models:
marts:
finance:
+group: finance

Ссылка на модель в группе

По умолчанию все модели в группе имеют модификатор доступа protected. Это означает, что они могут быть использованы в качестве ссылки для последующих ресурсов в любой группе в том же проекте, используя функцию ref. Если свойство access сгруппированной модели установлено как private, только ресурсы внутри её группы могут ссылаться на неё.

models/schema.yml
models:
- name: finance_private_model
access: private
config:
group: finance

# в другой группе!
- name: marketing_model
config:
group: marketing
models/marketing_model.sql
select * from {{ ref('finance_private_model') }}
$ dbt run -s marketing_model
...
dbt.exceptions.DbtReferenceError: Parsing Error
Node model.jaffle_shop.marketing_model attempted to reference node model.jaffle_shop.finance_private_model,
which is not allowed because the referenced node is private to the finance group.

Связанные документы

0