File Teks di Cloud Storage ke template Pub/Sub (Stream)

Template ini membuat pipeline streaming yang terus-menerus melakukan polling untuk file teks baru yang diupload ke Cloud Storage, membaca setiap file baris demi baris, dan memublikasikan string ke topik Pub/Sub. Template ini memublikasikan data dalam file baru yang dibatasi baris baru yang berisi data JSON atau file CSV ke topik Pub/Sub untuk pemrosesan real-time. Anda dapat menggunakan template ini untuk memutar ulang data ke Pub/Sub.

Pipeline berjalan tanpa batas waktu dan harus dihentikan secara manual melalui 'cancel', bukan 'drain', karena penggunaan transformasi 'Watch', yang merupakan 'SplittableDoFn' yang tidak mendukung pengosongan.

Saat ini, interval polling tetap dan disetel ke 10 detik. Template ini tidak menetapkan stempel waktu apa pun pada masing-masing record, sehingga waktu peristiwa sama dengan waktu publikasi selama eksekusi. Jika pipeline Anda bergantung pada waktu peristiwa yang akurat untuk pemrosesan, Anda sebaiknya tidak menggunakan pipeline ini.

Persyaratan pipeline

  • File input harus dalam format JSON atau CSV yang dipisahkan baris baru. Kumpulan data yang mencakup beberapa baris dalam file sumber dapat menyebabkan masalah downstream, karena setiap baris dalam file dipublikasikan sebagai pesan ke Pub/Sub.
  • Topik Pub/Sub harus ada sebelum dieksekusi.
  • Pipeline berjalan tanpa batas waktu dan harus dihentikan secara manual.

Parameter template

Parameter Deskripsi
inputFilePattern Pola file input yang akan dibaca. Misalnya, gs://bucket-name/files/*.json atau gs://bucket-name/path/*.csv.
outputTopic Topik input Pub/Sub yang akan ditulis. Nama harus dalam format projects/<project-id>/topics/<topic-name>.

Menjalankan template

Konsol

  1. Buka halaman Create job from template Dataflow.
  2. Buka Buat tugas dari template
  3. Di kolom Job name, masukkan nama pekerjaan yang unik.
  4. Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region default-nya adalah us-central1.

    Untuk daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.

  5. Dari menu drop-down Dataflow template, pilih the Text Files on Cloud Storage to Pub/Sub (Stream) template.
  6. Di kolom parameter yang disediakan, masukkan parameter value Anda.
  7. Opsional: Untuk beralih dari pemrosesan tepat satu kali ke mode streaming minimal satu kali, pilih Minimal Sekali.
  8. Klik Run job.

gcloud

Di shell atau terminal Anda, jalankan template:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Stream_GCS_Text_to_Cloud_PubSub \
    --region REGION_NAME\
    --staging-location STAGING_LOCATION\
    --parameters \
inputFilePattern=gs://BUCKET_NAME/FILE_PATTERN,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME

Ganti kode berikut:

  • JOB_NAME: nama pekerjaan unik pilihan Anda
  • REGION_NAME: region tempat Anda ingin men-deploy tugas Dataflow, misalnya us-central1
  • STAGING_LOCATION: lokasi untuk staging file lokal (misalnya, gs://your-bucket/staging)
  • TOPIC_NAME: nama topik Pub/Sub Anda
  • BUCKET_NAME: nama bucket Cloud Storage Anda
  • FILE_PATTERN: glob pola file untuk dibaca dalam bucket Cloud Storage (misalnya, path/*.csv)

API

Untuk menjalankan template menggunakan REST API, kirim permintaan HTTP POST. Untuk informasi selengkapnya tentang API dan cakupan otorisasinya, lihat projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Stream_GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "environment": {
       "ipConfiguration": "WORKER_IP_UNSPECIFIED",
       "additionalExperiments": []
    },
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/FILE_PATTERN",
       "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME"
   }
}

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud tempat Anda ingin menjalankan tugas Dataflow
  • JOB_NAME: nama pekerjaan unik pilihan Anda
  • LOCATION: region tempat Anda ingin men-deploy tugas Dataflow, misalnya us-central1
  • STAGING_LOCATION: lokasi untuk staging file lokal (misalnya, gs://your-bucket/staging)
  • TOPIC_NAME: nama topik Pub/Sub Anda
  • BUCKET_NAME: nama bucket Cloud Storage Anda
  • FILE_PATTERN: glob pola file untuk dibaca dalam bucket Cloud Storage (misalnya, path/*.csv)

Langkah selanjutnya