dbt 自定义AdapterPlugin 中dependencies 简单说明
结合dbt-redshift 的对于dependencies 部分的定义以及使用简单说明下
参考代码
Plugin: AdapterPlugin = AdapterPlugin(
adapter=RedshiftAdapter, # type: ignore
credentials=RedshiftCredentials,
include_path=redshift.PACKAGE_PATH,
dependencies=["postgres"],
)
作用以及使用
- 作用
这个实际上就是一个声明,我们依赖dbt-postgres 这个adapter 的一些信息,同时对于adapter dispatch 的查找也会使用到
- 使用
redshift 中核心是使用了一些dbt-postgres adapter 的macro ,如下,核心是复用一些能力,目前dbt-redshift 主要是macro 的复用
说明
实际上dependencies 就是一个标记,说明我们开发的adapter 依赖其他adapter 一些能力(可能是macro, 也可能是adapter 的一些实现类,比如dbt-synapse 依赖dbt-fabric)
参考资料
dbt/adapters/redshift/init.py