dbt 一些默认可以扩展的macro

我只结合adapter 包中对于global macro 一些扩展进行说明,还会有其他地方支持扩展的macro(比如自定义schema 的)

系统adapter 提供的几个扩展

dbt/adapters/sql/impl.py 中

  • 几个参考定义

以下这几个是留给了具体adapter 实现进行扩展(有一些是留给具体adapter 进行实现了,默认也包含了一些实现)

LIST_RELATIONS_MACRO_NAME = "list_relations_without_caching"
GET_COLUMNS_IN_RELATION_MACRO_NAME = "get_columns_in_relation"
LIST_SCHEMAS_MACRO_NAME = "list_schemas"
CHECK_SCHEMA_EXISTS_MACRO_NAME = "check_schema_exists"
CREATE_SCHEMA_MACRO_NAME = "create_schema"
DROP_SCHEMA_MACRO_NAME = "drop_schema"
RENAME_RELATION_MACRO_NAME = "rename_relation"
TRUNCATE_RELATION_MACRO_NAME = "truncate_relation"
DROP_RELATION_MACRO_NAME = "drop_relation"
ALTER_COLUMN_TYPE_MACRO_NAME = "alter_column_type"
VALIDATE_SQL_MACRO_NAME = "validate_sql"
  • 可以覆盖的实现

这个我在schema 自定义部分也说明了,dbt adapter 包含了默认实现,但是可以自己覆盖重写

special_override_macros = [
    "ref",
    "source",
    "config",
    "generate_schema_name",
    "generate_database_name",
    "generate_alias_name",
]

说明

实际上以上部分在dbt adapter 开发中也有说明到(具体是必须实现的macro 部分)
如下 (required 说明是必须实现,但是global 没有提供默认实现)

alter_column_type 
check_schema_exists 
create_schema 
drop_relation 
drop_schema  
get_columns_in_relation (required)
list_relations_without_caching  (required)
list_schemas  
rename_relation  
truncate_relation  
current_timestamp(required)
copy_grants

了解以上注意事项对于开发dbt adapter 会有不少帮助,但是并不是以上扩展必须使用macro 实现,对于一些不支持的我们可以结合python 代码去实现,比如dremio 对于schema 部分的处理就直接自己基于python 实现了,没有基于macro (因为dremio 不支持基于schema,基于macro 的sql 操作不方便)

参考资料

dbt/adapters/sql/impl.py
https://docs.getdbt.com/docs/build/custom-schemas
https://docs.getdbt.com/guides/adapter-creation?step=3

posted on   荣锋亮  阅读(15)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-05-04 基于s3的一种luarocks 私服多租户解决方案
2022-05-04 luarocks 私服搭建&简单使用
2022-05-04 luarocks 简单使用&openresty 离线集成说明
2020-05-04 grafana 开发参考资料
2020-05-04 pmm 2.x 与1.x 的差异
2019-05-04 cube.js 学习(十)cube 来自官方的学习网站
2019-05-04 Optimize Cube.js Performance with Pre-Aggregations

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示