Snowflake MigrationClickHouse Workshops
Worksheet perencanaan

Worksheet 4: Rencana gelombang migrasi

Urutkan sepuluh objek NYC Taxi ke dalam gelombang migrasi dan beri nilai kompleksitas masing-masing, dengan umpan balik langsung pada setiap jawaban.

Perkiraan waktu: 15–20 menit Referensi: Modul 03 — Provisioning dan migrasi → Modul 04 — Bangun ulang pipeline dbt → Modul 05 — Benchmark dan cutover untuk urutan eksekusi

Konsep

Objek database punya dependensi. Sebuah view yang meng-query fact_trips tidak bisa dibuat sebelum fact_trips ada. Sebuah materialized view yang membaca dari trips_raw tidak bisa diisi sebelum trips_raw punya data. Bermigrasi dalam urutan yang salah menyebabkan kegagalan create table, hasil kosong, atau data tidak lengkap yang sulit didiagnosis.

Solusinya: perencanaan gelombang. Susun setiap objek ke dalam gelombang bernomor di mana setiap gelombang hanya memuat objek yang dependensinya sudah dipenuhi gelombang sebelumnya.

Penilaian kompleksitas membantu memprioritaskan upaya migrasi. Batas antara B dan C adalah apakah sebuah statement harus direstrukturisasi atau hanya perlu diganti tipenya:

  • Grade A — trivial: tabel standar atau view passthrough, tanpa logika khusus, pemetaan tipe yang lugas
  • Grade B — sedang: satu konstruksi khas ClickHouse yang perlu dipelajari dan diuji, tetapi terjemahannya sendiri hanya substitusi — sebuah engine ClickHouse plus konfigurasi inkremental, sebuah CREATE DICTIONARY, REFRESH EVERY pada MV yang refreshable, atau sebuah jalur JSONExtract* yang menggantikan pembacaan VARIANT
  • Grade C — kompleks: sebuah statement harus dibangun ulang, bukan sekadar diganti tipenya (QUALIFY dibungkus dalam subquery, MERGE INTO diganti dengan strategi inkremental), dan penulisan ulang itu harus tetap konsisten dengan pilihan engine dan dengan penempatan FINAL di semua hal di hilir; uji dengan hati-hati
  • Grade D — butuh desain ulang: fitur khas Snowflake tanpa padanan langsung (Streams → cutover producer ke ClickHouse, Tasks → MV yang refreshable atau eksekusi dbt terjadwal)

Latihan 3 di bawah meminta Anda memberi nilai pada skala tiga tingkat yang dipadatkan, bukan keempat huruf di atas — Low (Grade A), Medium (Grade B), High (Grade C atau D) — karena perbedaan yang paling penting untuk mengurutkan upaya adalah trivial / perlu pengujian / perlu desain ulang, bukan pembagian empat arah itu. Penjelasan setiap jawaban menyebutkan mana dari A–D yang berlaku, sehingga Anda tetap bisa memetakannya kembali ke nilai hurufnya.

Latihan 1: DAG dependensi

Untuk setiap objek di bawah, pilih apa yang menjadi dependensinya. Tiga dari sepuluh adalah data referensi statis tanpa dependensi apa pun — itu jawaban yang sah, bukan celah untuk diisi nanti.

Latihan 2: Penetapan gelombang migrasi

Gelombang 0 dan 1 sudah diisi sebagai konteks. Untuk gelombang 2 sampai 4, pilih objek mana yang termasuk dalam gelombang itu, lalu jawab apa yang sesungguhnya terjadi di dalamnya.

Latihan 3: Penilaian kompleksitas

Beri nilai setiap objek, lalu jawab pertanyaan tantangan utamanya di bawah tabel.

Pertanyaan refleksi

Dua pertanyaan terakhir mencakup tiga entri dalam risk register di kunci jawaban — memverifikasi fact_trips (Grade C) dan agg_hourly_zone_trips setelah keduanya mendarat, dan memverifikasi cutover producer yang menggantikan TRIPS_CDC_STREAM dan CDC_CONSUME_TASK (Grade D). Register itu bukan semata himpunan Grade C/D: agg_hourly_zone_trips bernilai Medium, tetapi jendela perhitungan ulang bergulirnya adalah hal yang paling mudah membuat pipeline ini salah secara halus.

Loading worksheet...

Pindahkan ke migration-plan.md

Salin rencana gelombang dan nilai kompleksitas Anda ke Bagian 6 dari migration-plan.md dan centang:

- [ ] Migration wave plan: completed

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