数据转换工具DBT介绍及实操(上)

一、什么是DBT

dbt (data build tool)是一款流行的开源数据转换工具,能够通过 SQL 实现数据转化,将命令转化为表或者视图,提升数据分析师的工作效率。dbt 主要功能在于转换数据库或数据仓库中的数据,在 E(Extract)、L(Load)、T(Transform) 的流程中,仅负责转换(transform)的过程。 通过 dbt插件,数据分析师能够通过 SQL 直接建立表单并匹配数据,而无需关注创建 table 或 view 的过程,并且可以直观地看到数据的流动;同时能够运用 dbt 编写 SQL、进行测试、以及包管理等功能。
二、DBT官方支持的数据源
Data Platform     latest verified version
AlloyDB     (same as dbt-postgres)
Azure Synapse     1.3.0
BigQuery     1.2.0
Databricks     1.3.0 ?
Dremio     1.3.0 ?
Postgres     1.2.0
Redshift     1.2.0
Snowflake     1.2.0
Spark     1.2.0
Starburst & Trino     1.2.0 ?
三、开源社区支持的数据源
Athena     Greenplum     Oracle
Clickhouse     Hive     Rockset
IBM DB2     Impala     SingleStore
Doris & SelectDB     Infer     SQLite
DuckDB     iomete     SQL Server & Azure SQL
Dremio     Layer     Teradata
Exasol Analytics     Materialize     TiDB
Firebolt     MindsDB     Vertica
AWS Glue     MySQL     
Databend Cloud     fal - Python models     
四、DBT关于建模的两个特点
1、DBT 能避免编写DDL语句

仅使用 查询SQL 语句或 Python dataframe编写业务逻辑,并返回所需的数据集,dbt 负责这些数据集的物化,从而构建可重用或模块化的数据模型,这些数据模型可以在后续工作中引用,而不是从每次分析的原始数据开始。这显著减少了数据查询的运行时间,dbt还能通过函数、工具包等构建和管理模型的ER图。
2、DBT 提供更可靠的分析不再复制和粘贴 SQL,因为这可能会导致逻辑更改时出错。dbt可以构建可重用的数据模型,并将其提取到后续模型和分析中。更改一次模型,该更改将传播到其所有依赖项。发布特定数据模型的规范版本,封装所有复杂的业务逻辑。此模型之上的所有分析都将包含相同的业务逻辑,而无需重新实现它。使用类似git一样成熟的源代码管理流程,如分支、拉取请求和代码评审。在基础数据上快速轻松地编写数据质量测试。
五、DBT建模功能总结
特征     描述
将SQL查询语句转化为关系     数据模型通过编写固定格式的标准select语句来实现,DBT能够识别一个模型配置文件内SQL语句之间的血缘关系,在将SQL语句执行为表或视图的同时,提取表或视图之间的关系进行展示。
固化模型的执行顺序     通过DBT做复杂的数据转换,将分多个步骤,关于每个步骤的执行顺序,DBT 通过REF函数分阶段实现转换。
类似git的版本控制     DBT将模型编写、版本控制和每个模型和字段编写描述等,通过类似git的模式进行管控。
数据模型管理功能     DBT 附带了一个包管理器,使得模型代码的公共和私有存储库能够被有权限的其他人直接调用。
本地文件导入     如一些码表信息、CSV文件等,能够直接加载为数据库中的表。
数据快照     DBT 提供了为某个时间点的原始数据创建快照的机制。
 


版权声明:本文为weixin_72407838原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。