Dataflow adalah layanan yang menyediakan pemrosesan data batch dan streaming terpadu dalam skala besar. Google Cloud Gunakan Dataflow untuk membuat pipeline data yang membaca dari satu atau beberapa sumber, mentransformasi data, dan menulis data ke tujuan.
Kasus penggunaan umum untuk Dataflow meliputi:
- Perpindahan data: Penyerapan atau replikasi data di seluruh subsistem.
- Alur kerja ETL (ekstrak-transformasi-muat) yang menyerap data ke dalam data warehouse seperti BigQuery.
- Dukungan backend untuk dasbor business intelligence (BI)
- Analisis machine learning (ML) real-time dari data streaming.
- Pemrosesan data sensor atau pemrosesan data log dalam skala besar.
Dataflow menggunakan model pemrograman yang sama untuk analisis batch dan streaming. Pipeline streaming dapat mencapai latensi rendah. Anda dapat menyerap, memproses, dan menganalisis data real-time dengan volume yang berfluktuasi. Secara default, Dataflow menyediakan pemrosesan tepat satu kali setiap data. Untuk pipeline streaming yang dapat mentoleransi duplikat, Anda dapat mengurangi biaya dan meningkatkan latensi dengan mengaktifkan mode minimal sekali.
Keuntungan pemrosesan data dengan Dataflow
Bagian ini menjelaskan beberapa keuntungan menggunakan Dataflow.
Pemrosesan data terkelola
Dataflow adalah layanan terkelola sepenuhnya. Artinya, Google mengelola semua resource yang diperlukan untuk menjalankan Dataflow. Saat Anda menjalankan tugas Dataflow, layanan Dataflow akan mengalokasikan kumpulan VM pekerja untuk menjalankan pipeline. Anda tidak perlu menyediakan atau mengelola VM ini. Saat tugas selesai atau dibatalkan, Dataflow akan otomatis menghapus VM. Anda akan ditagih untuk resource komputasi yang digunakan tugas Anda. Untuk mengetahui informasi selengkapnya tentang biaya, lihat Harga Dataflow.
Pipeline data yang 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 worker tambahan, atau dengan mematikan beberapa VM worker jika jumlahnya lebih sedikit yang diperlukan. Layanan ini juga mengoptimalkan pekerjaan, berdasarkan karakteristik pipeline. Misalnya, Dataflow dapat menyeimbangkan ulang pekerjaan secara dinamis di antara VM, sehingga pekerjaan paralel selesai secara lebih efisien.
Portabel dengan Apache Beam
Dataflow dibangun di 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 multi-bahasa.
Dataflow menjalankan pipeline Apache Beam. Jika Anda memutuskan untuk menjalankan pipeline di platform lain, seperti Apache Flink atau Apache Spark, Anda dapat melakukannya tanpa menulis ulang kode pipeline.
Pengembangan pipeline data yang fleksibel
Anda dapat menggunakan Dataflow untuk pipeline dengan kasus penggunaan yang sederhana, seperti hanya memindahkan data. Namun, Dataflow juga cocok untuk aplikasi yang lebih canggih, seperti analisis streaming real-time. Solusi yang dibangun di Dataflow dapat berkembang sesuai kebutuhan Anda saat Anda beralih dari batch ke streaming atau menemukan kasus penggunaan yang lebih canggih.
Dataflow mendukung beberapa cara berbeda untuk membuat dan mengeksekusi pipeline, bergantung pada kebutuhan Anda:
Tulis 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-nya sesuai permintaan.
Google juga menyediakan library template untuk skenario umum. Anda dapat men-deploy template ini tanpa mengetahui konsep pemrograman Apache Beam.
Gunakan notebook JupyterLab untuk mengembangkan dan menjalankan pipeline secara iteratif.
Tugas pipeline data yang dapat diamati
Anda dapat memantau status tugas Dataflow melalui antarmuka pemantauan Dataflow di konsol Google Cloud . Antarmuka pemantauan mencakup representasi grafis pipeline Anda, yang menunjukkan progres dan detail eksekusi setiap tahap pipeline. Antarmuka pemantauan memudahkan Anda menemukan masalah seperti hambatan atau latensi tinggi. Anda juga dapat membuat profil tugas Dataflow Anda untuk memantau penggunaan CPU dan alokasi memori.
Cara kerja pipeline data untuk pemrosesan batch dan streaming
Dataflow menggunakan model pipeline data, tempat data bergerak melalui serangkaian tahap. Tahapan dapat mencakup pembacaan data dari sumber, transformasi dan penggabungan data, serta penulisan hasil ke tujuan.
Pipeline dapat berkisar dari pemrosesan yang sangat mendasar hingga yang lebih kompleks. Misalnya, pipeline dapat melakukan hal berikut:
- Memindahkan data apa adanya ke tujuan.
- Mentransformasi data agar lebih dapat digunakan oleh sistem target.
- Menggabungkan, memproses, dan memperkaya data untuk analisis.
- Gabungkan data dengan data lain.
Pipeline yang ditentukan di Apache Beam tidak menentukan cara pipeline dieksekusi. Menjalankan pipeline adalah tugas runner. Tujuan runner adalah untuk menjalankan pipeline Apache Beam di 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. Kemudian, Dataflow mengalokasikan kumpulan VM untuk menjalankan pipeline.
Diagram berikut menunjukkan solusi ETL dan BI umum menggunakan Dataflow dan layanan Google Cloud lainnya:

Diagram ini menunjukkan tahap-tahap berikut:
- Pub/Sub menyerap data dari sistem eksternal.
- Dataflow membaca data dari Pub/Sub dan menuliskannya ke BigQuery. Selama tahap ini, Dataflow dapat mentransformasi atau menggabungkan data.
- BigQuery berfungsi sebagai data warehouse, sehingga memungkinkan analis data menjalankan kueri ad hoc pada data.
- 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 berikutnya
- Untuk mengetahui informasi selengkapnya tentang Apache Beam, lihat Model pemrograman untuk Apache Beam.
- Buat pipeline pertama Anda dengan mengikuti Mulai cepat pembuat tugas atau Mulai cepat template Dataflow.
- Pelajari cara menggunakan Apache Beam untuk membangun pipeline.