构建一个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

原文地址:https://www.cnblogs.com/rongfengliang/p/9824237.html