dbt relation 包含的一些额外方法简单说明
在看dbt 关于get_replace_sql macro 的时候发现了一个relation 一些比较有意思的方法,以下简单说明下
dbt relation 类
dbt relation 包含了基类BaseRelation,InformationSchema 类以及各种基于BaseRelation 的实现子类
BaseRelation使用了InformationSchema,BaseAdapter adapter 基类中也包含对于relation 的处理
BaseRelation 一些其他用法
以前我简单说过自定义方法的,实际上relation 还包含不少其他有意思的方法
- 一个参考使用
通过relation 获取类型以及是否可以进行替换
{% set is_replaceable = existing_relation.type == target_relation_type and existing_relation.can_be_replaced %}
- 一些其他方法
只是简单列出来,实际的使用可以自己研究下
说明
dbt 的relation 实际上隐藏了不少有一些方法,只是官方文档缺少描述,但是实际一些adapter 实现中使用了不少隐藏的方法
参考资料
dbt/include/global_project/macros/relations/replace.sql
https://docs.getdbt.com/reference/dbt-classes