Ringkasan Dataflow

Dataflow adalah layanan Google Cloud yang menyediakan pemrosesan data batch dan streaming terpadu dalam skala besar. Gunakan Dataflow untuk membuat pipeline data yang membaca dari satu atau beberapa sumber, mengubah data, dan menulis data ke tujuan.

Kasus penggunaan umum untuk Dataflow meliputi hal berikut:

  • Perpindahan data: Menyerap data atau mereplikasi data di berbagai subsistem.
  • Alur kerja ETL (extract-transform-load) yang menyerap data ke data warehouse seperti BigQuery.
  • Mendukung dasbor BI.
  • Menerapkan ML secara real time ke streaming data.
  • Memproses data sensor atau mencatat data dalam skala besar.

Dataflow menggunakan model pemrograman yang sama untuk analisis batch dan streaming. Pipeline streaming dapat mencapai latensi yang sangat rendah. Anda dapat menyerap, memproses, dan menganalisis data real-time dengan volume yang berfluktuasi. Secara default, Dataflow menjamin pemrosesan tepat satu kali untuk setiap kumpulan data. Untuk pipeline streaming yang dapat menoleransi duplikat, sering kali Anda dapat mengurangi biaya dan meningkatkan latensi dengan mengaktifkan mode minimal satu kali.

Keunggulan Dataflow

Bagian ini menjelaskan beberapa keuntungan menggunakan Dataflow.

Terkelola

Dataflow adalah layanan terkelola sepenuhnya. Artinya, Google mengelola semua resource yang diperlukan untuk menjalankan Dataflow. Saat Anda menjalankan tugas Dataflow, layanan Dataflow mengalokasikan kumpulan VM pekerja untuk menjalankan pipeline. Anda tidak perlu menyediakan atau mengelola VM ini. Setelah tugas selesai atau dibatalkan, Dataflow akan otomatis menghapus VM. Anda akan dikenai biaya untuk resource komputasi yang digunakan oleh tugas Anda. Untuk mengetahui informasi selengkapnya tentang biaya, lihat Harga Dataflow.

Skalabel

Dataflow dirancang untuk mendukung pipeline batch dan streaming dalam skala besar. Data diproses secara paralel, sehingga pekerjaan didistribusikan ke beberapa VM.

Dataflow dapat melakukan penskalaan otomatis dengan menyediakan VM pekerja tambahan, atau dengan menonaktifkan beberapa VM pekerja jika yang diperlukan lebih sedikit. Hal ini juga mengoptimalkan pekerjaan, berdasarkan karakteristik pipeline. Misalnya, Dataflow dapat menyeimbangkan kembali pekerjaan secara dinamis antar VM, sehingga pekerjaan paralel selesai dengan lebih efisien.

Portabel

Dataflow dibuat berdasarkan project Apache Beam open source. Apache Beam memungkinkan Anda menulis pipeline menggunakan SDK khusus bahasa. Apache Beam mendukung SDK Java, Python, dan Go, serta pipeline multibahasa.

Dataflow menjalankan pipeline Apache Beam. Jika nantinya memutuskan untuk menjalankan pipeline di platform lain, seperti Apache Flink atau Apache Spark, Anda dapat melakukannya tanpa menulis ulang kode pipeline.

Fleksibel

Anda dapat menggunakan Dataflow untuk pipeline yang relatif sederhana, seperti memindahkan data. Namun, layanan ini juga cocok untuk aplikasi yang lebih canggih, seperti analisis streaming real-time. Solusi yang dibangun di Dataflow dapat berkembang sesuai kebutuhan Anda saat Anda berpindah dari batch ke streaming atau menghadapi kasus penggunaan yang lebih canggih.

Dataflow mendukung beberapa cara untuk membuat dan menjalankan pipeline, bergantung pada kebutuhan Anda:

  • Menulis kode menggunakan Apache Beam SDK.

  • Deploy Template Dataflow. Dengan template, Anda dapat menjalankan pipeline yang telah ditentukan sebelumnya. Misalnya, developer dapat membuat template, lalu data scientist dapat men-deploy template-nya sesuai permintaan.

    Google juga menyediakan library template untuk skenario umum. Anda dapat menerapkan template ini tanpa mengetahui konsep pemrograman Apache Beam.

  • Gunakan JupyterLab notebooks untuk mengembangkan dan menjalankan pipeline secara berulang.

Dapat diobservasi

Anda dapat memantau status tugas Dataflow melalui antarmuka pemantauan Dataflow di Konsol Google Cloud. Antarmuka pemantauan mencakup representasi grafis pipeline Anda, yang menampilkan progres dan detail eksekusi setiap tahap pipeline. Antarmuka pemantauan memudahkan penemuan masalah seperti kemacetan atau latensi tinggi. Anda juga dapat membuat profil tugas Dataflow untuk memantau penggunaan CPU dan alokasi memori.

Cara kerjanya

Dataflow menggunakan model pipeline data, dengan data bergerak melalui serangkaian tahapan. Tahapan dapat mencakup pembacaan data dari sumber, mengubah dan menggabungkan data, serta menulis hasilnya ke tujuan.

Pipeline dapat berkisar dari pemrosesan yang sangat sederhana hingga yang lebih kompleks. Misalnya, pipeline dapat melakukan hal berikut:

  • Memindahkan data apa adanya ke tujuan.
  • Mengubah data agar lebih mudah digunakan oleh sistem target.
  • Menggabungkan, memproses, dan memperkaya data untuk analisis.
  • Menggabungkan data dengan data lain.

Pipeline yang ditentukan di Apache Beam tidak menentukan cara pipeline dijalankan. Menjalankan pipeline adalah tugas runner. Tujuan runner adalah menjalankan pipeline Apache Beam pada platform tertentu. Apache Beam mendukung beberapa runner, termasuk runner Dataflow.

Untuk menggunakan Dataflow dengan pipeline Apache Beam, tentukan runner Dataflow. Runner mengupload kode dan dependensi yang dapat dieksekusi ke bucket Cloud Storage dan membuat tugas Dataflow. Dataflow kemudian mengalokasikan kumpulan VM untuk menjalankan pipeline.

Diagram berikut menunjukkan solusi ETL dan BI standar yang menggunakan Dataflow dan layanan Google Cloud lainnya:

Diagram solusi ETL dan BI yang menggunakan Dataflow

Diagram ini menunjukkan tahapan berikut:

  1. Pub/Sub menyerap data dari sistem eksternal.
  2. Dataflow membaca data dari Pub/Sub dan menulisnya ke BigQuery. Pada tahap ini, Dataflow mungkin mengubah atau menggabungkan data.
  3. BigQuery bertindak sebagai data warehouse, yang memungkinkan analis data menjalankan kueri ad hoc pada data.
  4. Looker memberikan insight BI real-time dari data yang disimpan di BigQuery.

Untuk skenario perpindahan data dasar, Anda dapat menjalankan template yang disediakan Google. Beberapa template mendukung fungsi yang ditentukan pengguna (UDF) yang ditulis dalam JavaScript. UDF memungkinkan Anda menambahkan logika pemrosesan kustom ke template. Untuk pipeline yang lebih kompleks, mulailah dengan Apache Beam SDK.

Langkah selanjutnya