meta
- Models
- Sources
- Seeds
- Snapshots
- Tests
- Analyses
- Macros
- Exposures
- Semantic models
- Metrics
- Saved queries
version: 2
models:
- name: model_name
config:
meta: {<dictionary>}
columns:
- name: column_name
meta: {<dictionary>}
The meta
config can also be defined:
- under the
models
config block indbt_project.yml
- in a
config()
Jinja macro within a model's SQL file
See configs and properties for details.
version: 2
sources:
- name: model_name
config:
meta: {<dictionary>}
tables:
- name: table_name
config:
meta: {<dictionary>}
columns:
- name: column_name
meta: {<dictionary>}
version: 2
seeds:
- name: seed_name
config:
meta: {<dictionary>}
columns:
- name: column_name
meta: {<dictionary>}
The meta
config can also be defined under the seeds
config block in dbt_project.yml
. See configs and properties for details.
version: 2
snapshots:
- name: snapshot_name
config:
meta: {<dictionary>}
columns:
- name: column_name
meta: {<dictionary>}
The meta
config can also be defined:
- under the
snapshots
config block indbt_project.yml
- in a
config()
Jinja macro within a snapshot's SQL block
See configs and properties for details.
You can't add YAML meta
configs for generic tests. However, you can add meta
properties to singular tests using config()
at the top of the test file.
The meta
config is not currently supported for analyses.
version: 2
macros:
- name: macro_name
meta: {<dictionary>}
arguments:
- name: argument_name
version: 2
exposures:
- name: exposure_name
meta: {<dictionary>}
Configure meta
in the your semantic models YAML file or under the semantic-models
config block in the dbt_project.yml
file.
The meta
config can also be defined under the semantic-models
config block in dbt_project.yml
. See configs and properties for details.
saved_queries:
- name: saved_query_name
config:
meta: {<dictionary>}
Definition
The meta
field can be used to set metadata for a resource. This metadata is compiled into the manifest.json
file generated by dbt, and is viewable in the auto-generated documentation.
Depending on the resource you're configuring, meta
may be available within the config
property, and/or as a top-level key. (For backwards compatibility, meta
is often (but not always) supported as a top-level key, though without the capabilities of config inheritance.)
Examples
Designate a model owner
Additionally, indicate the maturity of a model using a model_maturity:
key.
version: 2
models:
- name: users
meta:
owner: "@alice"
model_maturity: in dev
Designate a source column as containing PII
version: 2
sources:
- name: salesforce
tables:
- name: account
meta:
contains_pii: true
columns:
- name: email
meta:
contains_pii: true
Configure one meta attribute for all seeds
seeds:
+meta:
favorite_color: red
Override one meta attribute for a single model
{{ config(meta = {
'single_key': 'override'
}) }}
select 1 as id
Assign owner and favorite_color in the dbt_project.yml as a config property
models:
jaffle_shop:
+meta:
owner: "@alice"
favorite_color: red
Assign meta to semantic model
The following example shows how to assign a meta
value to a semantic model in the semantic_model.yml
file and dbt_project.yml
file:
- Semantic model
- dbt_project.yml
semantic_models:
- name: transaction
model: ref('fact_transactions')
description: "Transaction fact table at the transaction level. This table contains one row per transaction and includes the transaction timestamp."
defaults:
agg_time_dimension: transaction_date
config:
meta:
data_owner: "Finance team"
used_in_reporting: true
semantic-models:
jaffle_shop:
+meta:
used_in_reporting: true