Aliran data perubahan Spanner ke template Cloud Storage adalah pipeline streaming yang mengalirkan kumpulan data perubahan data Spanner dan menulisnya ke dalam bucket Cloud Storage menggunakan Dataflow Runner v2.
Pipeline mengelompokkan Spanner untuk mengubah data aliran data menjadi jendela berdasarkan stempel waktunya, dengan setiap jendela mewakili durasi waktu yang durasinya dapat Anda konfigurasi dengan template ini. Semua data dengan stempel waktu milik jendela dijamin berada di jendela; tidak ada kedatangan terlambat. Anda juga dapat menentukan jumlah shard output; pipeline membuat satu file output Cloud Storage per jendela per shard. Dalam file output, kumpulan data tidak diurutkan. File output dapat ditulis dalam format JSON atau AVRO, bergantung pada konfigurasi pengguna.
Perlu diperhatikan bahwa Anda dapat meminimalkan latensi jaringan dan biaya transportasi jaringan dengan menjalankan tugas Dataflow dari region yang sama dengan instance Spanner atau bucket Cloud Storage. Jika Anda menggunakan sumber, sink, lokasi file staging, atau lokasi file sementara yang berada di luar region tugas, data mungkin akan dikirim ke seluruh region. Lihat selengkapnya tentang Region Dataflow.
Pelajari lebih lanjut aliran perubahan, cara membuat pipeline Dataflow aliran perubahan, dan praktik terbaik.
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.
- Bucket output Cloud Storage harus ada sebelum menjalankan pipeline.
Parameter template
Parameter | Deskripsi |
---|---|
spannerInstanceId |
ID instance Spanner untuk membaca data aliran data perubahan. |
spannerDatabase |
Database Spanner tempat data aliran data perubahan akan 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 |
ID 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. |
gcsOutputDirectory |
Lokasi file untuk output aliran data perubahan di Cloud Storage dalam format: 'gs://${BUCKET}/${ROOT_PATH}/'. |
outputFilenamePrefix |
(Opsional) Awalan nama file yang menjadi tujuan penulisan. Awalan file default ditetapkan ke "output". |
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 berjalan. |
startTimestamp |
(Opsional) DateTime awal, inklusif, digunakan untuk membaca aliran perubahan. Ex-2021-10-12T07:20:50.52Z. Default-nya adalah stempel waktu saat pipeline dimulai, yaitu waktu saat ini. |
endTimestamp |
(Opsional) DateTime akhir, inklusif, digunakan untuk membaca aliran perubahan. Ex-2021-10-12T07:20:50.52Z. Setelan defaultnya adalah waktu tak terbatas di masa mendatang. |
outputFileFormat |
(Opsional) Format file Cloud Storage output. Format yang diizinkan adalah TEXT, AVRO. Defaultnya adalah AVRO. |
windowDuration |
(Opsional) Durasi jendela adalah interval saat data ditulis ke direktori output. Konfigurasikan durasi berdasarkan throughput pipeline. Misalnya, throughput yang lebih tinggi mungkin memerlukan ukuran jendela yang lebih kecil agar data sesuai dengan memori. Defaultnya adalah 5 m, dengan minimum 1 dtk. Format yang diizinkan adalah: [int]s (untuk detik, contoh: 5s), [int]m (untuk menit, contoh: 12m), [int]h (untuk jam, contoh: 2h). |
rpcPriority |
(Opsional) Prioritas permintaan untuk panggilan Spanner. Nilai harus salah satu dari:[High,MEDIUM,LOW]. (Default: TINGGI) |
numShards |
(Opsional) Jumlah maksimum shard output yang dihasilkan saat menulis. Angka defaultnya adalah 20. Jumlah shard yang lebih tinggi berarti throughput yang lebih tinggi untuk penulisan ke Cloud Storage, tetapi kemungkinan biaya agregasi data di seluruh shard lebih tinggi saat memproses file Cloud Storage output |
spannerMetadataTableName |
(Opsional) Spanner mengubah nama tabel metadata konektor aliran data yang akan digunakan. Jika tidak disediakan, tabel metadata aliran data perubahan Spanner akan otomatis dibuat selama alur pipeline. Parameter ini harus diberikan saat memperbarui pipeline yang ada dan tidak boleh diberikan jika tidak. |
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 Google Cloud Storage 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_Google_Cloud_Storage \ --region REGION_NAME \ --parameters \ spannerInstanceId=SPANNER_INSTANCE_ID,\ spannerDatabase=SPANNER_DATABASE,\ spannerMetadataInstanceId=SPANNER_METADATA_INSTANCE_ID,\ spannerMetadataDatabase=SPANNER_METADATA_DATABASE,\ spannerChangeStreamName=SPANNER_CHANGE_STREAM,\ gcsOutputDirectory=GCS_OUTPUT_DIRECTORY
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 Cloud SpannerSPANNER_DATABASE
: Database Cloud SpannerSPANNER_METADATA_INSTANCE_ID
: ID instance metadata Cloud SpannerSPANNER_METADATA_DATABASE
: Database metadata Cloud SpannerSPANNER_CHANGE_STREAM
: Aliran data perubahan Cloud SpannerGCS_OUTPUT_DIRECTORY
: Lokasi file untuk output aliran 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", "gcsOutputDirectory": "GCS_OUTPUT_DIRECTORY" }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Spanner_Change_Streams_to_Google_Cloud_Storage", } }
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 Cloud SpannerSPANNER_DATABASE
: Database Cloud SpannerSPANNER_METADATA_INSTANCE_ID
: ID instance metadata Cloud SpannerSPANNER_METADATA_DATABASE
: Database metadata Cloud SpannerSPANNER_CHANGE_STREAM
: Aliran data perubahan Cloud SpannerGCS_OUTPUT_DIRECTORY
: Lokasi file untuk output aliran perubahan
Langkah selanjutnya
- Pelajari Template Dataflow.
- Lihat daftar template yang disediakan Google.