00 Setup
Pasang toolchain, buat dua akun trial cloud, kloning repo, dan bangun kedua virtualenv dbt — semua yang dibutuhkan migrasi sebelum Anda menyentuh data.
Titik awal
Belum ada apa pun yang terpasang. Anda butuh sebuah terminal dan sekitar 30 menit: memasang lima alat command-line, mendaftar dua trial cloud gratis, mengkloning repo, dan membangun dua virtualenv Python.
Mengapa
Workshop ini melakukan provisioning dua cloud — Snowflake sebagai sumber, ClickHouse Cloud
sebagai target — dan menjalankan dua adapter dbt terhadap keduanya, satu per cloud. Kedua
adapter punya batas bawah versi yang kaku, dan yang paling sering menggigit adalah Python:
dbt-snowflake (dan dbt-clickhouse, dipakai nanti) membutuhkan Python 3.11, 3.12, atau
3.13. Python 3.14+ merusak sebuah dependensi transitif, mashumaro, yang diandalkan
kedua adapter. Salah di sini dan kegagalannya tidak muncul sekarang — ia baru muncul dua
modul kemudian sebagai error import dbt yang membingungkan dan tampak tidak berkaitan
dengan versi Python Anda. Mematok interpreter di modul ini adalah yang membuat kegagalan
itu tidak terjadi.
Langkah 1 — Pasang toolchain
| Alat | Versi | Kegunaan |
|---|---|---|
| Terraform | >= 1.6 | Provisioning infrastruktur Snowflake dan ClickHouse Cloud |
| Docker Desktop | >= 24 | Menjalankan producer perjalanan dan Superset |
| Python | 3.11–3.13 | Skrip migrasi, dbt, dan skrip utilitas — lihat callout di bawah |
| dbt Core | >= 1.8 | Pipeline Snowflake dan ClickHouse |
| SnowSQL CLI | >= 1.2 | Menjalankan SQL terhadap Snowflake dari terminal |
Versi Python itu penting. dbt-snowflake dan dbt-clickhouse keduanya membutuhkan
Python 3.11, 3.12, atau 3.13. Python 3.14+ merusak dependensi mashumaro yang mereka
bagi bersama. Jika Python sistem Anda sudah 3.14+, pasang 3.13 di sampingnya (misalnya
brew install python@3.13) alih-alih mengganti versi default Anda — Langkah 4 di bawah
memakai interpreter python3.13 secara eksplisit justru karena alasan ini.
Setiap paket yang Anda pasang untuk workshop ini masuk ke virtualenv terisolasi, bukan
pip install global tanpa pembatas — Langkah 4 menyiapkan dua virtualenv yang Anda perlukan.
Langkah 2 — Buat dua akun cloud
Anda butuh satu akun trial di masing-masing cloud, keduanya gratis tanpa kartu kredit:
- Akun trial Snowflake — ini adalah lingkungan sumber. Modul 01 melakukan provisioning warehouse, database, dan pipeline Medallion di sini.
- Akun trial ClickHouse Cloud — ini adalah lingkungan target. Ia tetap tak tersentuh sampai modul 03 melakukan provisioning dan migrasi dimulai sungguhan.
Mendaftar keduanya sekarang berarti tidak ada akun yang menjadi penghambat begitu Anda mulai modul 01.
Langkah 3 — Kloning repositori
git clone https://github.com/ClickHouse/ClickHouse_Demos.git
cd ClickHouse_Demos
cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab"Setiap perintah di sisa workshop ini mengasumsikan Anda berada di
workshop_public/snowflake_migration_lab di dalam clone ini.
Langkah 4 — Bangun kedua virtualenv dbt
dbt-snowflake dan dbt-clickhouse memaku rentang dependensi yang saling bertentangan,
sehingga tidak bisa berbagi satu virtualenv — Anda membangun satu per adapter, satu per
sisi cloud dalam migrasi.
dbt-snowflake, dipakai terhadap sumber di modul 01:
cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab/01-setup-snowflake"
# Use python3.13 explicitly if your system default is 3.14+
python3.13 -m venv .venv # or: python3 -m venv .venv
source .venv/bin/activate
pip install "dbt-snowflake>=1.7,<2.0"
deactivatedbt-clickhouse, dipakai terhadap target mulai modul 03:
cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab/03-migrate-to-clickhouse"
python3.13 -m venv .venv
source .venv/bin/activate
pip install "dbt-clickhouse>=1.8,<2.0" snowflake-connector-python clickhouse-connect
deactivateSetiap .venv tetap berada di dalam direktori modulnya sendiri — Anda mengaktifkan yang
sedang diperlukan dan menjalankan deactivate saat berpindah, alih-alih mencoba membuat
satu environment memenuhi kebutuhan kedua adapter.
Cara memverifikasi bahwa Anda sudah selesai
cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab"
terraform version # expect >= 1.6
docker --version # expect >= 24
python3 --version # expect 3.11, 3.12, or 3.13
snowsql --version # expect >= 1.2
source 01-setup-snowflake/.venv/bin/activate
dbt --version # expect dbt-snowflake >= 1.7
deactivate
source 03-migrate-to-clickhouse/.venv/bin/activate
dbt --version # expect dbt-clickhouse >= 1.8
deactivateKelima perintah seharusnya mencetak versi pada atau di atas batas bawah yang ditampilkan,
dan setiap dbt --version seharusnya menampilkan adapter yang baru Anda pasang ke venv
tersebut.
Kondisi akhir
Toolchain terpasang, kedua akun trial aktif, repo sudah dikloning, dan kedua virtualenv dbt terbangun. Belum ada apa pun yang diprovisioning di kedua cloud — itu dimulai di modul 01. Lanjutkan ke 01 Lingkungan sumber untuk membangun sisi Snowflake dari migrasi ini.
Jalur Learner
Modul praktik yang Anda kerjakan, dari laptop kosong hingga workload yang termigrasi dan ter-benchmark.
01 Lingkungan sumber
Provisioning lingkungan Snowflake yang mencerminkan deployment pelanggan nyata — 50 juta baris, pipeline dbt Medallion, producer perjalanan live, dan tiga dashboard Superset.