GSP808

Ringkasan
Selain pipeline batch, Data Fusion juga memungkinkan Anda membuat pipeline realtime, yang dapat memproses peristiwa saat dibuat. Saat ini, pipeline realtime dijalankan menggunakan Apache Spark Streaming di cluster Cloud Dataproc. Di lab ini, Anda akan mempelajari cara membangun pipeline streaming menggunakan Data Fusion.
Anda akan membuat pipeline yang melakukan pembacaan dari topik Cloud Pub/Sub dan memproses peristiwa, menjalankan beberapa transformasi, dan menulis output ke BigQuery.
Tujuan
- Mempelajari cara membuat pipeline realtime
- Mempelajari cara mengonfigurasi plugin sumber Pub/Sub di Data Fusion
- Mempelajari cara menggunakan Wrangler untuk menentukan transformasi data yang berada di koneksi yang tidak didukung
Penyiapan dan persyaratan
Untuk setiap lab, Anda akan memperoleh project Google Cloud baru serta serangkaian resource selama jangka waktu tertentu, tanpa biaya.
-
Login ke Google Skills menggunakan jendela samaran.
-
Perhatikan waktu akses lab (misalnya, 02:00:00), dan pastikan Anda dapat menyelesaikannya dalam waktu tersebut.
Tidak ada fitur jeda. Bila perlu, Anda dapat memulai ulang lab, tetapi Anda harus memulai dari awal.
-
Jika sudah siap, klik Start lab.
Catatan: Setelah Anda mengklik Start lab, perlu waktu sekitar 15 - 20 menit agar resource yang diperlukan disediakan dan instance Data Fusion dibuat.
Selama waktu ini, Anda dapat membaca langkah-langkah di bawah untuk mengetahui sasaran lab.
Jika Anda melihat kredensial lab (Nama pengguna dan Sandi) di panel kiri, artinya instance telah dibuat dan Anda dapat melanjutkan dengan login ke konsol.
-
Catat kredensial lab (Nama pengguna dan Sandi) Anda. Anda akan menggunakannya untuk login ke Konsol Google Cloud.
-
Klik Open Google console.
-
Klik Use another account, lalu salin/tempel kredensial lab ini ke perintah yang muncul.
Jika menggunakan kredensial lain, Anda akan menerima pesan error atau dikenai biaya.
-
Setujui ketentuan dan lewati halaman resource pemulihan.
Catatan: Jangan klik End lab kecuali Anda sudah menyelesaikan lab atau ingin mengulanginya. Tindakan ini akan membersihkan pekerjaan Anda dan menghapus project.
Login ke Konsol Google Cloud.
- Dengan menggunakan tab atau jendela browser yang Anda gunakan untuk sesi lab ini, salin Username dari panel Connection Details, lalu klik tombol Open Google Console.
Catatan: Jika Anda diminta untuk memilih akun, klik Use another account.
- Tempel Username, lalu Password saat diminta.
- Klik Next.
- Setujui persyaratan dan ketentuan.
Karena ini adalah akun sementara yang hanya akan berlaku selama penggunaan lab ini, Anda disarankan untuk:
- Tidak menambahkan opsi pemulihan
- Tidak mendaftar ke uji coba gratis
- Setelah konsol terbuka, lihat daftar layanan dengan mengklik Navigation menu (
) di kiri atas.

Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual dengan beberapa alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell memberikan akses command line ke resource Google Cloud Anda. gcloud adalah alat command line untuk Google Cloud. Fitur ini sudah terinstal di Cloud Shell dan mendukung penyelesaian tab.
-
Di Google Cloud Console, pada panel navigasi, klik Activate Cloud Shell (
).
-
Klik Continue.
Perlu waktu beberapa saat untuk menyediakan dan menghubungkan ke lingkungan. Setelah terhubung, Anda juga diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Contoh:

Contoh perintah
gcloud auth list
(Output)
Akun berkredensial:
- <myaccount>@<mydomain>.com (active)
(Contoh output)
Akun berkredensial:
- google1623327_student@qwiklabs.net
gcloud config list project
(Output)
[core]
project = <project_ID>
(Contoh output)
[core]
project = qwiklabs-gcp-44776a13dea667a6
Tugas 1. Izin project
Memeriksa izin project
Sebelum mulai bekerja di Google Cloud, Anda harus memastikan project Anda memiliki izin yang tepat dalam Identity and Access Management (IAM).
-
Di Konsol Google Cloud, pada Navigation menu (
), klik IAM & Admin > IAM.
-
Pastikan Akun Layanan komputasi default {project-number}-compute@developer.gserviceaccount.com tersedia dan peran editor telah ditetapkan. Prefiks akun adalah nomor project yang dapat Anda temukan di Navigation menu > Cloud overview.

Jika akun tersebut tidak ada di IAM atau tidak memiliki peran editor, ikuti langkah-langkah di bawah untuk menetapkan peran yang diperlukan.
-
Di Konsol Google Cloud, pada Navigation menu, klik Cloud overview.
-
Dari kartu Project info, salin Project number.
-
Pada Navigation menu, klik IAM & Admin > IAM.
-
Di bagian atas halaman IAM, klik Add.
-
Untuk New principals, ketik:
{project-number}-compute@developer.gserviceaccount.com
Ganti {project-number} dengan nomor project Anda.
-
Untuk Select a role, pilih Basic (atau Project) > Editor.
-
Klik Save.
Tugas 2. Memastikan Dataflow API berhasil diaktifkan
Untuk memastikan akses ke API yang diperlukan, mulai ulang koneksi ke Dataflow API.
-
Di Konsol Cloud, masukkan "Dataflow API" di kotak penelusuran teratas. Klik hasil untuk Dataflow API.
-
Klik Manage.
-
Klik Disable API.
Jika diminta melakukan konfirmasi, klik Disable.
- Klik Enable.
Tugas 3. Memuat data
- Pertama, Anda perlu mendownload contoh tweet ke komputer Anda. Nantinya Anda akan menguploadnya menggunakan Wrangler untuk membuat langkah-langkah transformasi.
Anda juga perlu men-stage file contoh tweet yang sama di bucket Cloud Storage Anda. Menjelang akhir lab ini, Anda akan mengalirkan data dari bucket ke topik Pub/Sub.
- Di Cloud Shell, jalankan perintah berikut untuk membuat bucket baru:
export BUCKET=$GOOGLE_CLOUD_PROJECT
gsutil mb gs://$BUCKET
Bucket yang dibuat memiliki nama yang sama dengan Project ID Anda.
- Jalankan perintah berikut untuk menyalin file tweet ke dalam bucket tersebut:
gsutil cp gs://cloud-training/OCBL164/pubnub_tweets_2019-06-09-05-50_part-r-00000 gs://$BUCKET
- Pastikan file tersebut disalin ke bucket Cloud Storage Anda.
Klik Periksa progres saya untuk memverifikasi tujuan.
Memuat data
Tugas 4. Menyiapkan Topik Pub/Sub
Untuk menggunakan Pub/Sub, buat topik untuk menyimpan data, dan buat langganan guna mengakses data yang dipublikasikan ke topik.
-
Di Konsol Cloud, dari Navigation menu, klik View All products. Di bagian Analytics, klik Pub/Sub, lalu pilih Topics.
-
Klik Create topic.

- Topik harus memiliki nama yang unik. Untuk lab ini, beri nama topik Anda
cdf_lab_topic, lalu klik CREATE.
Klik Periksa progres saya untuk memverifikasi tujuan.
Menyiapkan Topik Pub/Sub
Tugas 5. Menambahkan langganan Pub/Sub
Masih di halaman topik. Sekarang Anda akan berlangganan untuk mengakses topik.
- Klik Create subscription.

- Ketik nama untuk langganan, seperti
cdf_lab_subscription, tetapkan Delivery Type ke Pull, lalu klik Create.

Klik Periksa progres saya untuk memverifikasi tujuan.
Menambahkan langganan Pub/Sub
Tugas 6. Menambahkan izin yang diperlukan untuk instance Cloud Data Fusion Anda
- Di Konsol Google Cloud, dari Navigation menu, klik View All products. Di bagian Analytics, klik Data Fusion > Instances.
Catatan: Pembuatan instance memerlukan waktu sekitar 20 menit. Harap tunggu hingga siap.
Selanjutnya, Anda akan memberikan izin ke akun layanan yang terkait dengan instance tersebut, menggunakan langkah-langkah berikut.
-
Dari Konsol Google Cloud, buka IAM & Admin > IAM.
-
Pastikan Akun Layanan Default Compute Engine {project-number}-compute@developer.gserviceaccount.com tersedia, lalu salin Akun Layanan ke papan klip Anda.
-
Di halaman Izin IAM, klik +Grant Access.
-
Di kolom New principals, tempel akun layanan.
-
Klik Select a role field dan mulai ketik Cloud Data Fusion API Service Agent, lalu pilih peran tersebut.
-
Klik ADD ANOTHER ROLE.
-
Tambahkan peran Dataproc Administrator.
-
Klik Save.
Klik Periksa progres saya untuk memverifikasi tujuan.
Menambahkan peran Agen Layanan Cloud Data Fusion API ke akun layanan
Memberikan izin pengguna kepada akun layanan
-
Di konsol, pada Navigation menu, klik IAM & admin > IAM.
-
Pilih kotak centang Include Google-provided role grants.
-
Scroll ke bawah dalam daftar untuk menemukan akun layanan Cloud Data Fusion yang dikelola Google yang terlihat seperti service-{project-number}@gcp-sa-datafusion.iam.gserviceaccount.com, lalu salin nama akun layanan tersebut ke papan klip Anda.

-
Selanjutnya, buka IAM & admin > Service Accounts.
-
Klik akun compute engine default yang terlihat seperti {project-number}-compute@developer.gserviceaccount.com, lalu pilih tab Principals with access di menu navigasi bagian atas.
-
Klik tombol Grant Access.
-
Di kolom New Principals, tempel akun layanan yang telah Anda salin sebelumnya.
-
Pada menu dropdown Role, pilih Service Account User.
-
Klik Save.
Tugas 7. Mengakses UI Cloud Data Fusion
Saat menggunakan Cloud Data Fusion, Anda menggunakan Konsol Cloud dan UI Cloud Data Fusion yang terpisah. Di Konsol Cloud, Anda dapat membuat project Konsol Cloud, serta membuat dan menghapus instance Cloud Data Fusion. Di UI Cloud Data Fusion, Anda dapat menggunakan berbagai halaman, seperti Pipeline Studio atau Wrangler, untuk menggunakan fitur Cloud Data Fusion.
Untuk mengakses UI Cloud Data Fusion, ikuti langkah-langkah berikut:
- Di Konsol Cloud, kembali ke Data Fusion, lalu klik link View Instance di samping instance Data Fusion Anda. Pilih kredensial lab Anda untuk login. Jika diminta mengikuti tur layanan, klik No, Thanks. Anda kini dialihkan ke UI Cloud Data Fusion.

-
Di Control Center Cloud Data Fusion, gunakan Navigation menu untuk menampilkan menu kiri, lalu pilih Pipeline > Studio.
-
Di kiri atas, gunakan menu dropdown untuk memilih Data Pipeline - Realtime.
Tugas 8. Membangun pipeline realtime
Saat menangani data, sangatlah membantu jika Anda dapat melihat tampilan data mentah, sehingga dapat digunakan sebagai titik awal untuk melakukan transformasi. Untuk tujuan ini, Anda akan menggunakan Wrangler untuk menyiapkan dan membersihkan data. Dengan pendekatan yang mengedepankan data ini, Anda dapat memvisualisasikan transformasi secara cepat. Selain itu, masukan real-time memastikan Anda berada di jalur yang tepat.
-
Dari bagian Transform di palet plugin, pilih Wrangler. Node Wrangler akan muncul di kanvas. Buka dengan mengklik tombol Properties.
-
Klik tombol WRANGLE di bagian Directives.
-
Setelah halaman dimuat, klik Upload di menu samping kiri. Selanjutnya, klik ikon upload untuk mengupload file contoh tweet yang telah didownload ke komputer Anda.

- Data dimuat ke layar Wrangler dalam bentuk baris/kolom. Proses ini akan memerlukan waktu beberapa menit.
Catatan: Anggap pemuatan data ini sebagai contoh peristiwa yang akan Anda terima di Pub/Sub. Contoh ini mewakili skenario dunia nyata, yang umumnya tidak memungkinkan Anda memiliki akses ke data produksi saat Anda mengembangkan pipeline.
Namun, administrator Anda mungkin memberi Anda akses ke contoh kecil, atau Anda mungkin menggunakan data tiruan yang mematuhi kontrak API. Di bagian ini, Anda akan menerapkan transformasi pada contoh ini secara berulang, yang disertai masukan di setiap langkah. Kemudian, Anda akan mempelajari cara memutar ulang transformasi pada data nyata.
-
Operasi pertama adalah mengurai data JSON ke dalam representasi tabel yang dibagi menjadi baris dan kolom. Untuk melakukannya, pilih ikon dropdown dari heading kolom pertama (body), lalu pilih item menu Parse, kemudian JSON dari submenu. Di pop-up, tetapkan Depth sebagai 1, lalu klik Apply.

-
Ulangi langkah sebelumnya untuk melihat struktur data yang lebih bermakna untuk transformasi lebih lanjut. Klik ikon dropdown kolom body, lalu pilih Parse > JSON dan tetapkan Depth sebagai 1, kemudian klik Apply.

Selain menggunakan UI, Anda juga dapat menulis Langkah Transformasi ke dalam kotak command line perintah Wrangler. Kotak ini muncul di bagian bawah UI wrangler Anda (cari konsol perintah dengan perintah $ berwarna hijau).
Anda akan menggunakan konsol perintah untuk menempelkan serangkaian Langkah Transformasi pada langkah berikutnya.
-
Tambahkan Langkah Transformasi di bawah dengan menyalin semuanya dan menempelkannya ke kotak command line perintah Wrangler:
columns-replace s/^body_payload_//g
drop id_str
parse-as-simple-date :created_at EEE MMM dd HH:mm:ss Z yyyy
drop display_text_range
drop truncated
drop in_reply_to_status_id_str
drop in_reply_to_user_id_str
parse-as-json :user 1
drop coordinates
set-type :place string
drop geo,place,contributors,is_quote_status,favorited,retweeted,filter_level,user_id_str,user_url,user_description,user_translator_type,user_protected,user_verified,user_followers_count,user_friends_count,user_statuses_count,user_favourites_count,user_listed_count,user_is_translator,user_contributors_enabled,user_lang,user_geo_enabled,user_time_zone,user_utc_offset,user_created_at,user_profile_background_color,user_profile_background_image_url,user_profile_background_image_url_https,user_profile_background_tile,user_profile_link_color,user_profile_sidebar_border_color,user_profile_sidebar_fill_color,user_profile_text_color,user_profile_use_background_image
drop user_following,user_default_profile_image,user_follow_request_sent,user_notifications,extended_tweet,quoted_status_id,quoted_status_id_str,quoted_status,quoted_status_permalink
drop user_profile_image_url,user_profile_image_url_https,user_profile_banner_url,user_default_profile,extended_entities
fill-null-or-empty :possibly_sensitive 'false'
set-type :possibly_sensitive boolean
drop :entities
drop :user_location
Catatan: Jika pesan muncul seperti 'No data. Try removing some transformation steps.', hapus salah satu langkah transformasi dengan mengklik X. Setelah data muncul, Anda dapat melanjutkan prosesnya.
- Klik tombol Apply di kanan atas. Selanjutnya, klik X di kanan atas untuk menutup kotak properti.
Seperti yang terlihat, Anda kembali berada di Pipeline Studio. Di sini, satu node diletakkan di kanvas, yang merepresentasikan transformasi yang baru saja Anda tentukan di Wrangler. Namun, tidak ada sumber yang terhubung ke pipeline ini, karena seperti yang dijelaskan di atas, Anda menerapkan transformasi ini pada sampel perwakilan data di laptop Anda, bukan pada data di lokasi produksi sebenarnya.
Pada langkah berikutnya, mari kita tentukan lokasi data yang sebenarnya.
-
Dari bagian Source di palet plugin, pilih PubSub. Node sumber PubSub akan muncul di kanvas. Buka dengan mengklik tombol Properties.
-
Tentukan berbagai properti sumber PubSub seperti di bawah:
a. Di bagian Reference Name, masukkan Twitter_Input_Stream
b. Di bagian Subscription, masukkan cdf_lab_subscription (yaitu nama langganan PubSub yang Anda buat sebelumnya)
Catatan: Sumber PubSub tidak menerima nama langganan yang sepenuhnya memenuhi syarat, tetapi hanya komponen terakhirnya setelah bagian .../subscriptions/.
c. Klik Validate untuk memastikan tidak ada error yang ditemukan.

d. Klik X di kanan atas untuk menutup kotak properti.
- Sekarang, hubungkan node sumber PubSub ke node Wrangler yang telah Anda tambahkan.

Perhatikan bahwa karena sebelumnya Anda menggunakan contoh data di Wrangler, kolom sumber muncul sebagai isi (body) di Wrangler. Namun, sumber PubSub menghasilkannya di suatu kolom bernama "message". Pada langkah berikutnya, Anda akan memperbaiki perbedaan ini.
- Buka properties untuk node Wrangler Anda dan tambahkan perintah berikut di bagian atas Langkah Transformasi yang ada:
keep :message
set-charset :message 'utf-8'
rename :message :body

Klik X di kanan atas untuk menutup kotak properti.
-
Setelah Anda menghubungkan sumber dan transformasi ke pipeline, selesaikan pipeline dengan menambahkan sink. Dari bagian Sink di panel samping kiri, pilih BigQuery. Node sink BigQuery akan muncul di kanvas.
-
Hubungkan node Wrangler ke node BigQuery dengan menarik panah dari node Wrangler ke node BigQuery. Selanjutnya, Anda akan mengonfigurasi properti node BigQuery.

-
Arahkan kursor ke node BigQuery, lalu klik Properties.
a. Di bagian Reference Name, masukkan realtime_pipeline
b. Di bagian Dataset, masukkan realtime
c. Di bagian Table, masukkan tweets
d. Klik Validate untuk memastikan tidak ada error yang ditemukan.
-
Klik X di kanan atas untuk menutup kotak properti.

-
Klik Name your pipeline, tambahkan Realtime_Pipeline sebagai nama, lalu klik Save.
-
Klik ikon Deploy, lalu mulai pipeline.
-
Setelah di-deploy, klik Run. Tunggu hingga Status pipeline berubah menjadi Running. Proses ini akan memerlukan waktu beberapa menit.
Tugas 9. Mengirim pesan ke Cloud Pub/Sub
Kirim peristiwa dengan memuat peristiwa secara massal ke dalam langganan menggunakan template Dataflow.
Sekarang Anda akan membuat tugas Dataflow berdasarkan template untuk memproses beberapa pesan dari file tweet dan memublikasikannya ke topik pubsub yang telah dibuat. Gunakan template Text Files on Cloud Storage to Pub/Sub di bagian Process Data Continuously (Stream) dari halaman pembuatan tugas Dataflow.
-
Kembali di Konsol Cloud, buka Navigation menu, klik View All products. Di bagian Analytics, klik Dataflow.
-
Di bagian panel menu teratas, klik CREATE JOB FROM TEMPLATE.
-
Masukkan streaming-pipeline sebagai nama Tugas untuk tugas Cloud Dataflow Anda.
-
Di bagian Dataflow template Cloud, pilih template Text Files on Cloud Storage to Pub/Sub.
-
Di bagian Input Cloud Storage File(s), masukkan gs://<YOUR-BUCKET-NAME>/<FILE-NAME>
Pastikan untuk mengganti <YOUR-BUCKET-NAME> dengan nama bucket Anda dan <FILE-NAME> dengan nama file yang telah didownload ke komputer Anda.
Misalnya: gs://qwiklabs-gcp-01-dfdf34926367/pubnub_tweets_2019-06-09-05-50_part-r-00000
- Di bagian Output Pub/Sub Topic, masukkan
projects/<PROJECT-ID>/topics/cdf_lab_topic
Pastikan untuk mengganti PROJECT-ID dengan Project ID Anda yang sebenarnya.
- Di bagian Temporary Location, masukkan
<YOUR-BUCKET-NAME>/tmp/
Pastikan untuk mengganti <YOUR-BUCKET-NAME> dengan nama bucket Anda.
-
Klik tombol Run job.
-
Jalankan tugas dataflow dan tunggu beberapa menit. Anda dapat melihat pesan di langganan pubsub, lalu melihatnya diproses melalui pipeline CDF real-time.

Klik Periksa progres saya untuk memverifikasi tujuan.
Membangun dan menjalankan pipeline runtime
Tugas 10. Melihat metrik pipeline Anda
Begitu peristiwa dimuat ke topik Pub/Sub, Anda akan mulai melihatnya digunakan oleh pipeline. Perhatikan metrik di setiap node yang diperbarui.
Selamat!
Di lab ini, Anda telah mempelajari cara menyiapkan pipeline realtime di Data Fusion yang membaca pesan masuk streaming dari Cloud Pub/Sub, memproses data, dan menuliskannya ke BigQuery.
Manual Terakhir Diperbarui pada 6 Februari 2025
Lab Terakhir Diuji pada 6 Februari 2025
Hak cipta 2026 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 dari tiap-tiap perusahaan yang bersangkutan.