ClickHouse 迁移系列

迁移工作负载,
用数据验证收益。

面对一套接近生产环境的 Snowflake 工作负载,你将把 5000 万行数据、完整的 Medallion dbt 管道、七条分析查询、实时数据生成器和 Superset 仪表板迁移到 ClickHouse Cloud,再通过性能测试验证迁移收益。

6 小时 · 七个模块5000 万 行数据迁移7 条查询性能对比~$2-4 试用额度

迁移不只是搬数据, 还要记录每项架构决策。

写脚本把 5000 万行数据从一个数仓复制到另一个并不难。真正考验迁移能力的,是如何为目标系统做出正确的架构选择,而这也正是客户对解决方案架构师的期待。

难点发生在复制数据之前:每张表该选择哪一种 MergeTree 系列引擎,ORDER BY 键为什么这样设计,以及如何把 QUALIFY、VARIANT、定时 TASK 等 Snowflake 常用写法转换为 ClickHouse 中合适的实现。

在实际迁移前,你需要先把这些决策记录下来。模块 02 会生成一份 migration-plan.md,说明每项选择的依据;模块 03 的安装脚本只有检测到这份文件后,才会继续配置 ClickHouse。

到了模块 06,你将完成一份开卷测评,其中包含 20 道选择题和 4 道开放题,并说明迁移方案的依据。这与真实客户沟通中对判断力的要求一致。

最终成果

完成课程后,你将拥有这些成果。

所有成果都运行在你自己的 Snowflake 和 ClickHouse Cloud 试用服务中,开通两项试用都无需信用卡。

01

一份完整分析过的 Snowflake 工作负载

盘点所有表,识别查询模式和 SQL 方言差异,并在制定方案前估算迁移工作量。

02

有依据的引擎和 schema 设计

为每张表选择合适的 MergeTree 系列引擎和 ORDER BY 键,并把 Snowflake 的数据类型与常用写法转换成 ClickHouse 的对应实现。

03

一次完整执行的生产级迁移

使用支持断点续传的 Python 脚本迁移 5000 万行数据,校验数据一致性,并通过脚本完成数据生成器切换。

04

在 ClickHouse 上重建的 dbt 管道

配置 dbt-clickhouse 的 delete_insert 增量策略、ReplacingMergeTree 模型和可刷新的物化视图。

05

可量化的业务价值

通过七条查询的性能对比,得到最高 6–9 倍的实测提升,为客户沟通提供可靠数据。

06

可以清楚说明依据的决策

完成模块 06 的测评,证明你能把同一套迁移方法应用到其他客户的工作负载。

需要转换的 SQL 方言差异

QUALIFY用 ROW_NUMBER 的子查询
LATERAL FLATTENJSONExtract / arrayJoin
VARIANTJSON / String 与提取函数
MERGEReplacingMergeTree + delete_insert
定时 TASK可刷新的物化视图
STREAM实时数据生成器

课程安排 · 6 小时实操

七个模块,循序完成。

沿着一条完整主线,分析源端、设计目标架构、迁移数据、重建管道,最后用性能数据验证收益。

  1. 00

    环境准备

    30 分钟

    安装工具链,开通两个云服务试用账号,克隆代码仓库,并创建两个 dbt 虚拟环境,为迁移做好准备。

  2. 01

    源端环境

    45 分钟

    搭建接近真实客户部署的 Snowflake 环境,其中包含 5000 万行数据、一条 dbt Medallion 管道、一个实时行程数据生成器和三个 Superset 仪表板。

  3. 02

    分析 Snowflake 工作负载,再制定迁移所需的架构方案,包括引擎选型、排序键、schema 转换、分阶段上线和 dbt 模型设计。

  4. 03

    使用 Terraform 创建 ClickHouse Cloud 服务,按方案创建目标表,再通过支持断点续传的脚本迁移 5000 万行数据。本模块预留 60 分钟,其中约 40–50 分钟是无需人工操作的数据传输,可在后台运行。

  5. 04

    使用 dbt-clickhouse 在 ClickHouse 中重建 Medallion 管道,包括 delete_insert 增量模型、ReplacingMergeTree 和可刷新的物化视图,并创建区域字典。

  6. 05

    在 ClickHouse 中重建仪表板,分别在两个引擎上运行七条测试查询,切换数据生成器,校验数据一致性,最后清理资源。

  7. 06

    测评

    60 分钟

    以开卷方式完成 20 道选择题和 4 道开放题,通过后获得 ClickHouse 迁移能力徽章。

课程默认支持自主学习。每个模块开头都有明确的检查点,遇到问题后可以从检查点继续。模块 01 启动的 Snowflake 数据生成器必须持续运行到模块 05,请合理安排休息时间,不要中途停止。

参加之前

适合哪些人?需要准备什么?

适合谁 适合人群

  • 承接 Snowflake 迁移项目的 ClickHouse 解决方案架构师与合作伙伴
  • 需要回答 “为什么选择这个引擎和排序键?”,并希望拿出可靠依据的人
  • 即将把接近生产形态的分析负载迁离 Snowflake 的团队
  • 熟悉 SQL 和终端操作即可,无需数据工程背景

需要带什么 前置准备

  • 模块 00 的工具链:Terraform、Docker、Python 3.11-3.13、dbt Core 和 SnowSQL CLI
  • 一个 Snowflake 试用账号,无需信用卡
  • 一个 ClickHouse Cloud 试用账号,无需信用卡
  • 整场大约消耗 $2-4 的 ClickHouse Cloud 试用额度

怎么进行 进行方式

  • 七个模块全程动手实践,每条命令和查询都可复制粘贴
  • 既可以自主学习,也可以跟随讲师;另有与各模块对应的讲师指南
  • Snowflake 数据生成器会在整个课程中实时运行,因此所有等待时间都来自真实处理,并非模拟
  • 模块 06 采用开卷自测形式

本实验室不涉及什么 范围

  • 实时流式导入:课程使用基于 Docker 的行程数据生成器,不涉及 Kafka、Kinesis 或 ClickPipes
  • 多节点 ClickHouse 集群:全部练习都在单个 ClickHouse Cloud 服务中完成
  • 数据治理与访问控制:课程不实现基于角色的访问、行级安全或数据脱敏
  • 渐进式 schema 演进、非 Snowflake 数据源以及生产环境 SLA 与监控:这些主题需要分别展开,不在本课程范围内

准备好迁移工作负载了吗?

开通 Snowflake 和 ClickHouse Cloud 试用即可开始。课程结束时,你将完成 5000 万行数据的迁移,重建一条 dbt 管道,并获得七条可用于客户沟通的性能对比结果。

5000 万用可断点续跑的 Python 脚本迁移的行数。
6-9x七条示例查询的速度提升;请以你在模块 05 中实际测得的数据为准。
徽章在模块 06 中通过测评并说明迁移方案依据后获得。
ZH