Template Spanner ke BigQuery adalah pipeline batch yang membaca data dari tabel Spanner dan menulis data ke BigQuery.
Persyaratan pipeline
- Tabel Spanner sumber harus ada sebelum menjalankan pipeline.
- Set data BigQuery harus ada sebelum menjalankan pipeline.
- File JSON yang mendeskripsikan skema BigQuery Anda.
File harus berisi array JSON level atas yang berjudul
fields
. Konten arrayfields
harus menggunakan pola berikut:{"name": "COLUMN_NAME", "type": "DATA_TYPE"}
.JSON berikut menjelaskan contoh skema BigQuery:
{ "fields": [ { "name": "location", "type": "STRING" }, { "name": "name", "type": "STRING" }, { "name": "age", "type": "STRING" }, { "name": "color", "type": "STRING" }, { "name": "coffee", "type": "STRING" } ] }
Template Spanner ke batch batch tidak mendukung pengimporan data ke kolom
STRUCT
(Record) dalam tabel BigQuery target.
Parameter template
Parameter | Deskripsi |
---|---|
spannerInstanceId |
ID instance database Spanner yang akan dibaca. |
spannerDatabaseId |
ID database dari database Spanner yang akan diekspor. |
spannerTableId |
Nama tabel database Spanner yang akan diekspor. |
sqlQuery |
Kueri SQL yang akan digunakan untuk membaca data dari database Spanner. |
outputTableSpec |
Tabel BigQuery yang menjadi tujuan penulisan. Misalnya <project>:<dataset>.<table_name> . |
spannerProjectId |
Opsional: ID project tempat database Spanner berada. Nilai default untuk parameter ini adalah project tempat pipeline Dataflow berjalan. |
spannerRpcPriority |
Opsional: Prioritas permintaan
untuk panggilan Spanner. Nilai yang mungkin adalah HIGH ,
MEDIUM , dan LOW . Nilai defaultnya adalah
HIGH . |
bigQuerySchemaPath |
Opsional: Jalur Cloud Storage (gs:// ) ke file JSON yang menentukan skema BigQuery Anda.
Contoh, gs://path/to/my/schema.json . |
writeDisposition |
Opsional: BigQuery WriteDisposition .
Nilai yang didukung adalah WRITE_APPEND , WRITE_EMPTY , dan WRITE_TRUNCATE . Nilai defaultnya adalah WRITE_APPEND . |
createDisposition |
Opsional: BigQuery CreateDisposition .
Nilai yang didukung adalah CREATE_IF_NEEDED dan CREATE_NEVER . Nilai defaultnya adalah CREATE_IF_NEEDED . |
useStorageWriteApi |
Opsional:
Jika true , pipeline akan menggunakan
BigQuery Storage Write API. Nilai defaultnya adalah false . Untuk informasi selengkapnya, lihat
Menggunakan Storage Write API.
|
useStorageWriteApiAtLeastOnce |
Opsional:
Saat menggunakan Storage Write API, menentukan semantik penulisan. Untuk menggunakan
semantik minimal satu kali, tetapkan parameter ini ke true . Untuk menggunakan semantik tepat satu kali,
tetapkan parameter ke false . Parameter ini hanya berlaku jika useStorageWriteApi adalah true . Nilai defaultnya adalah false .
|
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 Spanner to BigQuery 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/Cloud_Spanner_to_BigQuery_Flex \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ spannerInstanceId=SPANNER_INSTANCE_ID,\ spannerDatabaseId=SPANNER_DATABASE_ID,\ spannerTableId=SPANNER_TABLE_ID,\ sqlQuery=SQL_QUERY,\ outputTableSpec=OUTPUT_TABLE_SPEC,\
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_ID
: ID database SpannerSPANNER_TABLE_ID
: nama tabel SpannerSQL_QUERY
: kueri SQLOUTPUT_TABLE_SPEC
: lokasi tabel BigQuery
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 { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "spannerInstanceId": "SPANNER_INSTANCE_ID", "spannerDatabaseId": "SPANNER_DATABASE_ID", "spannerTableId": "SPANNER_TABLE_ID", "sqlQuery": "SQL_QUERY", "outputTableSpec": "OUTPUT_TABLE_SPEC", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Cloud_Spanner_to_BigQuery_Flex", "environment": { "maxWorkers": "10" } } }
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_ID
: ID database SpannerSPANNER_TABLE_ID
: nama tabel SpannerSQL_QUERY
: kueri SQLOUTPUT_TABLE_SPEC
: lokasi tabel BigQuery
Langkah selanjutnya
- Pelajari Template Dataflow.
- Lihat daftar template yang disediakan Google.