Learner track
The complete hands-on migration from AWS RDS Postgres to ClickHouse Managed Postgres and ClickHouse.
Work through the modules in order. The RDS instance created in module 00 must keep running, and the writer must keep committing orders, until the final measurement is done.
00 Setup
Provision your accounts and verify the toolchain on macOS or Windows.
01 Source environment and baseline
Apply the Terraform, prove wal_level is logical, seed the shop database, start the writer and the dashboard, and measure what one database serving both workloads costs.
02 Plan the cutover
Author the runbook you will execute in module 04. No infrastructure; it runs while the seed finishes.
03 Replicate
A migration ClickPipe into Managed Postgres, verified from the source's own catalog, plus a deliberate failure injection.
04 Cut over
Execute your runbook against a live write path: quiesce, reset the sequences, repoint, reconcile, stop replicating.
05 Stream the analytical copy
A ClickPipes Postgres CDC pipe into ClickHouse, with the engine and ordering keys chosen rather than accepted.
06 Route the OLAP workload
pg_clickhouse and search_path shadowing, three proofs that the application did not change, the pushdown repair, and the measured result.
07 Validate and tear down
Fourteen machine-graded questions, then the teardown sequence in the one order that works.
Troubleshooting
Recovery steps for the failures this workshop actually produces.
The arc
Two legs with two different jobs, in this order and no other. A ClickPipe with a Managed Postgres
destination moves the transactional workload off RDS and completes, cutover included, before
anything else starts; a second ClickPipe then streams the analytical copy from Managed Postgres into
ClickHouse; and pg_clickhouse routes the dashboard's existing SQL to it. One replication leg is
live at a time, so every failure has exactly one possible cause.
The number the workshop leads with is not dashboard latency. It is writer throughput during the dashboard load, before and after — because one database serving both workloads does not fail by making dashboards slow, it fails by letting dashboards steal throughput from checkout.
Working directory
Commands in each module begin inside the workshop's artifact directory:
workshops/postgres_migration/Keep credentials only in the ignored files created from .example templates. Never commit
your filled-in environment file or Terraform variables.