DBT 实战系列
dbt(Data Build Tool)是目前最流行的数据转换工具,它把软件工程的最佳实践——版本控制、测试、文档、模块化——引入数据建模。你用 SQL 写转换逻辑,dbt 负责依赖管理、增量计算、数据质量测试和文档生成。
ClickZetta Lakehouse 通过
dbt-clickzetta adapter 原生支持 dbt,并在标准 dbt 功能之上提供了几个 ClickZetta 特有的能力:
| 能力 | 说明 |
|---|---|
| Dynamic Table | 声明式增量计算,系统自动按周期刷新,无需外部调度 |
| Table Stream | 行级变更捕获(CDC),追踪 INSERT/UPDATE/DELETE |
| 索引自动创建 | 建表时自动创建 Bloomfilter / 倒排 / 向量索引 |
| 零拷贝克隆 | 毫秒级克隆表,不占额外存储,适合 CI/CD 环境隔离 |
| VCluster per-model | 为单个模型指定计算集群,ETL 写入和聚合查询资源隔离 |
配套项目
本系列所有文档的代码均来自以下三个可直接运行的开源项目,不是凭空编写的示例:
jaffle-shop-clickzetta 咖啡店订单数据集,dbt 官方示例项目的 ClickZetta 版本。包含 6 张 seed 表、6 个 staging 视图、7 张 mart 表、27 个 data test、3 个 unit test。适合快速上手,从零到跑通约 1 分钟。
snowflake-dbt2lakehouse-dbt TPC-H 订单数仓,从 Snowflake 迁移到 ClickZetta 的完整项目。覆盖 Dynamic Table、Table Stream CDC、增量管道、SCD 维度表等高级场景。数据源使用 ClickZetta 内置的 TPC-H 共享数据集(1.5 亿行订单),无需导入数据。
examples/ 目录)
dbt-clickzetta adapter 的功能演示项目,覆盖所有支持的 materialization 类型和高级特性。
从哪里开始
根据你的情况选择入口:
刚接触 dbt,想快速跑通 → 先看 DBT 快速入门(Jaffle Shop),30 分钟内跑通完整项目
已有 dbt 项目,想了解增量处理 → DBT 增量处理实战,4 种策略的选型和实际代码
想用 Dynamic Table 或 Table Stream 做实时管道 → DBT 实时数据管道实战
想给数据管道加测试 → DBT 数据质量实战,data test + unit test,实测 30/30 通过
想用索引、clone、VCluster 等 ClickZetta 特有能力 → DBT 高级特性实战
从 Snowflake 迁移过来 → DBT Snowflake 迁移实战:TPC-H 数仓管道
系列文章
- DBT 增量处理实战 — merge / append / delete+insert / insert_overwrite 四种策略,增量过滤写法,schema 变更处理
- DBT 实时数据管道实战 — Dynamic Table 自动刷新,Table Stream CDC,Stream offset 管理
- DBT 数据质量实战 — data test + unit test,实测 30/30 通过
- DBT 高级特性实战 — 索引(Bloomfilter/倒排/向量)、零拷贝克隆、物化视图、VCluster 资源隔离、grants
版本要求
建议使用 dbt-clickzetta >= 1.7.5,该版本修复了所有已知问题:
| 版本 | 主要修复 |
|---|---|
| 1.6.2 | seed 类型报错、timestamp seed 挂起、unit test 语法错误 |
| 1.6.3 | macro 里 返回 |
| 1.6.5 | Stream 系统列注入生成 SQL 导致报错; 正常工作 |
| 1.7.0 | seed 改用 COPY INTO,速度提升 3-5 倍 |
| 1.7.5 | 报 "already exists";unit test DROP TABLE on VIEW 报错 |
