dbt 的meta 从dbt 系统的角度来说,属于一些元数据的扩展,可以添加一个二外的描述信息,方便进行文档或者其他的扩展(比如开发自己的解析处理)
lightdash 是基于dbt 的一个bi 平台,就比较依赖dbt 的meta 能力
配置说明
dbt meta 可以通过dbt_project.yml 的models 属性配置,或者通过config jinja macro 当然直接在资源的属性信息上也是可以配置的,dbt 官方推荐的是
在config 属性中,但是通过顶级key 也是可以的
参考配置
- 模型上
顶级key 配置
version: 2
models:
- name: users
meta:
owner: "@alice"
model_maturity: in dev
- config 属性
version: 2
models:
- name: model_name
config:
meta: {<dictionary>}
columns:
- name: column_name
meta: {<dictionary>}
docs 上的一个效果
- 配置
就是一个简单示例
version: 2
models:
- name: mymodel-v2
description: '{{doc("model_desc")}}'
columns:
- name: code
meta:
metrics:
total_sales:
type: sum
label: "Total sales (USD)"
group_label: "Sales metrics"
round: 2
tests:
- is_even:
config:
store_failures: true
where: "code > 0"
- 效果
可以看到在详情中包含一些配置信息
说明
dbt 的meta 不只是在文档中比较有用,实际上不少dbt 扩展的处理也会使用此配置,比如lightdash,基于dbt meta 可以实现灵活的扩展
参考资料
https://docs.getdbt.com/reference/resource-configs/meta
https://docs.getdbt.com/reference/configs-and-properties
https://docs.lightdash.com/get-started/setup-lightdash/how-to-create-metrics