Migrasi Data Warehouse ke BigQuery Pakai Airflow nya GCP - Cloud Composer
Jadi sekarang gw mau nyoba lab yang ada di Cloud Skill Boost lagi, judul lab nya itu [DRI]: Enterprise Data Warehouse to BigQuery Job Orchestration. Kalau dari nama nya sih kurang lebih mungkin mindahin data dari Data Warehouse 'biasa' ke BigQuery pakai Cloud Composer, atau yang lebih dikenal Apache Airflow tapi berupa instance dari si Cloud Composer GCP.
Gw baru tau di GCP ini ada menyediakan framework terkait metrik atau parameter untuk memastikan bahwa praktisi nya itu siap dalam membawakan produk si Google, dari kesiapan berdasarkan pengetahuan dan pengalaman. Nama framework nya ini disebut Delivery Readiness Index (DRI) untuk Google Cloud Delivery Validation.
Jadi skenario di lab kali ini adalah, kita mau membantu sebuah perusahaan dalam menganalisis data, perusahaan tersebut punya 2 divisi mayor di Pasifik dan Samudra Atlantik. Kita perlu membantu 2 divisi di perusahaan besar ini dapat menganalisis data secara terpisah karena mereka punya cara masing-masing. Kita sebagai tim Data Engineer perlu import data dari mereka ke BigQuery dengan membuat pipeline menggunakan Cloud Composer, biar tim analitik nya bisa ngedapetin insight. Tugas kita, mendesain workflow dengan mengkonfigurasi dan menjalankan DAG si Airflow job nya, untuk divisi di Pasifik itu data nya di simpan di Cloud SQL, sedangkan dari divisi Samudra Atlantik data nya disimpan di Cloud Storage bucket.
Task 1. Create a Cloud Composer environment
Ya sebelumnya sih kita disuruh disable enable ulang beberapa service API yang diperlukan yaitu container, cloudbuild, dan composer. Trus kita disuruh bikin Cloud Composer nama nya Composer Environment Name dan lokasi nya Lab GCP Region, nanti secara otomatis di cloud storage nya akan ada bucket dengan nama Lab GCP Region-composer-pipeli-XXXXX-bucket. Bucket ini otomatis disimpan untuk menyimpan file DAG si Airflow di dalam folder /dags.
Task 2. Build a Cloud Composer batch data pipeline
Tadi kan dah dibilang, kalau divisi Pasifik nya nyimpen data di Cloud SQL Instance, dari lab nya udah nyiapin nama database nya itu cymbal_database, dan data di simpan di cymbal_data. Sekarang kita perlu konfigurasi dan menjalankan DAG namanya DAG 1 buat ngeload data dari SQL Instance ke BigQuery, nama BQ table nya BigQuery Table 1 di BigQuery Dataset. Untuk pipeline ini kita ikutin seusai instruksi yaitu dengan membuat batch pipeline. Lah klo real-time apa iya pake Composer?
Jadi langkah-langkah nya kita akan export data di Cloud SQL instance nye ke CSV, dan load ke Cloud Storage bucket, trus dari bucket nya kita kirim ke BigQuery, berikut adalah gambaran arsitektur nya.
# Mungkin akan jadi pertanyaan, oke lah pakai Cloud Storage buat nyimpen file DAG, tapi ngapain load data ke CS? Apa gak bisa langsung? Mungkin akan menjawab kalau data yang disimpan itu akan dilakukan sedikit transformasi.
Lanjut, kita akan membuat task dengan id Task 1 di DAG namanya DAG 1. Bjir gw ragu klo ini lab nya kita kerjain sendiri, soalnya gw gak liat ada code yang bisa di-copas wkwkkw, sebenarnya seru dan menantang, tapi takutnya kelamaan di durasi nya aja karena limit 2 jam wkwkw.
Task 3. Build a Cloud Composer event driven pipeline
Rupanya untuk yg divisi Samudra Atlantik itu bukan real-time, melainkan event driven, atau mudahnya kek trigger, kalau ada file yg nyampe ke Cloud Storage, maka trigger Cloud Function untuk mengeksekusi DAG si Compoer buat nge-load data ke BigQuery.
Sejauh ini gw gak ada liat alasan kenapa harus lewat cloud storage, atau mungkin emang gak bisa langsung load ke BigQuery makanya perlu media di tengah yaitu Cloud Storage. Soalnya gak ada perintah untuk lakukan transformasi juga sebelum load ke BigQuery. Apa lagi pas disuruh bikin code nya Cloud Function wkwkwk gw samsek gak pernah explore tuh service gimana code nya.
Task 4. Transform data
Kita perlu bikin table di BigQuery nya untuk nyimpen data trader yang booking profit nya lebih besar dari 100 USD dari data di kedua divisi. Jadi akan ada DAG 3 untuk menjalankan query, dan ngirim output nya ke table lain bernama BigQuery Table 3 di dalam dataset BigQuery Dataset.
Okeh jadi tadi adalah quick review tentang alur pengerjaan lab nya, FYI gw belum mulai nih lab, jadi akan gw mulai dan penjelasannya akan gw jelasin juga di bawah.
Klo sesuai instruksi sih gak ada dijelasin mau pakai Cloud Composer 1 atau 2, cuma define nama dan lokasi nya doang. Kan yang 2 itu support auto-scaling, berhubung gw kemarin kena warning karena ngelab tapi melenceng dikit, jadi gw pilih yg Composer 1, apalagi karena ini proyek kecil jadi gak perlu gede-gede yakan. Eh di Composer 1 gak ada image Airflow nya kacau bet, jadi gw switch lah ke Composer 2, tapi ini create instance nya lama banget wkwkkwk.
In case lab ini gak berhasil, kek nya gw akan hands-on sendiri buat jadiin use case KPI gw, jadi ini gw backup schema JSON nya
Rupanya :D Ini udah 20 menit, letsgooooooooooo
Sip, dah berhasil
Fix, ini tuh ngerjain sendiri wkwkkw, lumayan lah use case nya
Setelah oprek beberapa lama, gw rasa gw belum bisa nyelesain ini dalam waktu 2 jam, gw perlu prepare dulu langkah-langkah nya masing-masing, yaitu:
- Export data MySQL on Cloud SQL to CSV (gw juga bingung tadi tuh gw perlu akses kayak dari dbeaver atau nggak, atau mungkin langsung kita konfig di DAG nya buat export MySQL to CSV)
- Move data dari Cloud SQL ke Cloud Storage
- Cloud Storage to BigQuery
- Cloud Function for Trigger Composer DAG (event-driven)
- Cloud BigQuery operator untuk kebutuhan transformasi, ngeliat trader yg profit diatas 100 dollar..
Segitu dulu kek nya, mana gw mulai Rabu sampai Minggu ada shifting, jadi gak full liburan buat oprek use case ini.
Komentar
Posting Komentar