Snowflake MigrationClickHouse Workshops

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

AlatVersiKegunaan
Terraform>= 1.6Provisioning infrastruktur Snowflake dan ClickHouse Cloud
Docker Desktop>= 24Menjalankan producer perjalanan dan Superset
Python3.11–3.13Skrip migrasi, dbt, dan skrip utilitas — lihat callout di bawah
dbt Core>= 1.8Pipeline Snowflake dan ClickHouse
SnowSQL CLI>= 1.2Menjalankan 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"
deactivate

dbt-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
deactivate

Setiap .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
deactivate

Kelima 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.

Di halaman ini

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

ID