dbt adapter 开发一些资料

dbt 演变以及周边工具是越来月多了,而且有不少db 已经支持dbt 的集成玩法了,官方提供了一些相关开发文档,一些不是很清晰
对于我们实际需要开发的,就可以自己摸索,现在new sql 是越来越多了,但是并不是都能更好的支持dbt 内置的一些功能,

连接管理部分

这个部分官方有完整的信息,文档有提供,如下是dremio 的实现,具体参考https://docs.getdbt.com/guides/dbt-ecosystem/adapter-development/3-building-a-new-adapter

 

macro 部分

这个部分,官方已经提供了说明,有一些是必须实现的,如下,同时dbt 实现了一种方法重定向的能力(adapter.dispatch)同时对于宏方法的实现包含了
一些约定<new adapter>__ 可以重写默认的实现,default__ 作为默认实现(dbt core 部分实现的),对于需要以来明确包宏的可以通过adapter.dispatch
明确定义,参考{{ return(adapter.dispatch('concat', 'dbt_utils')(fields)) }}

 


官方core 提供的一些全局宏定义

 


一个特殊buildin 宏的处理,对于ref,source,config 可能需要自己扩容,有时就可以重写了,比如dremio 就重写了ref 以及source
config 部分可以方便的进行参数的传递(比如物化处理部分)

说明

dbt adapter扩展,对于宏处理是比较核心的,同时dbt 以来了multidispatch 模式很好的解决了宏方法选择的问题,dbt core 实现了大部分可共享的
宏,我们可以很方便的进行重写,当然开发中还是得遵循已给dbt 的项目实践(吐槽一些吧,实际上dbt 官方文档部分关于命名也不是很统一)

参考资料

core/dbt/clients/jinja.py
https://github.com/dbt-labs/dbt-database-adapter-scaffold
https://docs.getdbt.com/reference/dbt-jinja-functions
https://docs.getdbt.com/reference/dbt-jinja-functions/dispatch
https://docs.getdbt.com/guides/advanced/creating-new-materializations
https://docs.getdbt.com/guides/advanced/using-jinja
https://docs.getdbt.com/reference/dbt-jinja-functions/config
https://docs.getdbt.com/guides/dbt-ecosystem/adapter-development/3-building-a-new-adapter
https://docs.getdbt.com/guides/dbt-ecosystem/adapter-development/4-testing-a-new-adapter
https://docs.getdbt.com/guides/best-practices/how-we-style/0-how-we-style-our-dbt-projects
https://docs.getdbt.com/guides/best-practices/materializations/2-available-materializations
https://docs.getdbt.com/reference/dbt-classes
https://docs.getdbt.com/reference/dbt-jinja-functions/adapter
https://docs.getdbt.com/reference/dbt-jinja-functions/builtins

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

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-08-06 tengine 支持dubbo 的docker镜像
2019-08-06 pmm 添加proxysql metrics
2018-08-06 cratedb joins 原理(官方文档)
2018-08-06 cratedb geo 查询
2018-08-06 cratedb nodejs 试用
2018-08-06 cratedb json 数据导入
2018-08-06 cratedb 集群 docker-compose 安装试用

导航

< 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
点击右上角即可分享
微信分享提示