Menyetel mode streaming pipeline

Dataflow mendukung dua mode untuk tugas streaming:

  • Mode tepat satu kali. Mode ini adalah default untuk semua tugas streaming Dataflow. Dalam mode ini, Dataflow memastikan bahwa kumpulan data tidak dihapus atau diduplikasi saat data bergerak melalui pipeline.
  • Mode minimal satu kali. Mode ini menjamin bahwa kumpulan data diproses setidaknya satu kali (yaitu, tidak ada kumpulan data input yang hilang). Namun, data duplikat dapat dilakukan dalam mode ini. Untuk kasus penggunaan yang dapat menoleransi duplikat, mode minimal satu kali dapat menurunkan biaya dan latensi tugas secara signifikan.

Pilih mode streaming yang akan digunakan

Pilih mode tepat satu kali jika Anda perlu memastikan hasil yang tepat dari pipeline dan semantik yang dapat diprediksi. Contoh:

  • Pipeline dengan agregasi, seperti jumlah, jumlah, atau rata-rata.
  • Kasus penggunaan penting bagi bisnis yang mengandalkan catatan yang diproses satu kali dan hanya satu kali. Contohnya mencakup deteksi penipuan, deteksi ancaman jaringan, dan dasbor inventaris e-commerce.

Pilih mode streaming minimal satu kali jika beban kerja Anda dapat menoleransi data duplikat dan bisa mendapatkan manfaat dari pengurangan biaya atau latensi. Contoh:

  • Workload tempat penghapusan duplikat dilakukan secara downstream dari Dataflow. Misalnya, pipeline yang menulis ke BigQuery atau datastore SQL.
  • Pipeline khusus peta tanpa agregasi. Contohnya mencakup pemrosesan log, pengambilan data perubahan, atau ekstrak, transformasi, dan pemuatan (ETL), di mana pipeline hanya melakukan transformasi per elemen, seperti terjemahan skema.
  • Pipeline tempat sink output tidak dapat menjamin pengiriman tepat satu kali, seperti Pub/Sub. Dalam hal ini, penghapusan duplikat dalam pipeline mungkin tidak diperlukan, dan Anda dapat memperoleh manfaat dari pengurangan biaya dan latensi mode streaming minimal satu kali.
  • Pipeline yang membaca dari Pub/Sub. Membaca dari Pub/Sub akan dioptimalkan secara signifikan saat menggunakan mode minimal satu kali.

Pertimbangan lainnya

  • Mode minimal satu kali dapat secara signifikan mengurangi biaya dan latensi pipeline. Dampak yang tepat bergantung pada spesifikasi pipeline. Uji streaming minimal satu kali dalam beban yang realistis untuk mengevaluasi dampaknya.

  • Jika menggunakan mode minimal satu kali, tingkat data duplikat bergantung pada jumlah percobaan ulang. Rasio dasar pengukuran biasanya rendah (<1%). Namun, lonjakan dapat terjadi jika worker node gagal atau kondisi lainnya menyebabkan panggilan RPC berulang.

  • Mode streaming memengaruhi cara Streaming Engine memproses kumpulan data, tetapi tidak mengubah semantik konektor I/O. Sebaiknya Anda menyelaraskan semantik I/O dengan mode streaming. Misalnya, jika Anda menggunakan mode streaming setidaknya satu kali dengan konektor I/O BigQuery, tetapkan mode tulis ke STORAGE_API_AT_LEAST_ONCE. Template Dataflow yang disediakan Google otomatis mengaktifkan opsi ini saat Anda menggunakan streaming minimal satu kali.

  • Transformasi berbasis elemen seperti Map tidak selalu idempoten. Misalnya, pertimbangkan fungsi yang menerima pesan dan menambahkan stempel waktu saat ini ke fungsi tersebut. Dalam hal ini, kumpulan data duplikat dapat menghasilkan beberapa {i>output<i} yang berbeda. Mode minimal satu kali mungkin tidak sesuai untuk pipeline tersebut.

Menyetel mode streaming

Pemrosesan tepat satu kali adalah setelan default untuk semua tugas Dataflow. Untuk mengaktifkan mode streaming minimal satu kali, tetapkan opsi layanan streaming_mode_at_least_once.

Java

--dataflowServiceOptions=streaming_mode_at_least_once

Python

--dataflow_service_options=streaming_mode_at_least_once

Go

--dataflow_service_options=streaming_mode_at_least_once

Jika Anda tidak menentukan opsi streaming_mode_at_least_once, Dataflow akan menggunakan mode streaming tepat satu kali.

Jika Anda menetapkan opsi streaming_mode_at_least_once, Dataflow akan otomatis mengaktifkan Streaming Engine dengan penagihan berbasis resource.

Untuk mengupdate mode streaming pada tugas yang sedang berjalan, hentikan tugas yang ada dan jalankan tugas penggantian. Untuk informasi selengkapnya, lihat Meluncurkan tugas pengganti.

Memilih mode streaming untuk template

Untuk memilih mode streaming saat Anda menjalankan template streaming Dataflow, lakukan langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Jobs Dataflow.

    Buka Tugas

  2. Klik Create job from template.

  3. Pilih template yang ingin Anda jalankan dari menu drop-down Dataflow template.

  4. Untuk Mode streaming, pilih mode streaming. Jika template hanya mendukung satu mode, opsi ini akan dinonaktifkan.

gcloud

Untuk mengaktifkan mode minimal satu kali, tetapkan opsi streaming_mode_at_least_once dalam tanda additional-experiments:

--additional-experiments=streaming_mode_at_least_once

Untuk mengaktifkan mode tepat satu kali, tetapkan opsi streaming_mode_exactly_once dalam tanda additional-experiments:

--additional-experiments=streaming_mode_exactly_once

Kedua opsi ini sama-sama bersifat eksklusif. Jika Anda tidak menetapkan salah satu opsi ini, template akan ditetapkan secara default ke mode streaming yang ditentukan oleh metadata template. Untuk mengetahui informasi selengkapnya, lihat Template kustom.

REST

Gunakan kolom additionalExperiments di objek FlexTemplateRuntimeEnvironment (template fleksibel) atau RuntimeEnvironment (template klasik).

{
  additionalExperiments : ["streaming_mode_at_least_once"]
  ...
}

Template kustom

Jika Anda membuat template kustom yang mendukung pemrosesan minimal satu kali, tambahkan kolom tingkat teratas berikut ke file metadata template:

{
  "streaming": true,
  "supportsAtLeastOnce": true,
  "supportsExactlyOnce": true,
  "defaultStreamingMode": "AT_LEAST_ONCE"
}

Kolom metadata ini memungkinkan pengguna memilih mode streaming saat men-deploy template di Konsol Google Cloud. Kolom defaultStreamingMode bersifat opsional dan menentukan mode streaming default untuk template. Jika Anda tidak menentukan defaultStreamingModeg dan template mendukung kedua mode tersebut, mode tepat satu kali adalah default-nya.

Untuk mengetahui informasi selengkapnya, lihat bagian berikut dalam dokumentasi template Dataflow:

Melihat mode streaming pekerjaan

Untuk melihat mode streaming tugas, buka halaman Jobs di Konsol Google Cloud.

Buka Tugas

Mode streaming juga tercantum di halaman detail tugas, di panel Info tugas.

Batasan

Mode streaming setidaknya satu kali memerlukan Streaming Engine dengan penagihan berbasis resource.

Harga

Mode minimal satu kali selalu menggunakan penagihan berbasis resource, sehingga Anda akan ditagih untuk total resource yang digunakan oleh tugas Anda.

Biaya per unit Unit Komputasi Streaming Engine tetap sama, terlepas dari mode streaming. Namun, dalam sebagian besar kasus, pipeline menggunakan total resource yang jauh lebih sedikit saat menggunakan mode minimal satu kali.

Langkah selanjutnya