Aliran data perubahan Spanner ke template Pub/Sub adalah pipeline streaming yang mengalirkan catatan perubahan data Spanner dan menulisnya ke dalam topik Pub/Sub menggunakan Dataflow Runner V2.
Untuk menghasilkan data ke topik Pub/Sub baru, Anda harus membuat topik terlebih dahulu. Setelah dibuat, Pub/Sub otomatis membuat dan melampirkan langganan ke topik baru. Jika Anda mencoba meng-output data ke topik Pub/Sub yang tidak ada, pipeline dataflow akan menampilkan pengecualian, dan pipeline akan macet karena terus-menerus mencoba membuat koneksi.
Jika topik Pub/Sub yang diperlukan sudah ada, Anda dapat menghasilkan output data ke topik tersebut.
Untuk mengetahui informasi selengkapnya, lihat Tentang aliran perubahan, Membangun koneksi aliran data perubahan dengan Dataflow, dan Praktik terbaik aliran perubahan.
Persyaratan pipeline
- Instance Spanner harus ada sebelum menjalankan pipeline.
- Database Spanner harus ada sebelum menjalankan pipeline.
- Instance metadata Spanner harus ada sebelum menjalankan pipeline.
- Database metadata Spanner harus ada sebelum menjalankan pipeline.
- Aliran data perubahan Spanner harus ada sebelum menjalankan pipeline.
- Topik Pub/Sub harus ada sebelum menjalankan pipeline.
Parameter template
Parameter | Deskripsi |
---|---|
spannerInstanceId |
Instance Spanner yang akan membaca aliran perubahan. |
spannerDatabase |
Database Spanner tempat aliran data perubahan dibaca. |
spannerDatabaseRole |
(Opsional) Peran database Spanner yang akan digunakan saat menjalankan template. Parameter ini hanya diperlukan jika akun utama IAM yang menjalankan template adalah pengguna kontrol akses yang sangat terperinci. Peran database harus memiliki hak istimewa SELECT di aliran perubahan dan hak istimewa EXECUTE pada fungsi baca aliran data perubahan. Untuk mengetahui informasi selengkapnya, lihat
Kontrol akses terperinci untuk aliran perubahan. |
spannerMetadataInstanceId |
Instance Spanner yang akan digunakan untuk tabel metadata konektor aliran data perubahan. |
spannerMetadataDatabase |
Database Spanner yang akan digunakan untuk tabel metadata konektor aliran data perubahan. |
spannerChangeStreamName |
Nama aliran data perubahan Spanner yang akan dibaca. |
pubsubTopic |
Topik Pub/Sub untuk output aliran data perubahan. |
spannerProjectId |
(Opsional) Project untuk membaca aliran perubahan. Ini juga merupakan project tempat tabel metadata konektor aliran data perubahan dibuat. Default untuk parameter ini adalah project tempat pipeline Dataflow dijalankan. |
spannerMetadataTableName |
(Opsional) Spanner mengubah nama tabel metadata konektor aliran data yang akan digunakan. Jika tidak disediakan, Spanner akan otomatis membuat tabel metadata konektor aliran data selama perubahan alur pipeline. Anda harus memberikan parameter ini saat memperbarui pipeline yang ada. Jangan gunakan parameter ini untuk kasus lainnya. |
rpcPriority |
(Opsional) Prioritas permintaan untuk panggilan Spanner. Nilai harus salah satu dari: [high,MEDIUM,LOW]. (Default: TINGGI) |
startTimestamp |
(Opsional) DateTime awal, inklusif, yang akan digunakan untuk membaca aliran perubahan. Misalnya, ex-2021-10-12T07:20:50.52Z. Setelan defaultnya adalah stempel waktu saat pipeline dimulai, yaitu waktu saat ini. |
endTimestamp |
(Opsional) DateTime akhir, inklusif, yang akan digunakan untuk membaca aliran perubahan. Misalnya, ex-2021-10-12T07:20:50.52Z. Setelan defaultnya adalah waktu tak terbatas di masa mendatang. |
outputFileFormat |
(Opsional) Format output. Output digabungkan dalam banyak PubsubMessage dan dikirim ke topik Pub/Sub. Format yang diizinkan adalah JSON dan AVRO. Defaultnya adalah JSON. |
pubsubAPI |
(Opsional) Pub/Sub API yang digunakan untuk menerapkan pipeline. API yang diizinkan adalah
pubsubio
dan native_client . Untuk sejumlah kecil kueri per detik (QPS),
native_client memiliki latensi yang lebih rendah. Untuk QPS dalam jumlah besar, pubsubio
memberikan performa yang lebih baik dan stabil. Defaultnya adalah pubsubio . |
Menjalankan template
Konsol
- Buka halaman Create job from template Dataflow. Buka Buat tugas dari template
- Di kolom Job name, masukkan nama pekerjaan yang unik.
- 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.
- Dari menu drop-down Dataflow template, pilih the Cloud Spanner change streams to Pub/Sub template.
- Di kolom parameter yang disediakan, masukkan parameter value Anda.
- Klik Run job.
gcloud
Di shell atau terminal Anda, jalankan template:
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Spanner_Change_Streams_to_PubSub \ --region REGION_NAME \ --parameters \ spannerInstanceId=SPANNER_INSTANCE_ID,\ spannerDatabase=SPANNER_DATABASE,\ spannerMetadataInstanceId=SPANNER_METADATA_INSTANCE_ID,\ spannerMetadataDatabase=SPANNER_METADATA_DATABASE,\ spannerChangeStreamName=SPANNER_CHANGE_STREAM,\ pubsubTopic=PUBSUB_TOPIC
Ganti kode berikut:
JOB_NAME
: nama pekerjaan unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi terbaru template, yang tersedia di folder induk tidak bertanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk bertanggal masing-masing dalam bucket— gs://dataflow-templates-REGION_NAME/
REGION_NAME
: region tempat Anda ingin men-deploy tugas Dataflow, misalnyaus-central1
SPANNER_INSTANCE_ID
: ID instance SpannerSPANNER_DATABASE
: Database SpannerSPANNER_METADATA_INSTANCE_ID
: ID instance metadata SpannerSPANNER_METADATA_DATABASE
: Database metadata SpannerSPANNER_CHANGE_STREAM
: Aliran data perubahan SpannerPUBSUB_TOPIC
: Topik Pub/Sub untuk output aliran data perubahan
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/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "spannerInstanceId": "SPANNER_INSTANCE_ID", "spannerDatabase": "SPANNER_DATABASE", "spannerMetadataInstanceId": "SPANNER_METADATA_INSTANCE_ID", "spannerMetadataDatabase": "SPANNER_METADATA_DATABASE", "spannerChangeStreamName": "SPANNER_CHANGE_STREAM", "pubsubTopic": "PUBSUB_TOPIC" }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Spanner_Change_Streams_to_PubSub", } }
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama pekerjaan unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi terbaru template, yang tersedia di folder induk tidak bertanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk bertanggal masing-masing dalam bucket— gs://dataflow-templates-REGION_NAME/
LOCATION
: region tempat Anda ingin men-deploy tugas Dataflow, misalnyaus-central1
SPANNER_INSTANCE_ID
: ID instance SpannerSPANNER_DATABASE
: Database SpannerSPANNER_METADATA_INSTANCE_ID
: ID instance metadata SpannerSPANNER_METADATA_DATABASE
: Database metadata SpannerSPANNER_CHANGE_STREAM
: Aliran data perubahan SpannerPUBSUB_TOPIC
: Topik Pub/Sub untuk output aliran data perubahan
Langkah selanjutnya
- Pelajari Template Dataflow.
- Lihat daftar template yang disediakan Google.