Skip to content

首页

关于dbt

DBT 针对您的数据平台编译并运行您的分析代码,使您和团队能够在指标、洞察和业务定义的单一事实来源上进行协作。这种单一事实来源与为数据定义测试的能力相结合,可在逻辑更改时减少错误,并在出现问题时提醒您。

阅读更多关于我们为什么希望数据分析师像软件工程师一样工作dbt观点.

DBT 优化您的工作流程

  • 避免编写DML和DDL来删除表和管理架构更改。仅使用 SQL 语句或 Python 编写业务逻辑,返回所需的数据集,且很好地处理物化.
  • 构建可重用或模块化的数据模型,这些数据模型可以在后续工作中引用,而不是从每次分析的原始数据开始。.
  • 显著减少查询的运行时间:利用元数据查找要优化的长时间运行的模型,并使用 dbt 易于配置和使用的增量模型.
  • 利用hooks包管理编写整洁的代码

DBT 提供更可靠的分析

  • 不再复制和粘贴 SQL,这可能会导致逻辑更改时出错。相反,构建可重用的数据模型,并将其提取到后续模型和分析中。更改一次模型,该更改将传播到其所有依赖项。
  • 发布特定数据模型的规范版本,封装所有复杂的业务逻辑。此模型之上的所有分析都将包含相同的业务逻辑,而无需重新实现它。
  • 使用成熟的源代码管理流程,如分支、拉取请求和代码评审。
  • 在基础数据上快速轻松地编写数据质量测试。许多分析错误是由数据中的边缘情况引起的:测试可帮助分析师查找和处理这些边缘情况。

DBT产品

你可以访问DBT命令行程序或者DBT云服务,DBT云服务是DBT命令行程序上搭建的,同时它也提供:

  • 基于 Web 的 UI,因此更易于访问
  • 托管环境,因此启动和运行速度更快
  • 差异化功能,例如元数据、应用内作业调度程序、可观测性、与其他工具的集成、集成开发环境 (IDE) 等。

你可以在www.getdbt.com了解产品和定价.

DBT云服务

DBT云服务是部署 dbt 最快、最可靠的方法。在一个基于 Web 的 UI 中开发、测试、计划和研究数据模型。详细了解 dbt 云服务 ,并尝试快速入门

dbt Core

dbt Core是一个开源免费工具,它让数据团队使用分析工程来转换数据成为最佳实践。您可以在命令行上安装和使用 dbt Core。通过 dbt Core 的快速入门了解详细信息。

dbt的强大功能

作为 dbt 用户,您的主要关注点将是编写反映核心业务逻辑的模型(如select查询),无需编写固定代码来创建表和视图,也无需定义模型的执行顺序。相反,dbt 会为您将这些模型转换为数据仓库中的对象。

特征 详情
处理可重复的代码以将查询转化为关联关系 对于您创建的每个模型,您可以轻松地配置一个 materialization(物化方式)。一个物化代表了一个select查询的构建策略——物化背后的代码是健壮的,可复用的SQL,它将select查询封装在一条语句中,以创建新的或更新已有的关系. 请阅读更多关于 物化.
使用代码编译器 SQL文件可以包含Jinja,一种轻量级的模板语言。在SQL中使用Jinja提供了一种在查询中使用控制结构的方法。例如if语句和For循环。它还允许通过共享重复的SQL。请阅读更多关于.
安排模型执行的顺序 通常,在转换数据时,分步骤执行是有意义的。dbt提供了一种通过ref函数分步骤实现转换数据的机制。您可以从一个模型中进行选择,而不是从仓库中的现有表和视图中进行选择。
文档化你的dbt项目 dbt提供了一种机制来为dbt模型编写、版本控制和共享文档。您可以为每个模型和字段编写描述(以纯文本或标记)。在dbt Cloud中,您可以在dbt项目运行时自动生成文档。请阅读更多关于有关文档.
模型测试 模型测试通过对模型生成的结果进行断言,来提高每个模型中SQL的完整性。请阅读更多关于模型测试
包管理 dbt附带了一个包管理器,它允许分析师使用和发布dbt代码的公共和私有存储库,然后其他人可以引用这些存储库。请阅读更多关于包管理.
加载seed种子文件 通常在分析中,原始值需要映射到更可读的值(例如,将国家代码转换为国家名称),或者用静态或不经常更改的数据进行丰富。这些数据源称为seed种子文件,可以在项目中保存为CSV文件,并使用seed命令加载到数据仓库中。请阅读更多关于种子Seeds.
快照数据 通常,数据源中的记录是可变的,因为它们会随着时间而变化。如果要重建历史值,在分析中可能很难处理。DBT 提供了一种通过使用快照为某个时间点的原始数据创建快照的机制。请阅读更多关于快照snapshots.