相关文章推荐
眉毛粗的电梯  ·  在 Microsoft SQL ...·  1 周前    · 
睿智的伤疤  ·  sp_columns ...·  1 周前    · 
心软的钥匙扣  ·  SQL ...·  4 天前    · 
追风的炒粉  ·  android 与C# UDP通信 - ...·  10 月前    · 
一身肌肉的小马驹  ·  c# - How exactly ...·  1 年前    · 
英俊的蚂蚁  ·  Binary malware image ...·  1 年前    · 
谦虚好学的脸盆  ·  java文件夹结构 ...·  1 年前    · 
DBT是一个数据转换流编排工具,主要用于构建SQLpipeline。它将SQL开发工程化,支持版本控制和CI/CD,且具备一定的数据库方言兼容性。在本文中,作者介绍了如何使用DBT与duckdb搭建首个工程,包括安装、配置及运行基本命令。此外,文章讨论了DBT适用的场景和其在数据处理流程中的角色。 摘要由CSDN通过智能技术生成

DBT是什么:

按照官方的说法,DBT 是一个数据转换流编排工具。个人理解就是,DBT是帮你编排SQL用的,你可以按照DBT的结构,构建好一个SQL的pipeline,然后让DBT帮你执行这个pipeline。我这里说的SQL pipeline的意思就是,先执行SQL a,再执行SQL b,类似这种。个人理解这就是DBT最大也是最核心的功能!

因为在DBT中的操作基本都是关于SQL的操作,所以DBT才对外宣称自己是专门做ETL中的T(当然它也有支持一部分的python代码,但是貌似支队一小部分数据库提供支持)。

个人觉得如果公司内部现成已经有一套数据任务开发框架,或者使用的是 ali 的 dataworks 、网易的 easydata 之类的,貌似没必要强行再上DBT。如果你是个中小公司,没有现成的数据开发平台,或者你是个数据分析师,嫌弃商用数据开发平台使用成本太高而且数据想保存在公司本地电脑中,那么建议考虑一下DBT!

DBT还有一些特点:1. 把SQL开发像后端代码开发一样工程化,SQL工程存储在后端的代码仓库上,可以做到CI/CD。 2. 支持 jinja 宏函数,然后DBT定义了一套语法规范,抹平了一些SQL方言上的差异,做到一套DBT代码就可以在各个数据仓库上运行。当然对于这块功能我还是要打个问号的,后面研究的深入了再看看。 3. 无须写insert语句,直接写select语句即可,dbt会自动根据select建表,讲数据写入到数据库 4. 其他功能,后面慢慢说吧...

搭建第一个DBT工程:

这里说的DBT指的是开源的dbt core,另外还有一款闭源的收费产品叫 dbt cloud。

DBT是python代码编写的,所以想要使用dbt就要首先安装好python环境,个人使用的是3.10。

基于duckdb:

dbt官方的收费产品dbt cloud 仅支持 BigQuery、Databricks、Postgres 等十多个数据库适配器,其他例如 Doris、MySQL、Hive 等等都是社区各自自己提供的适配器(开源)支持dbt。

此处演示使用的数据库为duckdb。为什么是基于duckdb,是因为duckdb不需要安装,直接引个python包就好了。直接 pip install dbt-duckdb 安装好对应的python包即可,当然最好是在python虚拟环境中安装,防止与外部包冲突,同时安装dbt-duckdb 会自动把dbt-core 也安装好。

环境安装好之后,然后直接执行dbt init my_jaffle_shop 就会帮你创建好一个名叫my_jaffle_shop 的dbt demo工程,如下所示,dbt会自动帮你创建好目录结构。其中dbt-project.yml是整个dbt工程的配置文件,它里面说明dbt工程的一些环境变量的配置,这样dbt就知道如何去解析工程结构了(具体每项配置干嘛用的,后续再说):

同时在工程中还要新建一个文件叫profiles.yml,就是上面标红的第二个文件,整个文件是用于配置数据库连接信息用的,告诉dbt如何连接数据库。例如duckdb的配置如下所示:

然后cd 到 myduckdb_jaffle_shop 目录下,执行 dbt run 命令,显示success,整个dbt工程就跑完了,数据就按demo工程中的SQL语句运行完毕写入到duckdb数据库中了:

使用命令行查看运行结果:

DBT是什么_dbt数据库_DBT中文社区的博客-CSDN博客

Quickstart for dbt Core from a manual install | dbt Developer Hub

Fivetran的入门项目,它是构建 dbt 软件包的基础。这是转换+源软件包的README模板。 [连接器名称]([docs](netlify托管的docs网站的主页)) 该软件包对[连接器名称]数据进行。 它使用[this ERD](连接到连接器ERD的链接)描述的格式的数据。 [包装的高级物镜]。 它通过以下方式实现此目的: [该软件包的主要功能是#1] [#3] ... 兼容性(如果需要) 请注意, 和软件包仅适用于[某个日期]之后发布的。 如果您的Jira连接器是在[某个日期]之前设置的,则您将需要完全重新同步或设置新的[连接器名称]连接器,以使Fivetran dbt [连接器]程序包起作用。 型号-转换套件版本 该软件包包含转换模型,旨在与我们的[Connector源软件包]同时使用(链接到源软件包repo)。 在此软件包的packages.yml文件中声明
这个工具可以把 数据库 的结构转化为文本文件。配合版本控制软件,你就可以很容易了解到对 数据库 结构的所有变更。 方便大家在开发 数据库 时对 数据库 结构的控制,尤其是喜欢写存储过程的朋友们。 目前只支持oracle 数据库 ,pro*c只能编译出指定版本的目标代码,所以我放了一个oracle10g的客户端上来。 如果大家觉得这个东西对你有用,请告诉我。 如果大家觉得还有什么问题,有什么意见,那更加请你告诉我。
m/ dbt 工艺流程由以下几个部分组成: 1. 制备原料:m/ dbt 工艺首先需要准备原料,包括金属材料、化学物质和溶剂等。这些原料需要经过严格的筛选和检测,确保其质量符合要求,并且不会对环境和人体造成危害。 2. 设备准备:m/ dbt 工艺需要使用一系列专业的设备和工具,例如反应釜、控制系统、过滤器等。在进行工艺之前,需要对这些设备进行维护和检查,确保其正常运行和安全性。 3. 反应过程:m/ dbt 工艺中最重要的环节是反应过程。通过在反应釜中加入特定的化学物质和溶剂,利用热力学和动力学原理进行化学反应。反应过程需要精确的控制温度、压力和时间等参数,以确保反应的效率和产物的质量。 4. 产物分离与纯化:在反应结束后,产生的混合物需要进行分离和纯化。常见的分离技术包括过滤、蒸馏、萃取和结晶等。这些步骤可以将目标产物与其他杂质物质分离,提高产物的纯度和纯度。 5. 产品后处理:最后,m/ dbt 工艺的产品需要进行后处理。这包括产品的干燥、质量检测和包装等。产品的干燥能够去除残留溶剂,保证产品的稳定性和可储存性。质量检测则用于验证产品是否符合规格要求。最后,产品通过适当的包装技术进行包装,以便于储存、运输和销售。 综上所述,m/ dbt 工艺流程包括原料准备、设备准备、反应过程、产物分离与纯化以及产品后处理等环节。这些步骤共同完成了m/ dbt 工艺的实施,确保了产品的质量和稳定性。