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: Menyerap data atau mereplikasi data di seluruh subsistem.
- Alur kerja ETL (ekstrak-transformasi-pemuatan) yang menyerap data ke dalam data warehouse seperti BigQuery.
- Mendukung dasbor BI.
- Menerapkan ML secara real time ke data streaming.
- Memproses data sensor atau data log 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 setiap data. Untuk pipeline streaming yang dapat mentoleransi duplikat, Anda sering kali dapat mengurangi biaya dan meningkatkan latensi dengan mengaktifkan mode minimal sekali.
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 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.
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 mematikan beberapa VM pekerja jika jumlahnya lebih sedikit yang diperlukan. Layanan ini juga mengoptimalkan tugas, berdasarkan karakteristik pipeline. Misalnya, Dataflow dapat menyeimbangkan ulang tugas secara dinamis di antara VM, sehingga tugas paralel selesai dengan lebih efisien.
Portabel
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.
Fleksibel
Anda dapat menggunakan Dataflow untuk pipeline yang relatif sederhana, seperti memindahkan data. Namun, fitur 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 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.
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 mempermudah pendeteksian masalah seperti hambatan atau latensi tinggi. Anda juga dapat membuat profil job Dataflow untuk memantau penggunaan CPU dan alokasi memori.
Cara kerjanya
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 sederhana hingga yang lebih kompleks. Misalnya, sebuah pipeline dapat melakukan hal berikut:
- Memindahkan data apa adanya ke tujuan.
- Mengubah 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 mengubah 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.