arrow_back

Pemrosesan ETL di Google Cloud Menggunakan Dataflow dan BigQuery (Python)

Login Gabung
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Pemrosesan ETL di Google Cloud Menggunakan Dataflow dan BigQuery (Python)

Lab 1 jam universal_currency_alt 5 Kredit show_chart Menengah
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP290

Lab Mandiri Google Cloud

Ringkasan

Di Google Cloud, Anda dapat membangun pipeline data yang menjalankan kode Python untuk menyerap dan mengubah data dari set data yang tersedia secara publik ke BigQuery menggunakan layanan Google Cloud berikut:

  • Cloud Storage
  • Dataflow
  • BigQuery

Di lab ini, Anda akan menggunakan layanan tersebut untuk membuat pipeline data sendiri, termasuk pertimbangan desain dan detail implementasi, guna memastikan prototipe Anda memenuhi persyaratan. Pastikan untuk membuka file Python dan membaca komentarnya saat diminta.

Yang akan Anda lakukan

Di lab ini, Anda akan mempelajari cara:

  • Membangun dan menjalankan pipeline Dataflow (Python) untuk penyerapan data
  • Membangun dan menjalankan pipeline Dataflow (Python) untuk transformasi dan pengayaan data

Penyiapan dan persyaratan

Sebelum mengklik tombol Mulai Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan berikut ini:

    • Tombol Open Google Console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Console. Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Login.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username dari panel Lab Details dan tempel ke dialog Sign in. Klik Next.

  4. Salin Password dari panel Lab Details dan tempel ke dialog Welcome. Klik Next.

    Penting: Anda harus menggunakan kredensial dari panel sebelah kiri. Jangan menggunakan kredensial Google Cloud Skills Boost. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  5. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan daftar uji coba gratis.

Setelah beberapa saat, Cloud Console akan terbuka di tab ini.

Catatan: Anda dapat melihat menu dengan daftar Produk dan Layanan Google Cloud dengan mengklik Menu navigasi di kiri atas. Ikon menu navigasi

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas konsol Google Cloud.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke YOUR_PROJECT_ID

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

  2. Output Anda sekarang akan terlihat seperti ini:

Output:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net Untuk menyetel akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
gcloud config list project

Output:

[core] project = <project_ID>

Contoh output:

[core] project = qwiklabs-gcp-44776a13dea667a6 Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Memastikan Dataflow API berhasil diaktifkan

Untuk memastikan akses ke API yang diperlukan, mulai ulang koneksi ke Dataflow API.

Penting: meskipun API telah diaktifkan, ikuti langkah 1-4 di bawah untuk menonaktifkan dan mengaktifkan kembali API untuk memulai ulang API dengan benar.
  1. Di Konsol Cloud, masukkan "Dataflow API" di kotak penelusuran teratas. Klik hasil untuk Dataflow API.

  2. Klik Manage.

  3. Klik Disable API.

Jika diminta untuk mengonfirmasi, klik Disable.

  1. Klik Enable.

Jika API sudah diaktifkan kembali, halaman akan menampilkan opsi untuk menonaktifkannya.

Menguji tugas yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Menonaktifkan dan mengaktifkan kembali Dataflow API

Tugas 2. Mendownload kode awal

  1. Jalankan perintah berikut di Cloud Shell untuk mendapatkan Contoh Python Dataflow dari GitHub, layanan profesional Google Cloud:
gsutil -m cp -R gs://spls/gsp290/dataflow-python-examples .
  1. Sekarang, di Cloud Shell, tetapkan variabel yang setara dengan ID project Anda.
export PROJECT={{{ project_0.project_id }}} gcloud config set project $PROJECT

Tugas 3. Membuat bucket Cloud Storage

  • Gunakan perintah untuk membuat bucket di Cloud Shell guna membuat bucket regional baru di region dalam project Anda:
gsutil mb -c regional -l {{{ project_0.default_region }}} gs://$PROJECT

Menguji tugas yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Membuat bucket Cloud Storage

Tugas 4. Menyalin file ke bucket Anda

  • Gunakan perintah gsutil di Cloud Shell untuk menyalin file ke bucket Cloud Storage yang telah Anda buat:
gsutil cp gs://spls/gsp290/data_files/usa_names.csv gs://$PROJECT/data_files/ gsutil cp gs://spls/gsp290/data_files/head_usa_names.csv gs://$PROJECT/data_files/

Menguji tugas yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Menyalin File ke Bucket Anda

Tugas 5. Membuat set data BigQuery

  • Di Cloud Shell, buat set data di Set Data BigQuery bernama lake. Di sinilah tempat semua tabel Anda akan dimuat di BigQuery:
bq mk lake

Menguji tugas yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Membuat Set Data BigQuery (bernama lake)

Tugas 6. Membangun pipeline Dataflow

Di bagian ini, Anda akan membuat Dataflow append-only yang akan menyerap data ke tabel BigQuery. Anda dapat menggunakan editor kode bawaan yang memungkinkan Anda melihat dan mengedit kode di konsol Google Cloud.

Diagram pipeline Dataflow append-only

Buka Editor Kode Cloud Shell

  1. Buka kode sumber dengan mengklik ikon Open Editor di Cloud Shell:

Ikon Open Editor

  1. Jika diminta, klik Open in a New Window. Editor kode akan terbuka di jendela baru. Cloud Shell Editor memungkinkan Anda mengedit file di lingkungan Cloud Shell. Dari Editor, Anda dapat kembali ke Cloud Shell dengan mengklik Open Terminal.

Tugas 7. Penyerapan data dengan Pipeline Dataflow

Sekarang Anda akan membangun pipeline Dataflow dengan sumber TextIO dan tujuan BigQueryIO untuk menyerap data ke BigQuery. Lebih spesifiknya, Anda akan:

  • Menyerap file dari Cloud Storage.
  • Memfilter baris header dalam file.
  • Mengonversi baris yang dibaca pada objek kamus.
  • Menghasilkan output baris ke BigQuery.

Tugas 8. Meninjau kode Python pipeline

Di Code Editor, buka dataflow-python-examples > dataflow_python_examples, lalu buka file data_ingestion.py. Baca komentar dalam file, yang menjelaskan apa yang dilakukan kode tersebut. Kode ini akan mengisi set data lake dengan tabel di BigQuery.

Editor Kode

Tugas 9. Menjalankan pipeline Apache Beam

  1. Untuk langkah ini, Anda perlu kembali ke sesi Cloud Shell. Anda akan melakukan beberapa penyiapan untuk library python yang diperlukan.

Tugas Dataflow di lab ini memerlukan Python3.8. Untuk memastikan kesesuaian versi, jalankan proses Dataflow di container Docker Python 3.8.

  1. Jalankan perintah berikut di Cloud Shell untuk memulai Container Python:
docker run -it -e PROJECT=$PROJECT -v $(pwd)/dataflow-python-examples:/dataflow python:3.8 /bin/bash

Perintah ini akan menarik container Docker dengan versi stabil terbaru Python 3.8 dan mengeksekusi shell perintah untuk menjalankan perintah selanjutnya dalam container. Flag -v menyediakan kode sumber sebagai volume untuk container sehingga memungkinkan kita melakukan pengeditan di editor Cloud Shell sambil tetap mengaksesnya dalam container yang sedang berjalan.

  1. Setelah selesai menarik container dan mulai menjalankannya di Cloud Shell, jalankan perintah berikut untuk menginstal apache-beam pada container yang sedang berjalan tersebut:
pip install apache-beam[gcp]==2.24.0
  1. Selanjutnya, di container yang sedang berjalan di Cloud Shell, ubah direktori ke lokasi tempat Anda menautkan kode sumber:
cd dataflow/

Menjalankan pipeline Dataflow penyerapan di cloud

  1. Perintah berikut akan menjalankan worker yang diperlukan, lalu menghentikannya setelah selesai:
python dataflow_python_examples/data_ingestion.py \ --project=$PROJECT --region={{{ project_0.default_region }}} \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --input gs://$PROJECT/data_files/head_usa_names.csv \ --save_main_session
  1. Kembali ke Konsol Cloud dan buka Navigation menu > Dataflow untuk melihat status tugas Anda.

Navigation menu > Dataflow

  1. Klik nama tugas untuk melihat progresnya. Setelah Job Status Anda berstatus Succeeded, Anda dapat melanjutkan ke langkah berikutnya. Pipeline Dataflow ini akan memerlukan waktu sekitar lima menit untuk memulai, menyelesaikan tugas, dan melakukan penghentian.

  2. Buka BigQuery (Navigation menu > BigQuery) untuk melihat bahwa data Anda telah diisi.

Navigation menu > BigQuery

  1. Klik nama project untuk melihat tabel usa_names di bagian set data lake.

Tabel usa_names

  1. Klik tabel, lalu buka tab Preview untuk melihat contoh data usa_names.
Catatan: Jika Anda tidak melihat tabel usa_names, coba refresh halaman atau lihat tabel menggunakan UI BigQuery klasik.

Menguji tugas yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Membangun Pipeline Dataflow Penyerapan Data

Tugas 10. Transformasi data

Sekarang Anda akan membangun pipeline Dataflow dengan sumber TextIO dan tujuan BigQueryIO untuk menyerap data ke BigQuery. Lebih spesifiknya, Anda akan:

  • Menyerap file dari Cloud Storage.
  • Mengonversi baris yang dibaca pada objek kamus.
  • Mengubah data yang berisi tahun menjadi format yang dipahami BigQuery sebagai tanggal.
  • Menghasilkan output baris ke BigQuery.

Meninjau kode python pipeline transformasi

Di Editor Kode, buka file data_transformation.py. Baca komentar dalam file yang menjelaskan apa yang dilakukan kode tersebut.

Tugas 11. Menjalankan pipeline transformasi Dataflow

Anda akan menjalankan pipeline Dataflow di cloud. Perintah ini akan menjalankan worker yang diperlukan, lalu menghentikannya setelah selesai.

  1. Jalankan perintah berikut untuk melakukannya:
python dataflow_python_examples/data_transformation.py \ --project=$PROJECT \ --region={{{ project_0.default_region }}} \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --input gs://$PROJECT/data_files/head_usa_names.csv \ --save_main_session
  1. Buka Navigation menu > Dataflow, lalu klik nama tugas ini untuk melihat status tugas. Pipeline Dataflow ini akan memerlukan waktu sekitar lima menit untuk memulai, menyelesaikan tugas, dan melakukan penghentian.

  2. Setelah Job Status Anda berstatus Succeeded, di layar Status Tugas Dataflow, buka BigQuery untuk memeriksa apakah data Anda telah diisi.

  3. Anda akan melihat tabel usa_names_transformed di bagian set data lake.

  4. Klik tabel dan buka tab Preview untuk melihat contoh data usa_names_transformed.

Catatan: Jika Anda tidak melihat tabel usa_names_transformed, coba refresh halaman atau lihat tabel menggunakan UI BigQuery klasik.

Menguji tugas yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Membangun Pipeline Dataflow Transformasi Data

Tugas 12. Pengayaan data

Sekarang Anda akan membangun pipeline Dataflow dengan sumber TextIO dan tujuan BigQueryIO untuk menyerap data ke BigQuery. Lebih spesifiknya, Anda akan:

  • Menyerap file dari Cloud Storage.
  • Memfilter baris header dalam file.
  • Mengonversi baris yang dibaca pada objek kamus.
  • Menghasilkan output baris ke BigQuery.

Tugas 13. Meninjau kode python pipeline pengayaan data

  1. Di Code Editor, buka file data_enrichment.py.

  2. Baca komentar yang menjelaskan apa yang dilakukan kode tersebut. Kode ini akan mengisi data di BigQuery.

Tampilan baris 83 saat ini:

values = [x.decode('utf8') for x in csv_row]
  1. Edit baris tersebut agar terlihat seperti berikut:
values = [x for x in csv_row]
  1. Setelah selesai mengedit baris ini, jangan lupa untuk Save (menyimpan) file yang telah diperbarui ini dengan memilih menu pull-down File di Editor dan mengklik Save

Tugas 14. Menjalankan pipeline Dataflow Pengayaan Data

Di sini, Anda akan menjalankan pipeline Dataflow di cloud.

  1. Jalankan kode berikut di Cloud Shell untuk menjalankan worker yang diperlukan, lalu menghentikannya setelah selesai:
python dataflow_python_examples/data_enrichment.py \ --project=$PROJECT \ --region={{{ project_0.default_region }}} \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --input gs://$PROJECT/data_files/head_usa_names.csv \ --save_main_session
  1. Buka Navigation menu > Dataflow untuk melihat status tugas Anda. Pipeline Dataflow ini akan memerlukan waktu sekitar lima menit untuk memulai, menyelesaikan tugas, dan melakukan penghentian.

  2. Setelah Job Status Anda berstatus Succeed, di layar Status Tugas Dataflow, buka BigQuery untuk memeriksa apakah data Anda telah diisi.

Anda akan melihat tabel usa_names_enriched di bagian set data lake.

  1. Klik tabel dan buka tab Preview untuk melihat contoh data usa_names_enriched.
Catatan: Jika Anda tidak melihat tabel usa_names_enriched, coba refresh halaman atau lihat tabel menggunakan UI BigQuery klasik.

Menguji tugas pengayaan data yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Membangun Pipeline Dataflow Pengayaan Data

Tugas 15. Membangun data lake untuk Mart dan meninjau kode python pipeline

Sekarang, Anda akan membangun pipeline Dataflow yang membaca data dari dua sumber data BigQuery, lalu menggabungkan keduanya. Secara spesifik, Anda akan:

  • Menyerap file dari dua sumber BigQuery.
  • Menggabungkan kedua sumber data tersebut.
  • Memfilter baris header dalam file.
  • Mengonversi baris yang dibaca pada objek kamus.
  • Menghasilkan output baris ke BigQuery.

Di Code Editor, buka file data_lake_to_mart.py. Baca komentar dalam file yang menjelaskan apa yang dilakukan kode tersebut. Kode ini akan menggabungkan dua tabel dan mengisi data yang dihasilkan di BigQuery.

Tugas 16. Menjalankan Pipeline Apache Beam untuk melakukan Penggabungan Data dan membuat tabel yang dihasilkan di BigQuery

Sekarang, jalankan pipeline Dataflow di cloud.

  1. Jalankan blok kode berikut di Cloud Shell untuk menjalankan worker yang diperlukan, lalu menghentikannya setelah selesai:
python dataflow_python_examples/data_lake_to_mart.py \ --worker_disk_type="compute.googleapis.com/projects//zones//diskTypes/pd-ssd" \ --max_num_workers=4 \ --project=$PROJECT \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --save_main_session \ --region={{{ project_0.default_region }}}
  1. Buka Navigation menu > Dataflow, lalu klik nama tugas baru ini untuk melihat statusnya. Pipeline Dataflow ini akan memerlukan waktu sekitar lima menit untuk memulai, menyelesaikan tugas, dan melakukan penghentian.

  2. Setelah Job Status Anda berstatus Succeeded, di layar Status Tugas Dataflow, buka BigQuery untuk memeriksa apakah data Anda telah diisi.

Anda akan melihat tabel orders_denormalized_sideinput di bagian set data lake.

  1. Klik tabel dan buka bagian Preview untuk melihat contoh data orders_denormalized_sideinput.
Catatan: Jika Anda tidak melihat tabel orders_denormalized_sideinput, coba refresh halaman atau lihat tabel menggunakan UI BigQuery klasik.

Menguji tugas JOIN yang sudah selesai

Klik Check my progress untuk memverifikasi tugas yang telah dijalankan.

Membangun Data lake untuk Pipeline Dataflow Mart

Uji pemahaman Anda

Di bawah ini terdapat pertanyaan pilihan ganda untuk memperkuat pemahaman Anda tentang konsep lab ini. Jawab pertanyaan tersebut sebaik mungkin.

Selamat!

Anda telah menjalankan kode Python menggunakan Dataflow untuk menyerap data ke BigQuery dan mengubah data.

Langkah berikutnya/pelajari lebih lanjut

Ingin mempelajari lebih lanjut? Baca dokumentasi resmi di:

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 11 Februari 2024

Lab Terakhir Diuji pada 12 Oktober 2023

Hak cipta 2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.