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

posted on 2024-05-06 07:35  荣锋亮  阅读(5)  评论(0编辑  收藏  举报

导航