Nyoba Ngelab Dataflow (Python)

Sejujurnya dulu gw udah pernah ambil ni lab, tapi asli gw bingung banget sama cara kerja Dataflow (based on Apache Beam) ini. Ntah apa lah itu pTransform, DoFn, ya gitu dah. Walau pake Python, tapi lebih ribet dari Apache Airflow, apa lagi yg bahasa Java buset dah.

Yak tanpa basa-basi kebanyakan ngeluh, akan gw start sekarang.



Gw lupa perihal ini, seingat gw Google nya pernah bilang klo kita nyalain Dataflow API, maka akan otomatis ada service account nya.

Berikutnya kita disuruh bikin bucket di cloud storage dengan nama qwiklabs-gcp-01-4031708193b5-bucket.

Gw gak terlalu ngerti ini konsep nya begimana tiba-tiba dia nyuruh kita install python v3.9 dan pip sama dataflow SDK, bukan karena install itu, tapi kita nginstall nya di Docker

docker run -it -e DEVSHELL_PROJECT_ID=$DEVSHELL_PROJECT_ID python:3.9 /bin/bash

Apa ini jadinya ngejalanin di GKE? Trus kita disuruh install pip dan jalanin program map reduce.

python -m apache_beam.examples.wordcount --output OUTPUT_FILE

Bagian yang paling seru nih, kita akan menjalankan program wordcount pakai template dataflow, jadi kita gak perlu ngoding, tapi gw pengen ngulik kodingannya juga. Sebelum itu kita perlu define variabel cloud storage bucket tadi

BUCKET=gs://<bucket name provided earlier> 

Trus kita jalanin juga di console nya kek gini

python -m apache_beam.examples.wordcount --project $DEVSHELL_PROJECT_ID \

  --runner DataflowRunner \

  --staging_location $BUCKET/staging \

  --temp_location $BUCKET/temp \

  --output $BUCKET/results/output \

  --region us-east4

Kalo lu liat kan itu ada ngasih tau beberapa folder yang terpakai, yaitu staging_location, temp_location, dan output. 


Gak keliatan jir di mana kodingannya

 Intinya gw masih bingung cara kerja Dataflow ini, kek aneh aja gitu kan tiba-tiba pake Docker, tiba-tiba jalanin MapReduce dan Word Count, masih gak menjawab yang gw bingungin sebelumnya la kayak apa itu pTransform, dan kawan-kawannya wkwkw.

Komentar

Postingan populer dari blog ini

What have i learn in almost 3 weeks?

Bikin ETL Sederhana Menggunakan Python dan PostgreSQL

Intensity atau Consistency?