A group is a collection of nodes within a dbt DAG. Groups are named, and every group has an owner. They enable intentional collaboration within and across teams by restricting access to private models.
Group members may include models, tests, seeds, snapshots, analyses, and metrics. (Not included: sources and exposures.) Each node may belong to only one group.
Groups are defined in .yml files, nested under a “groups:” key.
Example of group
models/marts/finance/finance.yml groups: - name: finance owner: # 'name' or 'email' is required; additional properties allowed email: finance@jaffleshop.com slack: finance-data github: finance-data-team
Referencing a model in a group
By default, all models within a group have the protected access modifier. This means they can be referenced by downstream resources in any group in the same project, using the ref function. If a grouped model’s access property is set to private, only resources within its group can reference it.
models/schema.yml models: - name: finance_private_model access: private config: group: finance # in a different group! - name: marketing_model config: group: marketing models/marketing_model.sql select * from {{ ref('finance_model') }}
The above code throws an error as the access is restricted to “Private” and the group is accessed outside finance group
Adding a model to a group
Use the group configuration to add one or more models to a group.
Project-level
dbt_project.yml models: marts: finance: +group: finance
Model-level
models/schema.yml models: - name: model_name config: group: finance
In-file
models/model_name.sql {{ config(group = 'finance') }} select ... (sql code)
We at Helical have more than 10 years of experience in providing solutions and services in the domain of data and have served more than 85+ clients. We are also DBT partners, hence in case if you are looking for certain assistance, consulting, services please do reach out on nikhilesh@Helicaltech.com
Add groups to your DAG dbt cloud groups What are the rules for DBT group? What Is Group In DBT?