ClickHouse Snowflake Migration

Move the workload.
Prove the win.

Fifty million rows, a full Medallion dbt pipeline, seven analytical queries, live data producers, and Superset dashboards — a production-shaped Snowflake workload you migrate to ClickHouse Cloud end to end, then benchmark and defend.

6 hours · seven modules50M rows migrated7 queries benchmarked~$2-4 on trial credits

Not a lift and shift. A decision log.

Anyone can write a script that copies fifty million rows from one warehouse to another. That part of a migration is not the hard part, and it is not what a customer is paying a Solutions Architect to get right.

The hard part is upstream of the copy: which MergeTree engine family fits each table, what an ORDER BY key actually earns its keep doing, and which Snowflake idioms — QUALIFY, VARIANT, a scheduled TASK — have no direct ClickHouse equivalent and need a real translation.

This lab makes you write those decisions down before you execute them. Module 02 produces a migration-plan.mdwith every choice justified, and module 03's setup script checks for it before you touch ClickHouse.

By module 06 you are defending that plan, open-book, against a twenty-question assessment and four open questions — the same test of judgment a real customer conversation puts you through.

What you walk away with

Everything you'll have running by the end.

On your own Snowflake trial and your own ClickHouse Cloud trial — no credit card on either.

01

A Snowflake workload, profiled

Tables inventoried, query patterns identified, SQL dialect gaps spotted, and the migration effort sized before you plan anything.

02

Correct engine and schema decisions

The right MergeTree engine family for each table, an ORDER BY key that earns its keep, and Snowflake types and idioms translated to ClickHouse equivalents.

03

A production-style migration, executed

50 million rows moved with a resumable Python script, parity validated, and a scripted producer cutover.

04

A dbt pipeline rebuilt on ClickHouse

dbt-clickhouse configured with delete_insert, ReplacingMergeTree models, and refreshable materialized views.

05

The business case, quantified

A seven-query benchmark you can turn into 6-9x performance numbers you can defend in front of a customer.

06

Decisions you can explain

The module 06 assessment, passed — proof you can apply the same pattern to a new customer's workload.

The dialect gaps you actually translate

QUALIFYsubquery with ROW_NUMBER
LATERAL FLATTENJSONExtract / arrayJoin
VARIANTJSON / String with extract functions
MERGEReplacingMergeTree with delete_insert
scheduled TASKrefreshable materialized view
STREAMthe live producer feed

The route · 6 hours hands-on

Seven modules, in order.

One flow, start to finish: profile the source, plan the target, move the data, rebuild the pipeline, then prove the win.

  1. 00

    Setup

    30 min

    Install the toolchain, create both cloud trial accounts, clone the repo, and build both dbt virtualenvs — everything the migration needs before you touch data.

  2. 01

    Provision a Snowflake environment that mirrors a real customer deployment: 50M rows, a dbt Medallion pipeline, a live trip producer, and three Superset dashboards.

  3. 02

    Profile the Snowflake workload, then make the architecture decisions the migration will execute: engine selection, sort keys, schema translation, deployment waves, and dbt model design.

  4. 03

    Provision ClickHouse Cloud with Terraform, create the target tables from your plan, and move 50 million rows with a resumable script. Budget 60 minutes total — roughly 40-50 minutes of that is an unattended data transfer you can leave running in the background.

  5. 04

    Rebuild the Medallion pipeline on ClickHouse with dbt-clickhouse — delete_insert incremental models, ReplacingMergeTree, refreshable materialized views — and create the zone dictionary.

  6. 05

    Rebuild the dashboards on ClickHouse, benchmark all seven queries against both engines, cut the producer over, verify parity, and tear down.

  7. 06

    Complete the 20-question multiple-choice and 4-question open assessment, open-book, to earn the ClickHouse Migration Proficiency Badge.

Self-paced by default. Every module names its starting checkpoint, so nobody is stranded by the pace of the room. The Snowflake producer started in module 01 must keep running through module 05 — plan your breaks around it, not through it.

Before you join

Who it's for, and what to bring.

Who it's for audience

  • ClickHouse Solutions Architects and partners running Snowflake migration engagements
  • Anyone who has been asked “why this engine, why this sort key?” and wants a defensible answer
  • Teams about to move a production-shaped analytical workload off Snowflake
  • Comfortable with SQL and a terminal — no data-engineering background required

What to bring prerequisites

  • The module 00 toolchain: Terraform, Docker, Python 3.11-3.13, dbt Core, and the SnowSQL CLI
  • A Snowflake trial account — no credit card required
  • A ClickHouse Cloud trial account — no credit card required
  • Roughly $2-4 of ClickHouse Cloud trial credit is spent over the session

How it runs format

  • 100% hands-on across seven modules — every command and query is copy-paste
  • Self-paced or facilitated, with an instructor track mirroring each module
  • The Snowflake producer runs live throughout, so the timing is real, not simulated
  • Module 06's assessment is open-book and self-administered

What this lab does not cover scope

  • Real-time streaming ingestion — a Docker-based trip producer stands in for Kafka, Kinesis, or ClickPipes
  • Multi-node ClickHouse clusters — all work is on a single-service ClickHouse Cloud deployment
  • Data governance and access control — role-based access, row-level security, and masking are not implemented
  • Incremental schema evolution, non-Snowflake sources, and production SLA and monitoring — each is its own topic

Ready to move the workload?

Bring a Snowflake trial and a ClickHouse Cloud trial. Leave with 50 million rows migrated, a dbt pipeline rebuilt, and seven benchmarked queries you can defend to a customer.

50MRows migrated with a resumable Python script.
6-9xSpeedups measured across all seven benchmark queries — illustrative until you run your own in module 05.
BadgeEarned in module 06 by defending your migration plan.