Menggunakan Streaming Engine untuk tugas streaming

Streaming Engine Dataflow memindahkan eksekusi pipeline dari mesin virtual (VM) pekerja ke backend layanan Dataflow. Jika Anda tidak menggunakan Streaming Engine untuk tugas streaming, runner Dataflow akan mengeksekusi langkah-langkah pipeline streaming Anda sepenuhnya di VM pekerja, yang menggunakan penyimpanan Persistent Disk, memori, dan CPU pekerja.

Streaming Engine diaktifkan secara default untuk pipeline berikut:

  • Pipeline streaming yang menggunakan Apache Beam Python SDK versi 2.21.0 atau yang lebih baru dan Python 3.
  • Pipeline streaming yang menggunakan Apache Beam Go SDK versi 2.33.0 atau yang lebih baru.

Untuk mempelajari lebih lanjut penerapan Streaming Engine, lihat Streaming Engine: Model Eksekusi untuk Pemrosesan Data Latensi Rendah dan Sangat Dapat Diskalakan.

Manfaat

Model Streaming Engine memiliki manfaat berikut:

  • Penggunaan resource penyimpanan Persistent Disk, memori, dan CPU yang lebih rendah pada VM pekerja. Streaming Engine berfungsi paling baik dengan jenis mesin pekerja yang memiliki lebih sedikit vCPU (misalnya, 2 vCPU, bukan 4 vCPU). Fitur ini tidak memerlukan Persistent Disk selain disk boot pekerja kecil, sehingga mengurangi penggunaan resource dan kuota.
  • Penskalaan Otomatis Horizontal yang lebih responsif sebagai respons terhadap variasi dalam volume data yang masuk. Streaming Engine menawarkan penskalaan pekerja yang lebih lancar dan lebih terperinci.
  • Dukungan yang lebih baik, karena Anda tidak perlu men-deploy ulang pipeline untuk menerapkan update layanan.

Sebagian besar pengurangan resource pekerja berasal dari pengalihan tugas ke layanan Dataflow. Oleh karena itu, ada biaya yang terkait dengan penggunaan Streaming Engine.

Dukungan dan batasan

  • Untuk Java SDK, Streaming Engine memerlukan Apache Beam SDK versi 2.10.0 atau yang lebih baru.
  • Untuk Python SDK, Streaming Engine memerlukan Apache Beam SDK versi 2.16.0 atau yang lebih baru.
  • Untuk Go SDK, Streaming Engine memerlukan Apache Beam SDK versi 2.33.0 atau yang lebih baru.
  • Anda tidak dapat mengupdate pipeline yang sudah berjalan untuk menggunakan Streaming Engine. Jika pipeline Anda berjalan dalam produksi tanpa Streaming Engine dan Anda ingin menggunakan Streaming Engine, hentikan pipeline Anda menggunakan opsi Dataflow Drain. Kemudian, tentukan parameter Streaming Engine, dan jalankan kembali pipeline Anda.
  • Untuk tugas yang menggunakan Streaming Engine, data input gabungan untuk jendela terbuka memiliki batas 60 GB per kunci. Data input gabungan mencakup elemen yang di-buffer dan status kustom. Jika pipeline melebihi batas ini, pipeline akan mengalami error dengan latensi sistem yang tinggi, dan pesan dalam log tugas menunjukkan bahwa batas telah terlampaui. Sebagai praktik terbaik, hindari desain pipeline yang menghasilkan kunci besar. Untuk mengetahui informasi selengkapnya, lihat Menulis pipeline Dataflow dengan mempertimbangkan skalabilitas.
  • Mendukung kunci enkripsi yang dikelola pelanggan (CMEK)

Menggunakan Streaming Engine

Fitur ini tersedia di semua region tempat Dataflow didukung. Untuk melihat lokasi yang tersedia, baca Lokasi Dataflow.

Java

Streaming Engine memerlukan Apache Beam Java SDK versi 2.10.0 atau yang lebih baru.

Untuk menggunakan Streaming Engine untuk pipeline streaming Anda, tentukan parameter berikut:

  • --enableStreamingEngine jika Anda menggunakan Apache Beam SDK untuk Java versi 2.11.0 atau yang lebih baru.
  • --experiments=enable_streaming_engine jika Anda menggunakan Apache Beam SDK untuk Java versi 2.10.0.

Jika Anda menggunakan Streaming Engine Dataflow untuk pipeline Anda, jangan tentukan parameter --zone. Sebagai gantinya, tentukan parameter --region dan tetapkan nilainya ke region yang didukung. Dataflow akan otomatis memilih zona di region yang Anda tentukan. Jika Anda menentukan parameter --zone dan menetapkannya ke zona di luar region yang tersedia, Dataflow akan melaporkan error.

Streaming Engine berfungsi paling baik dengan jenis mesin pekerja yang memiliki lebih sedikit vCPU. Gunakan jenis tugas untuk menentukan apakah akan menggunakan jenis mesin pekerja dengan memori tinggi. Contoh jenis mesin yang kami rekomendasikan mencakup jenis mesin 2 vCPU, seperti --workerMachineType=n4-standard-2 atau --workerMachineType=n4-highmem-2. Anda juga dapat menetapkan --diskSizeGb=30 karena Streaming Engine hanya memerlukan ruang untuk image boot pekerja dan log lokal. Nilai ini adalah nilai default.

Python

Streaming Engine memerlukan Apache Beam Python SDK versi 2.16.0 atau yang lebih baru.

Streaming Engine diaktifkan secara default untuk pipeline streaming Dataflow baru jika kondisi berikut terpenuhi:

  • Pipeline menggunakan Apache Beam Python SDK versi 2.21.0 atau yang lebih baru dan Python 3.
  • Kunci enkripsi yang dikelola pelanggan tidak digunakan.
  • Pekerja Dataflow berada di region yang sama dengan tugas Dataflow Anda.

Di Python SDK versi 2.45.0 atau yang lebih baru, Anda tidak dapat menonaktifkan Streaming Engine untuk pipeline streaming. Di Python SDK versi 2.44.0 atau yang lebih lama, untuk menonaktifkan Streaming Engine, tentukan parameter berikut:

--experiments=disable_streaming_engine

Jika Anda menggunakan Python 2, untuk mengaktifkan Streaming Engine, tentukan parameter berikut:

--enable_streaming_engine

Jika Anda menggunakan Streaming Engine Dataflow di pipeline Anda, jangan tentukan parameter --zone. Sebagai gantinya, tentukan parameter --region dan tetapkan nilainya ke region yang didukung. Dataflow akan otomatis memilih zona di region yang Anda tentukan. Jika Anda menentukan parameter --zone dan menetapkannya ke zona di luar region yang tersedia, Dataflow akan melaporkan error.

Streaming Engine berfungsi paling baik dengan jenis mesin pekerja yang memiliki lebih sedikit vCPU. Gunakan jenis tugas untuk menentukan apakah akan menggunakan jenis mesin pekerja dengan memori tinggi. Contoh jenis mesin yang kami rekomendasikan mencakup jenis mesin 2 vCPU, seperti --workerMachineType=n4-standard-2 atau --workerMachineType=n4-highmem-2. Anda juga dapat menetapkan --disk_size_gb=30 karena Streaming Engine hanya memerlukan ruang untuk image boot pekerja dan log lokal. Nilai ini adalah nilai default.

Go

Streaming Engine memerlukan Apache Beam Go SDK versi 2.33.0 atau yang lebih baru.

Streaming Engine diaktifkan secara default untuk pipeline streaming Dataflow baru yang menggunakan Apache Beam Go SDK.

Jika Anda ingin menonaktifkan Streaming Engine di pipeline streaming Go, tentukan parameter berikut. Parameter ini harus ditentukan setiap kali Anda ingin menonaktifkan Streaming Engine.

--experiments=disable_streaming_engine

Jika Anda menggunakan Streaming Engine Dataflow di pipeline Anda, jangan tentukan parameter --zone. Sebagai gantinya, tentukan parameter --region dan tetapkan nilainya ke region yang didukung. Dataflow akan otomatis memilih zona di region yang Anda tentukan. Jika Anda menentukan parameter --zone dan menetapkannya ke zona di luar region yang tersedia, Dataflow akan melaporkan error.

Streaming Engine berfungsi paling baik dengan jenis mesin pekerja yang memiliki lebih sedikit vCPU. Gunakan jenis tugas untuk menentukan apakah akan menggunakan jenis mesin pekerja dengan memori tinggi. Contoh jenis mesin yang kami rekomendasikan mencakup jenis mesin 2 vCPU, seperti --workerMachineType=n4-standard-2 atau --workerMachineType=n4-highmem-2. Anda juga dapat menetapkan --disk_size_gb=30 karena Streaming Engine hanya memerlukan ruang untuk image boot pekerja dan log lokal. Nilai ini adalah nilai default.

gcloud CLI

Saat Anda menjalankan pipeline menggunakan gcloud dataflow jobs run perintah atau gcloud dataflow flex-template run perintah, untuk mengaktifkan Streaming Engine, gunakan flag berikut:

--enable-streaming-engine

Untuk menonaktifkan streaming engine, gunakan flag berikut:

--additional-experiments=disable_streaming_engine

REST

Saat Anda menjalankan pipeline menggunakan projects.locations.jobs.create metode di REST API, gunakan resource Job untuk mengaktifkan atau menonaktifkan Streaming Engine. Untuk mengaktifkan Streaming Engine, di bagian environment, tetapkan kolom experiments ke enable_streaming_engine:

"environment": {
          "experiments": "enable_streaming_engine"
      }

Untuk menonaktifkan Streaming Engine, di bagian environment, tetapkan kolom experiments ke disable_streaming_engine:

"environment": {
          "experiments": "disable_streaming_engine"
      }

Harga

Streaming Engine Dataflow menawarkan model penagihan berbasis resource yang menagih Anda untuk total resource yang digunakan oleh tugas Anda. Dengan penagihan berbasis resource, resource Streaming Engine yang digunakan oleh tugas Anda diukur dan dihitung dalam Unit Komputasi Streaming Engine. Anda akan ditagih untuk CPU pekerja, memori pekerja, dan Unit Komputasi Streaming Engine.

Menggunakan penagihan berbasis resource

Untuk menggunakan penagihan berbasis resource, saat Anda memulai atau memperbarui tugas, sertakan opsi layanan Dataflow berikut.

Java

--dataflowServiceOptions=enable_streaming_engine_resource_based_billing

Python

--dataflow_service_options=enable_streaming_engine_resource_based_billing

Go

--dataflow_service_options=enable_streaming_engine_resource_based_billing

Penagihan data yang diproses (lama)

Kecuali jika Anda mengaktifkan penagihan berbasis resource, tugas Anda akan ditagih menggunakan penagihan data yang diproses lama.

Memverifikasi model penagihan

Kecuali jika Anda menggunakan Dataflow Prime, jika Anda memiliki tugas yang menggunakan penagihan berbasis resource, tagihan akan menyertakan SKU Streaming Engine Compute Unit. Jika Anda memiliki tugas yang menggunakan penagihan data yang diproses, tagihan akan menyertakan SKU Streaming Engine data processed. Jika Anda memiliki beberapa tugas yang menggunakan penagihan berbasis resource dan tugas lain yang menggunakan penagihan data yang diproses, tagihan akan menyertakan kedua SKU tersebut.

Jika Anda menggunakan Dataflow Prime dengan penagihan berbasis resource, SKU Unit Komputasi Data (DCU) akan digunakan.

Untuk melihat model harga yang digunakan tugas Anda, di antarmuka pemantauan Dataflow, pilih tugas Anda. Jika tugas Anda menggunakan penagihan berbasis resource, panel samping Info tugas akan menyertakan kolom Streaming Engine Compute Units.

Jika Anda memiliki pertanyaan tentang penagihan, hubungi Layanan Pelanggan Cloud.