构建一个dbt 数据库适配器

Posted rongfengliang-荣锋亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建一个dbt 数据库适配器相关的知识,希望对你有一定的参考价值。

脚手架新的适配器

首先,将odbc适配器模板复制到同一目录中的新文件。
更新dbt / adapters / factory.py以将新适配器包含为类型。还要将类型添加到dbt / contracts / connection.py,
并添加一个定义适配器配置文件外观的约定。

实现适配器功能

在适配器模板中,找到许多应该实现的功能,以使大多数适配器功能正常工作。最关键的是:

  • get_odbc_connection_string,必须返回一个有效的ODBC连接字符串,以传递给pyodbc进行连接;
  • type:应该与您在dbt / adapters / factory.py和dbt / contracts / connection.py中使用的类型匹配,以指定新的适配器;
  • date_function:指定此数据库用于获取当前日期和时间的函数;
  • rename:允许适配器重命名表和视图;
  • quote:实现适配器的标识符引用,例如,"identifier"postgres和[identifier]sql server;
  • query_for_existing:返回指定模式中现有表和视图的字典,其结构如下{"table_name": "table", "view_name": "view"};
  • get_existing_schemas:返回现有架构的列表
    对于其中的每一个,建议您查看其他适配器以获取示例实现。
    在实现这些之后,可能会有一个适用于构建表和视图的适配器,尽管可能需要对实现进行一些进一步的修改。
    实现在全局项目中定义,可以在dbt存储库中的dbt / include / global_project /中找到。

参考资料

https://github.com/fishtown-analytics/dbt/tree/development/dbt/adapters
https://docs.getdbt.com/docs/building-new-database-adapters
https://docs.getdbt.com/docs/creating-new-materializations
https://github.com/fishtown-analytics/dbt/blob/adapter/azure-dw/dbt/adapters/odbc_adapter_template.py

以上是关于构建一个dbt 数据库适配器的主要内容,如果未能解决你的问题,请参考以下文章

当 dbt 遇见 TiDB丨高效的数据转换工具让数据分析更简单

DBT构建和部署机器学习模型预测订单退货

dbt可以连接同一个项目的不同数据库吗?

DBT - dbt 部署模型应属于的架构的最佳实践?

dbt post hook 关系“my_table”不存在

dbt 无法创建具有相同数据库表示的两个资源