Ketersediaan tinggi streaming

Secara default, tugas streaming Dataflow menjalankan beberapa resource backend-nya di satu zona Compute Engine, sehingga tugas tersebut rentan terhadap kehilangan data selama pemadaman layanan zona. Ketersediaan tinggi streaming menjadikan tugas Streaming Engine sebagai resource regional dengan mereplikasi status backend di beberapa zona dalam region. Saat Anda mengaktifkan ketersediaan tinggi streaming, kegagalan zona tunggal tidak akan menyebabkan tugas streaming Anda berhenti.

Dukungan dan batasan

Ketersediaan tinggi streaming memiliki persyaratan dan batasan berikut:

  • Streaming Engine diperlukan: Tugas harus berupa pipeline streaming yang menggunakan Streaming Engine.
  • Penempatan pekerja regional diperlukan: Pekerja Compute Engine harus menggunakan penempatan regional. Jika tugas hanya memiliki worker di zona tertentu dan zona tersebut menjadi tidak tersedia, tugas tidak dapat memproses data karena worker-nya tidak tersedia, meskipun status backend direplikasi. Oleh karena itu, Dataflow menolak tugas yang menentukan zona pekerja tertentu (seperti --workerZone, --worker_zone, atau --zone) saat ketersediaan tinggi streaming diaktifkan.
  • Hanya dikonfigurasi saat pembuatan tugas: Anda hanya dapat mengaktifkan ketersediaan tinggi streaming saat memulai tugas baru. Anda tidak dapat mengaktifkan atau menonaktifkan ketersediaan tinggi streaming saat melakukan update pipeline di tempat. Untuk mengubah setelan ini pada pipeline yang sedang berjalan, lakukan update penghentian dan penggantian otomatis, atau hentikan atau kosongkan pipeline dan mulai tugas baru tanpa flag --update.
  • Jeda watermark tambahan: Saat Anda mengaktifkan ketersediaan tinggi streaming, watermark tugas hanya akan maju setelah data diproses dan direplikasi di seluruh zona. Karena watermark menunggu replikasi lintas zona, Anda mungkin melihat beberapa detik jeda watermark tambahan.
  • Penagihan berbasis resource diperlukan: Tugas ketersediaan tinggi streaming selalu menggunakan penagihan berbasis resource dan tidak pernah menggunakan penagihan berbasis data yang diproses. Meskipun tugas menggunakan penagihan berbasis resource, tidak ada biaya tambahan untuk streaming ketersediaan tinggi selama Pratinjau; untuk mengetahui informasi selengkapnya, lihat Harga.

Mengaktifkan ketersediaan tinggi streaming

Untuk mengaktifkan ketersediaan tinggi streaming saat Anda meluncurkan tugas streaming Dataflow baru, tetapkan opsi layanan requires_high_availability.

Java

--dataflowServiceOptions=requires_high_availability

Python

--dataflow_service_options=requires_high_availability

Go

--dataflow_service_options=requires_high_availability

gcloud

Saat Anda menjalankan template menggunakan perintah gcloud dataflow jobs run atau Template Flex menggunakan perintah gcloud dataflow flex-template run, sertakan flag --enable-streaming-engine dan --additional-experiments:

--enable-streaming-engine \
--additional-experiments=requires_high_availability

Misalnya, untuk menjalankan Template Flex dengan ketersediaan tinggi streaming diaktifkan:

gcloud dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=TEMPLATE_LOCATION \
    --region=REGION \
    --parameters=KEY_1=VALUE_1,KEY_2=VALUE_2 \
    --enable-streaming-engine \
    --additional-experiments=requires_high_availability

Ganti nilai berikut:

  • JOB_NAME: nama tugas Dataflow Anda
  • PROJECT_ID: Project ID Google Cloud Anda
  • TEMPLATE_LOCATION: jalur Cloud Storage ke file spesifikasi Template Flex Anda
  • REGION: region tempat tugas berjalan
  • KEY_1=VALUE_1, KEY_2=VALUE_2: pasangan parameter nilai kunci untuk Template Fleksibel

Konsol

Untuk mengaktifkan ketersediaan tinggi streaming saat Anda menjalankan template atau Template Flex di konsol Google Cloud :

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

    Buka Tugas

  2. Klik Create job from template.

  3. Pilih template yang ingin Anda jalankan dari menu Dataflow template.

  4. Luaskan Optional parameters.

  5. Di kolom Additional experiments, masukkan requires_high_availability.

  6. Klik Jalankan tugas.

REST

Gunakan kolom additionalExperiments di objek RuntimeEnvironment, atau di objek FlexTemplateRuntimeEnvironment saat meluncurkan Template Flex:

{
  "additionalExperiments": ["requires_high_availability"]
}

Perilaku failover

Jika terjadi failover zona yang jarang terjadi, Anda mungkin akan melihat penurunan throughput selama beberapa detik hingga beberapa menit saat tugas beralih ke status utama baru dan membuat replika sekunder baru di zona lain. Failover terjadi secara otomatis tanpa menghapus data, dan Anda tidak perlu melakukan tindakan apa pun. Anda dapat melacak peristiwa failover menggunakan metrik yang dijelaskan dalam Memantau ketersediaan tinggi.

Sumber dan sink

Mengonfigurasi tugas Dataflow sebagai resource regional tidak otomatis membuat sumber dan tujuan tugas menjadi regional atau global. Sumber dan sink regional dan global berfungsi dengan baik dengan ketersediaan tinggi streaming, karena keduanya tidak bergantung pada satu zona. Ketersediaan setiap sumber atau tujuan bergantung pada konfigurasi layanan tersebut:

  • Banyak Google Cloud sumber dan tujuan, seperti Pub/Sub, BigQuery, dan Google Cloud Managed Service untuk Apache Kafka, menyediakan ketersediaan regional atau global secara default.
  • Jika Anda menggunakan sumber dan sink kustom atau yang dikelola sendiri, seperti Apache Kafka atau Apache Iceberg yang dihosting sendiri, Anda harus mengonfigurasi dan mengelola ketersediaan regionalnya secara independen.

Memantau ketersediaan tinggi

Anda dapat memantau status ketersediaan tinggi tugas di Cloud Monitoring menggunakan metrik dataflow.googleapis.com/job/high_availability_mode. Metrik pengukur boolean ini mencakup label status yang true untuk status tugas saat ini dan false untuk status lainnya. Label status memiliki kemungkinan nilai berikut:

  • Disabled: Ketersediaan tinggi streaming tidak diaktifkan untuk tugas ini.
  • Highly Available: Ketersediaan tinggi streaming diaktifkan dan status backend direplikasi di seluruh zona.
  • Establishing High Availability: Status backend sementara tidak direplikasi (misalnya, setelah kegagalan zona), tetapi replika sekunder baru sedang dibuat.

Saat Anda mengaktifkan ketersediaan tinggi streaming, metrik watermark Dataflow standar hanya akan maju setelah data diproses dan direplikasi di seluruh zona. Untuk mengetahui informasi selengkapnya tentang cara melihat metrik, lihat Menggunakan Monitoring.

Harga

Selama Pratinjau, tidak ada biaya tambahan untuk menggunakan ketersediaan tinggi streaming.

Pada ketersediaan umum (GA), penggunaan replikasi ditagih dengan tarif yang sama dengan penggunaan status utama. Penggunaan status diukur sebagai bagian dari Unit Komputasi Streaming Engine.

Langkah berikutnya