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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用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 安装试用