关于DBT
DBT 是一种数据转换工作流,可帮助您完成更多工作,同时产生更高质量的结果。您可以使用 dbt 来模块化和集中分析代码,同时还为数据团队提供软件工程工作流中常见的护栏。在将数据模型安全部署到生产环境之前,通过监控和可见性协作处理数据模型,并对其进行测试和记录。
DBT 针对您的数据平台编译并运行您的分析代码,使您和您的团队能够在指标、见解和业务定义的单一事实来源上进行协作。这种单一事实来源与为数据定义测试的能力相结合,可在逻辑更改时减少错误,并在出现问题时提醒您。
DBT 优化您的工作流程
避免通过事务编写DML和DDL来删除表和管理架构更改。仅使用 SQL 语句或 Python 数据帧编写业务逻辑,返回所需的数据集,dbt 负责select物化.构建可重用或模块化的数据模型,这些数据模型可以在后续工作中引用,而不是从每次分析的原始数据开始。
显著减少查询的运行时间:利用元数据查找要优化的长时间运行的模型,并使用 dbt 易于配置和使用的增量模型。
写干利用宏、挂钩和包管理进行 ER 代码。
DBT 提供更可靠的分析
不再复制和粘贴 SQL,这可能会导致逻辑更改时出错。相反,构建可重用的数据模型,并将其提取到后续模型和分析中。更改一次模型,该更改将传播到其所有依赖项。
发布特定数据模型的规范版本,封装所有复杂的业务逻辑。此模型之上的所有分析都将包含相同的业务逻辑,而无需重新实现它。
使用成熟的源代码管理流程,如分支、拉取请求和代码评审。
在基础数据上快速轻松地编写数据质量测试。许多分析错误是由数据中的边缘情况引起的:测试可帮助分析师查找和处理这些边缘情况。
DBT产品
DBT分为dbt Core或dbt Cloud两个产品。dbt Cloud 是围绕 dbt Core 构建的,但它提供:
基于 Web 的 UI,因此更易于访问
托管环境,因此启动和运行速度更快
差异化功能,例如元数据、应用内作业调度程序、可观测性、与其他工具的集成、集成开发环境 (IDE) 等。
您可以在 www.getdbt.com 上了解计划和定价。
dbt Cloud
dbt 云是部署 dbt 的最快、最可靠的方法。在一个基于 Web 的 UI 中开发、测试、计划和调查数据模型。详细了解 dbt 云功能,并尝试其中一个 dbt 云快速入门。
dbt Core
dbt Core 是一个开源免费工具,使数据团队能够使用分析工程最佳实践转换数据。您可以在命令行上安装和使用 dbt Core。通过 dbt Core 的快速入门了解详细信息。
DBT的强大功能
作为 dbt 用户,您的主要关注点将是编写反映核心业务逻辑的模型(即选择查询)——无需编写样板代码来创建表和视图,也无需定义模型的执行顺序。相反,dbt 会为您将这些模型转换为仓库中的对象。
特征 描述
-
列表处理样板代码以将查询物化为关系
对于您创建的每个模型,您都可以轻松配置具体化。具体化表示选择查询的构建策略 – 具体化背后的代码是可靠的样板 SQL,它将选择查询包装在语句中以创建新的关系或更新现有关系。阅读有关具体化的更多信息。 -
使用代码编译器
SQL 文件可以包含 Jinja,一种轻量级模板语言。在 SQL 中使用 Jinja 提供了一种在查询中使用控制结构的方法。例如,语句和循环。它还允许通过 共享重复的 SQL。 -
确定模型执行顺序
通常,在转换数据时,采用分阶段方法是有意义的。DBT 提供了一种通过 ref 函数分阶段实现转换的机制。您可以从其他模型中进行选择,而不是从仓库中的现有表和视图中选择。 -
记录您的数据库项目
DBT 提供了一种机制来为 dbt 模型编写、版本控制和共享文档。您可以为每个模型和字段编写描述(纯文本或降价)。在 dbt Cloud 中,您可以在 dbt 项目运行时自动生成文档。 -
测试您的模型
测试提供了一种通过对模型生成的结果进行断言来提高每个模型中 SQL 完整性的方法。 -
管理包
DBT 附带了一个包管理器,它允许分析师使用和发布 DBT 代码的公共和私有存储库,然后其他人可以引用这些存储库。 -
加载种子文件
通常在分析中,原始值需要映射到更具可读性的值(例如,将国家/地区代码转换为国家/地区名称)或使用静态或不经常更改的数据进行丰富。这些数据源(称为种子文件)可以作为 CSV 文件保存,并使用命令加载到数据仓库中。 -
快照数据
通常,数据源中的记录是可变的,因为它们会随时间而变化。如果要重建历史值,在分析中处理可能很难。DBT 提供了一种通过使用快照为某个时间点的原始数据创建快照的机制。