01 Lingkungan sumber
Panduan fasilitator untuk memprovisi lingkungan sumber Snowflake — waktu, producer yang harus terus berjalan, dan troubleshooting.
Pendamping fasilitator untuk pelajaran learner 01 Lingkungan sumber.
Waktu
Sekitar 45 menit total. Step 2 (./setup.sh) adalah satu-satunya rentang tanpa pengawasan — sekitar
5-10 menit, sebagian besar berupa seeding data sintetis TABLE(GENERATOR) — dan lebih baik
diisi pembicaraan daripada ditonton dalam diam; ini momen bagus untuk alur pembicaraan
di bawah. Sisa waktunya (Step 1 dan 3-5) butuh partner di keyboard:
mengonfigurasi kredensial, memverifikasi producer dan Superset sudah naik, memulai loop refresh
dbt, dan membaca tujuh query.
Alur pembicaraan
- Modul ini ada untuk membangun sumber yang layak dimigrasikan: satu kolom
VARIANT, satu stream CDC, dua scheduled task, dan lapisan BI yang membaca di atas semuanya — bukan sekadar tabel mainan. Setiap satu dari itu menjadi keputusan migrasi spesifik di modul 02. - Telusuri bentuk Medallion sekali pada diagram: RAW -> STAGING -> ANALYTICS di dalam
NYC_TAXI_DB, dan dua objek yang membuatnya terus bergerak secara independen dari dbt —TRIPS_CDC_STREAMdan dua scheduled task. - Tunjuk pustaka query (Step 5) meskipun partner belum akan menerjemahkan query-nya sampai modul 02 — masing-masing dari tujuh query sudah membawa komentar yang menyketsa sisi ClickHouse, sehingga partner bisa mulai mencocokkan pola sekarang.
- Nyatakan dengan jelas, dan ulangi di akhir modul: biarkan producer dan loop refresh dbt tetap berjalan. Cutover modul 05 mengukur selisih persis yang diciptakan producer antara Snowflake dan ClickHouse selama migrasi, dan partner yang beres-beres dengan menghentikannya di sini secara diam-diam merusak demonstrasi itu tiga modul kemudian.
Kegagalan umum
terraform initgagal dengan error provider. Konfirmasi Terraform >= 1.6 dan bahwa mesin memiliki akses internet ke Terraform registry.snowsqlconnection refused. VerifikasiSNOWFLAKE_ORGdanSNOWFLAKE_ACCOUNT; uji langsung dengansnowsql -a ${SNOWFLAKE_ORG}-${SNOWFLAKE_ACCOUNT} -u ${SNOWFLAKE_USER}.dbt rungagal denganrelation not found. Jalankan./setup.sh --skip-seedlebih dulu — ia membuat struktur database — dan konfirmasiprofiles.ymlmengarah keNYC_TAXI_DB.- Superset menampilkan
connection refused. Superset butuh sekitar 60 detik setelahdocker-compose upuntuk inisialisasi; periksadocker logs nyc_taxi_supersetjika ia masih mati setelah itu. - Seeding data memakan waktu lebih lama dari perkiraan partner. Insert
TABLE(GENERATOR)menghasilkan 50M baris dalam sekitar 10-12 menit;UPDATElanjutan yang mengisi kolom JSONTRIP_METADATApada seluruh 50M baris dapat menambah 15-20 menit lagi pada warehouse SMALL. Ini perilaku Snowflake yang normal untuk update kolomVARIANTbesar, bukan stall — katakan itu sebelum partner mulai men-troubleshoot skrip yang sebenarnya berjalan dengan benar. - Partner menghentikan producer trip begitu modul ini terlihat "selesai." Belum — modul 02 sampai 05 semuanya bergantung padanya tetap hidup, dan cutover modul 05 secara khusus mengukur selisih yang diciptakannya. Ini adalah kesalahan akibat naluri beres-beres yang paling merusak di seluruh workshop; katakan secara eksplisit, lebih dari sekali.
Langkah reset
- Provisioning ulang tanpa membayar lagi pemuatan data ~10 menit:
./setup.sh --skip-seed(infrastruktur sudah ada danTRIPS_RAWsudah punya data). - Iterasi pada perubahan Terraform atau SQL saja: cukup
./setup.sh --skip-seed. - Iterasi pada model dbt saja, melewati Superset sepenuhnya:
./setup.sh --skip-seed --skip-superset. - Menguji perubahan Terraform tanpa menjalankan ulang dbt: tambahkan
--skip-dbt. - Setelah perubahan skema model dbt, paksa pembangunan ulang inkremental penuh:
--full-refresh(gabungkan dengan--skip-seedagar tidak juga membayar lagi pemuatan data). - Reset penuh hanya jika lingkungan sudah tidak bisa diselamatkan:
source .env && ./teardown.shdariworkshop_public/snowflake_migration_lab/01-setup-snowflake/, lalu jalankan ulang./setup.shbiasa. Ini destruktif dan membayar lagi seluruh seeding ~10-12 menit — jangan langsung memakainya sebagai respons pertama untuk partner yang tersangkut.
00 Setup
Panduan fasilitator untuk modul pra-kerja — pin versi Python, dua pendaftaran cloud, dan alasan ini harus selesai sebelum sesi dimulai.
02 Rencana dan desain
Panduan fasilitator untuk modul perencanaan — mengapa melewatinya merusak semua yang menyusul, dan cara menjaga blok worksheet 90 menit tetap sesuai jadwal.