构建一个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 数据库适配器的更多相关文章
- jmeter 构建一个数据库测试计划
添加用户 第一步你想做的每一个JMeter测试计划是添加一个 线程组 元素. 的线程组 告诉JMeter的用户数量你想模拟,用户应该多长时间 发送请求,他们应该发送的请求的数量. 继续添加Thread ...
- .Net中的AOP系列之构建一个汽车租赁应用
返回<.Net中的AOP>系列学习总目录 本篇目录 开始一个新项目 没有AOP的生活 变更的代价 使用AOP重构 本系列的源码本人已托管于Coding上:点击查看. 本系列的实验环境:VS ...
- 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章 ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...
- 从零构建一个简单的 Python Web框架
为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何 ...
- 怎样打造一个分布式数据库——rocksDB, raft, mvcc,本质上是为了解决跨数据中心的复制
摘自:http://www.infoq.com/cn/articles/how-to-build-a-distributed-database?utm_campaign=rightbar_v2& ...
- 抛弃EF,20分构建一个属于自己的ORM框架
Poiuyt_cyc 博客园首页新随笔联系订阅管理随笔 - 11 文章 - 0 评论 - 111 抛弃EF,20分构建一个属于自己的ORM框架 相信EF大家都不陌生了,因为数据库表跟程序实体是一一 ...
- 15一个NoSql数据库
随着因特网web2.0该网站的兴起.非关系型数据库,现在已经成为一个非常受欢迎的新领域.非关系数据库产品的发展非常迅速.而在处理传统的关系数据库web2.0现场.特别是大规模,高并发SNS类型web2 ...
- NHibernate构建一个ASP.NET MVC应用程序
NHibernate构建一个ASP.NET MVC应用程序 什么是Nhibernate? NHibernate是一个面向.NET环境的对象/关系数据库映射工具.对象/关系数据库映射(object/re ...
- 从零开始构建一个的asp.net Core 项目
最近突发奇想,想从零开始构建一个Core的MVC项目,于是开始了构建过程. 首先我们添加一个空的CORE下的MVC项目,创建完成之后我们运行一下(Ctrl +F5).我们会在页面上看到"He ...
随机推荐
- 3 python 基本数据类型
1.python的基本数据类型 1.字符串 不可变数据类型 2.int //整除 %取余 bit_length() print(a.bit_length()) #打印某个数字类型的二进制长度 3.bo ...
- Many Easy Problem
转自hwk0518,不胜感谢,侵删.
- Strip CodeForces - 487B (单调队列)
题面: Alexandra has a paper strip with n numbers on it. Let's call them ai from left to right. Now Ale ...
- Service Account和其secrets 作用和场景,看了不亏。。
Service Account概念的引入是基于这样的使用场景: 运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务.Service Account它并 ...
- nyoj-489-dinic/建图
哭泣天使 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 Doctor Who乘着Tardis带着Amy来到了一个星球,一开Tadis大门,发现这个星球上有个壮观的石 ...
- html form表单提交后处理返回数据
上传如果通过form提交并且需要处理返回值.(其实用ajax上传方式刚好,看需要) 可以这么做: <form id="importBookForm" action=" ...
- POJ 2566 Bound Found 尺取 难度:1
Bound Found Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 1651 Accepted: 544 Spec ...
- java 需要看的书籍
参考链接:http://www.jianshu.com/p/454fc1e6cbe2 最近要看的有:Effective java 深入理解java 虚拟机 java 并发编程实战 (设计模式的书籍 ...
- L1-032 Left-pad
根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的Re ...
- DevExpress XtraScheduler日程管理控件应用实例(1)-- 基本使用
在一些应用场景中,我们可能需要记录某一天,某个时段的日程安排,那么这个时候就需要引入了 DevExpress 的日程控件XtraScheduler 了,这个控件功能非常强大,提供了很好的界面展现方式, ...