Menyetel mode streaming pipeline

Dataflow mendukung dua mode untuk tugas streaming:

  • Mode tepat satu kali. Mode ini adalah setelan default untuk semua Tugas streaming Dataflow. Dalam mode ini, Dataflow memastikan bahwa {i>record<i} tidak dihapus atau diduplikasi saat data berpindah pipeline tersebut.
  • Mode minimal satu kali. Mode ini menjamin bahwa data diproses dengan setidaknya sekali (yaitu, tidak ada catatan input yang hilang). Namun, catatan duplikat dapat dilakukan dalam mode ini. Untuk kasus penggunaan yang dapat menoleransi duplikasi, 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 bisa diprediksi. Contoh:

  • Pipeline dengan agregasi, seperti jumlah, jumlah, atau rata-rata.
  • Kasus penggunaan penting dalam bisnis yang mengandalkan pemrosesan kumpulan data sekali dan hanya sekali. Contohnya mencakup deteksi penipuan, deteksi ancaman jaringan, dan dasbor inventaris e-commerce.

Pilih mode streaming minimal satu kali jika beban kerja Anda dapat menoleransi duplikat data dan mungkin mendapatkan keuntungan dari biaya atau latensi yang lebih rendah. Contoh:

  • Workload tempat penghapusan duplikat dilakukan di downstream Dataflow. Misalnya, pipeline yang menulis ke BigQuery atau datastore SQL.
  • Pipeline khusus peta tanpa agregasi. Contohnya mencakup pemrosesan log, mengubah pekerjaan pengambilan data, atau mengekstrak, mentransformasi, dan memuat (ETL), di mana pipeline hanya melakukan transformasi per-elemen, seperti penafsiran skema.
  • Pipeline di mana sink output tidak dapat menjamin pengiriman tepat satu kali, seperti sebagai Pub/Sub. Dalam hal ini, penghapusan duplikat dalam pipeline mungkin tidak diperlukan, dan Anda bisa mendapatkan keuntungan dari biaya dan latensi yang lebih rendah mode streaming minimal satu kali.
  • Pipeline yang membaca dari Pub/Sub. Membaca dari Pub/Sub adalah dioptimalkan secara signifikan saat menggunakan mode minimal satu kali.

Pertimbangan lainnya

  • Mode minimal satu kali dapat secara signifikan mengurangi biaya dan latensi {i>pipelines<i} yang sama. Dampak persisnya bergantung pada spesifikasi pipeline. Uji coba streaming minimal satu kali di bawah pemuatan realistis untuk mengevaluasi dampaknya.

  • Saat menggunakan mode minimal satu kali, tingkat data duplikat bergantung pada jumlah percobaan ulang. Rasio garis dasar 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 setidaknya satu kali mode streaming dengan Konektor I/O BigQuery, setel mode tulis ke STORAGE_API_AT_LEAST_ONCE. Template Dataflow yang disediakan Google mengaktifkan opsi ini secara otomatis saat Anda menggunakan streaming minimal satu kali.

  • Transformasi yang menangani elemen seperti Map tidak selalu idempoten. Misalnya, pertimbangkan fungsi yang menerima pesan dan menambahkan stempel waktu saat ini IP eksternal mana pun yang ditetapkan pada instance tersebut. Dalam hal ini, kumpulan data duplikat dapat menghasilkan beberapa output yang berbeda. Mode minimal satu kali mungkin tidak sesuai untuk pipeline tersebut.

Setel mode streaming

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

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 menggunakan mode streaming tepat satu kali.

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

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

Memilih mode streaming untuk template

Untuk memilih mode streaming saat Anda menjalankan streaming Dataflow {i>template<i}, lakukan langkah-langkah berikut:

Konsol

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

    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 mendukung hanya satu mode, maka opsi ini akan dinonaktifkan.

gcloud

Untuk mengaktifkan mode minimal satu kali, setel opsi streaming_mode_at_least_once dalam flag additional-experiments:

--additional-experiments=streaming_mode_at_least_once

Untuk mengaktifkan mode tepat satu kali, setel opsi streaming_mode_exactly_once dalam flag additional-experiments:

--additional-experiments=streaming_mode_exactly_once

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

REST

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

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

Template kustom

Jika Anda membuat template kustom yang mendukung pemrosesan setidaknya 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 jangan tentukan defaultStreamingModeg dan template mendukung kedua mode tersebut, lalu mode tepat satu kali adalah default.

Untuk mengetahui informasi lebih lanjut, lihat bagian berikut di Dataflow dokumentasi template:

Melihat mode streaming lowongan

Untuk melihat mode streaming lowongan, buka halaman Lowongan di Konsol Google Cloud Anda.

Buka Tugas

Mode streaming juga tercantum pada halaman detail pekerjaan, di bagian panel info.

Batasan

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

Harga

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

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

Langkah selanjutnya