NYC 出租车 Snowflake 迁移实验
将一个具备生产形态的 Snowflake 工作负载迁移到 ClickHouse Cloud,5000 万行数据、一条 dbt Medallion 流水线、七个分析查询、实时生产者以及 BI 仪表板,然后为你的每一个决策做出论证。
欢迎阅读 NYC 出租车 Snowflake 迁移实验的实操手册。本实验面向希望学习如何将生产级 Snowflake 工作负载迁移到 ClickHouse Cloud 的 ClickHouse 解决方案架构师与合作伙伴:一条包含 5000 万行的合成 NYC 出租车行程数据流、一条完整的 Medallion dbt 流水线、七个复杂分析查询、 实时数据生产者以及 Superset 仪表板,其构建方式刻意模拟你在真实客户项目中会遇到的那类 工作负载。
为什么要做这项迁移实训
本实验的重点不是把数据行从一个数仓搬到另一个数仓,一段拷贝脚本就能做到。重点在于做出
并论证一次真实迁移会迫使你面对的那些决策:每张表适合哪个 MergeTree 引擎系列、如何设计一个
真正物有所值的 ORDER BY 键,以及哪些 Snowflake SQL 惯用写法在 ClickHouse 中没有直接
对应物。完成之后,你将能够剖析一个 Snowflake 工作负载、做出正确的引擎与 schema 决策、
用可续跑的脚本执行一次生产风格的迁移、在 ClickHouse 上重建 dbt 流水线、用七个查询的基准
测试量化业务价值,并解释和论证上述每一个决策。
本手册包含三个部分。学员指南带你逐步完成课程;讲师指南提供各模块的时间安排、 讲解脚本、常见故障和重置步骤;参考资料则汇总引擎、dbt 与仪表板说明, 可在任何模块中随时查阅,无需按顺序阅读。
模块
| # | 学员模块 | 讲师指南 | 成果 |
|---|---|---|---|
| 00 | 环境准备 | 讲师笔记 | 工具链安装完毕、两个云试用账号均已创建、仓库已克隆、两个 dbt 虚拟环境均已构建,即迁移在你接触数据之前所需的一切 |
| 01 | 源环境 | 讲师笔记 | 一个映射真实客户部署的 Snowflake 环境:5000 万行数据、一条 dbt Medallion 流水线、一个实时行程生产者以及三个 Superset 仪表板 |
| 02 | 规划与设计 | 讲师笔记 | 完成 Snowflake 工作负载剖析,并把迁移将要执行的架构决策显式化:引擎选择、sort key、schema 转换、部署波次以及 dbt 模型设计 |
| 03 | 开通与迁移 | 讲师笔记 | 用 Terraform 开通 ClickHouse Cloud、按你的方案创建目标表,并用可续跑的 Python 迁移脚本搬迁 5000 万行数据 |
| 04 | 重建 dbt 流水线 | 讲师笔记 | 用 dbt-clickhouse 在 ClickHouse 上重建 Medallion 流水线,delete_insert 增量模型、ReplacingMergeTree、可刷新的 materialized view,并创建区域字典 |
| 05 | 基准测试与切换 | 讲师笔记 | 在 ClickHouse 上重建仪表板、对两个引擎跑完全部七个查询的基准测试、切换生产者、验证一致性,并拆除两侧云资源 |
| 06 | 考核 | 讲师笔记 | 完成 20 道选择题与 4 道开放题的开卷考核,赢取 ClickHouse Migration Proficiency Badge |
本实验不涵盖的内容
本实验的范围限定在核心迁移模式。以下主题是有意排除在外的:
- 实时流式摄取:本实验在切换后使用基于 Docker 的行程生产者写入实时数据,而不是 Kafka、Kinesis 或 ClickPipes 流式数据源。
- 多节点 ClickHouse 集群:所有工作都在 ClickHouse Cloud 单服务部署上进行;自托管的 分布式部署(分片、复制拓扑)不在范围内。
- 数据治理与访问控制:不实现基于角色的访问、行级安全和脱敏策略。
- 渐进式 schema 演进:本实验全程使用固定 schema;迁移过程中处理实时 schema 变更 不在范围内。
- 非 Snowflake 数据源:本迁移模式针对 Snowflake。PostgreSQL、MySQL、BigQuery 及 其他数据源有不同的 SQL 方言和 CDC 方案。
- 生产 SLA 与监控:生产 ClickHouse Cloud 中的可观测性、告警与 SLA 管理不在范围内。
时间与成本
| 模块 | 实际耗时 | Snowflake 积分 | ClickHouse Cloud |
|---|---|---|---|
| 00,环境准备 | ~30 min | , | , |
| 01,源环境 | ~45 min | ~2–4 积分 | , |
| 02,规划与设计 | ~90 min | ~0.5 积分 | , |
| 03,开通与迁移 | ~60 min | ~1–2 积分 | ~$1–2(试用) |
| 04,重建 dbt 流水线 | ~30 min | ~0.5–1 积分 | ~$0.5–1(试用) |
| 05,基准测试与切换 | ~45 min | ~1–2 积分 | ~$0.5–1(试用) |
| 06,考核 | ~60 min | , | , |
| 合计 | ~6 小时 | ~6–10 积分 | ~$2–4 |
Snowflake 积分估算假设使用标准 X-Small warehouse。ClickHouse Cloud 成本假设使用 Development 层级服务并在数小时内拆除。