dbt-labs/dbt-core
摘要
dbt Core v2.0 是一个基于 Rust 的彻底重写版本,目前处于 Alpha 阶段。它承诺实现更快的解析速度、更严格的语言规范以及可扩展的 Parquet 工件,使分析师和工程师的数据转换更加高效。
查看缓存全文
缓存时间: 2026/06/27 11:15
dbt-labs/dbt-core 源代码:https://github.com/dbt-labs/dbt-core
dbt Core v1 的开发已迁移到
1.latest分支 (https://github.com/dbt-labs/dbt-core/tree/1.latest)。main分支现在托管 dbt Core v2.0(alpha 版本)—— 一款基于 Rust 完全重写的版本,是 Fusion 引擎的基础。如果你在寻找基于 Python 实现的 dbt Core,请切换到1.latest分支 (https://github.com/dbt-labs/dbt-core/tree/1.latest)。
dbt (https://www.getdbt.com/) 使数据分析师和工程师能够利用软件工程师构建应用程序的相同实践来转换数据。
架构
关于 dbt Core v2.0
🚧 dbt Core v2.0 目前处于 alpha 阶段。行为、API 以及磁盘格式在稳定版发布前均可能发生变化。
dbt Core v2.0 专为大规模性能而设计 —— 解析、编译和运行项目的时间相比 v1 大幅缩短。它采用 Apache 2.0 许可证发布,是 Fusion 引擎 (https://docs.getdbt.com/docs/fusion/about-fusion) 的基础。
与 v1 相比的主要变化:
- 更快 —— 解析和编译时间显著提升,尤其是在最大的 dbt 项目上。
- 更严格 —— 严格定义的语言规范在解析时强制保证正确性。
- 更具可扩展性的产物 —— v2.0 生成 Parquet 产物,可以轻松查询、连接和分析,以了解你的 dbt 项目。这些产物包含了 JSON 产物(例如
manifest.json)中的所有内容,为了向后兼容性,JSON 产物仍会继续生成。 - 更易安装 —— 作为单一自包含二进制文件分发,无需 Python 运行时或依赖管理。
- 完全革新的本地文档体验 —— dbt docs 现在由这些新产物驱动,能够扩展到大型项目。
支持的操作系统和架构
dbt Core v2.0 及其驱动程序针对不同操作系统和架构进行编译。
图例:
- 🟢 —— 当前支持
- 🟡 —— 尚未支持
| 操作系统 | x86-64 | ARM |
|---|---|---|
| macOS | 🟢 | 🟢 |
| Linux | 🟢 | 🟢 |
| Windows | 🟢 | 🟡 |
理解 dbt
使用 dbt 的分析师只需编写 select 语句即可转换数据,而 dbt 负责将这些语句转化为数据仓库中的表(tables)和视图(views)。这些 select 语句,即“模型”,构成了一个 dbt 项目。模型通常相互构建 —— dbt 可以轻松管理模型之间的关系 (https://docs.getdbt.com/docs/ref),并可视化这些关系 (https://docs.getdbt.com/docs/documentation),同时通过测试 (https://docs.getdbt.com/docs/testing) 来确保转换质量。
dbt dag
入门指南
首先选择一个发行版。dbt Core 是 dbt 的基础发行版。Fusion 在 dbt Core 之上扩展了额外的 SQL 理解能力。两个发行版均可免费安装并本地运行。
- 如果你需要一款 Apache 2.0 许可的工具,并且能够审查其中的每一行代码,请安装 dbt Core (https://docs.getdbt.com/docs/local/install-dbt#dbt-core)。
- 如果你需要一款可以本地使用的免费 CLI,请安装 Fusion (https://docs.getdbt.com/docs/local/install-dbt#dbt-fusion-engine-recommended)。它开箱即用功能比 dbt Core 更强大,并且如果你愿意,可以在未来无缝启用其他高级功能。
无论你选择哪个发行版,它们都属于同一个框架,拥有相同的语言规范,这意味着你的业务逻辑可在两者之间双向移植。
探索 dbt 平台 (https://docs.getdbt.com/docs/cloud/about-cloud/dbt-cloud-features) 以获得更强大的协作体验。
阅读介绍 (https://docs.getdbt.com/docs/introduction/) 和观点 (https://docs.getdbt.com/docs/about/viewpoint/)
加入 dbt 社区
- 在 dbt 社区 Slack (http://community.getdbt.com/) 中参与讨论
- 在 dbt Community Discourse (https://discourse.getdbt.com) 上阅读更多内容
报告 Bug 和贡献代码
- 想要报告 Bug 或请求功能?请告诉我们并创建一个 issue (https://github.com/dbt-labs/dbt-core/issues/new/choose)
- 想要帮助我们构建 dbt?请查看贡献指南 (https://github.com/dbt-labs/dbt-core/blob/HEAD/CONTRIBUTING.md)
行为准则
所有参与 dbt 项目代码库、问题追踪器、聊天室和邮件列表的参与者都应遵守 dbt 行为准则 (https://docs.getdbt.com/community/resources/code-of-conduct)。
许可证
dbt Core 采用 Apache License 2.0 许可证。
相似文章
TorQ: Kdb+ 生产框架
TorQ是一个面向kdb+的开源生产框架,提供核心功能、工具和最佳实践,帮助开发者高效构建和管理kdb+系统。
我用Rust构建了一个用于智能体跟踪的数据库(10亿行数据P95低于1毫秒)
ZenithDB是一款新的开源Rust数据库,专为存储和查询AI智能体跟踪而设计。通过在压缩过程中将同一跟踪的所有跨度放在同一个位置,它在10亿行数据上实现了亚毫秒级的跟踪获取延迟,并内置了全文搜索和延迟物化功能。
tursodatabase/turso
Turso Database 是一个用 Rust 编写的进程内 SQL 数据库,兼容 SQLite,具备 MVCC、变更数据捕获、向量支持以及多语言绑定功能。
@daleverett: https://x.com/daleverett/status/2055332581659566288
pgGraph 是一个高性能、开源图遍历扩展,专为 PostgreSQL 设计,使用 Rust 编写,旨在让 AI 代理能够快速执行关系查询,而无需将数据迁移到单独的图数据库中。
databow: 一个使用ADBC驱动程序查询任何数据库的Rust CLI工具
databow 是一个新的开源 Rust CLI 工具,提供统一的接口,可通过 ADBC 驱动程序查询任何数据库,支持超过30种数据库,包括 PostgreSQL、DuckDB 和 Snowflake。