Template Cloud Storage ke Cloud Spanner
Gunakan template Dataproc Serverless Cloud Storage ke Spanner untuk mengekstrak data dari Cloud Storage ke Spanner.
Menggunakan template
Jalankan template menggunakan gcloud CLI atau Dataproc API.
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PROJECT_ID: Wajib diisi. Project ID Google Cloud Anda yang tercantum di Setelan IAM.
- REGION: Wajib diisi. Region Compute Engine.
- SUBNET: Opsional. Jika subnet tidak ditentukan, subnet di WILAYAH yang ditentukan dalam jaringan
default
akan dipilih.Contoh:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- TEMPLATE_VERSION: Wajib diisi. Tentukan
latest
untuk versi template terbaru, atau tanggal versi tertentu, misalnya,2023-03-17_v0.1.0-beta
(kunjungi gs://dataproc-templates-binaries atau jalankangsutil ls gs://dataproc-templates-binaries
untuk mencantumkan versi template yang tersedia). - CLOUD_STORAGE_INPUT_PATH: Wajib diisi. Jalur Cloud Storage tempat data input akan dibaca.
Contoh:
gs://example-bucket/example-folder/
- FORMAT: Wajib diisi. Format data input. Opsi:
avro
,parquet
, atauorc
. Catatan: Jikaavro
, Anda harus menambahkan "file:///usr/lib/spark/external/spark-avro.jar
" ke kolom API atau flag gcloud CLIjars
.Contoh (awalan
file://
merujuk ke file jar Dataproc Serverless):--jars=file:///usr/lib/spark/external/spark-avro.jar,
[ ... stoples lainnya] - INSTANCE: Wajib diisi. ID instance Spanner.
- DATABASE: Wajib diisi. ID database Spanner.
- TABLE: Wajib diisi. Nama tabel output Spanner.
- MODE: Opsional. Mode tulis untuk output Spanner.
Opsi:
Append
,Overwrite
,Ignore
, atauErrorifExists
. Nilai default-nya adalahErrorifExists
. - PRIMARY_KEY: Wajib diisi. Kolom kunci utama yang dipisahkan koma diperlukan saat membuat tabel output Spanner.
- BATCHSIZE: Opsional. Jumlah data yang akan disisipkan dalam satu perjalanan bolak-balik ke Tabel Spanner. Setelan defaultnya adalah 1.000.
- SERVICE_ACCOUNT: Opsional. Jika tidak disediakan, akun layanan Compute Engine default akan digunakan.
- PROPERTY dan PROPERTY_VALUE:
Opsional. Daftar pasangan Spark property=
value
yang dipisahkan koma. - LABEL dan LABEL_VALUE:
Opsional. Daftar pasangan
label
=value
yang dipisahkan koma. - LOG_LEVEL: Opsional. Level logging. Dapat berupa salah satu dari
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
, atauWARN
. Default:INFO
. -
KMS_KEY: Opsional. Kunci Cloud Key Management Service yang akan digunakan untuk enkripsi. Jika kunci tidak ditentukan, data akan dienkripsi dalam penyimpanan menggunakan kunci yang dikelola Google.
Contoh:
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud dataproc batches submit spark \ --class=com.google.cloud.dataproc.templates.main.DataProcTemplate \ --version="1.1" \ --project="PROJECT_ID" \ --region="REGION" \ --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" \ --subnet="SUBNET" \ --kms-key="KMS_KEY" \ --service-account="SERVICE_ACCOUNT" \ --properties="PROPERTY=PROPERTY_VALUE" \ --labels="LABEL=LABEL_VALUE" \ -- --template GCSTOSPANNER \ --templateProperty log.level="LOG_LEVEL" \ --templateProperty project.id="PROJECT_ID" \ --templateProperty gcs.spanner.input.format="FORMAT" \ --templateProperty gcs.spanner.input.location="CLOUD_STORAGE_INPUT_PATH" \ --templateProperty gcs.spanner.output.instance="INSTANCE" \ --templateProperty gcs.spanner.output.database="DATABASE" \ --templateProperty gcs.spanner.output.table="TABLE" \ --templateProperty gcs.spanner.output.saveMode="MODE" \ --templateProperty gcs.spanner.output.primaryKey="PRIMARY_KEY" \ --templateProperty gcs.spanner.output.batchInsertSize="BATCHSIZE"
Windows (PowerShell)
gcloud dataproc batches submit spark ` --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ` --version="1.1" ` --project="PROJECT_ID" ` --region="REGION" ` --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" ` --subnet="SUBNET" ` --kms-key="KMS_KEY" ` --service-account="SERVICE_ACCOUNT" ` --properties="PROPERTY=PROPERTY_VALUE" ` --labels="LABEL=LABEL_VALUE" ` -- --template GCSTOSPANNER ` --templateProperty log.level="LOG_LEVEL" ` --templateProperty project.id="PROJECT_ID" ` --templateProperty gcs.spanner.input.format="FORMAT" ` --templateProperty gcs.spanner.input.location="CLOUD_STORAGE_INPUT_PATH" ` --templateProperty gcs.spanner.output.instance="INSTANCE" ` --templateProperty gcs.spanner.output.database="DATABASE" ` --templateProperty gcs.spanner.output.table="TABLE" ` --templateProperty gcs.spanner.output.saveMode="MODE" ` --templateProperty gcs.spanner.output.primaryKey="PRIMARY_KEY" ` --templateProperty gcs.spanner.output.batchInsertSize="BATCHSIZE"
Windows (cmd.exe)
gcloud dataproc batches submit spark ^ --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ^ --version="1.1" ^ --project="PROJECT_ID" ^ --region="REGION" ^ --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" ^ --subnet="SUBNET" ^ --kms-key="KMS_KEY" ^ --service-account="SERVICE_ACCOUNT" ^ --properties="PROPERTY=PROPERTY_VALUE" ^ --labels="LABEL=LABEL_VALUE" ^ -- --template GCSTOSPANNER ^ --templateProperty log.level="LOG_LEVEL" ^ --templateProperty project.id="PROJECT_ID" ^ --templateProperty gcs.spanner.input.format="FORMAT" ^ --templateProperty gcs.spanner.input.location="CLOUD_STORAGE_INPUT_PATH" ^ --templateProperty gcs.spanner.output.instance="INSTANCE" ^ --templateProperty gcs.spanner.output.database="DATABASE" ^ --templateProperty gcs.spanner.output.table="TABLE" ^ --templateProperty gcs.spanner.output.saveMode="MODE" ^ --templateProperty gcs.spanner.output.primaryKey="PRIMARY_KEY" ^ --templateProperty gcs.spanner.output.batchInsertSize="BATCHSIZE"
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Wajib diisi. Project ID Google Cloud Anda yang tercantum di Setelan IAM.
- REGION: Wajib diisi. Region Compute Engine.
- SUBNET: Opsional. Jika subnet tidak ditentukan, subnet di WILAYAH yang ditentukan dalam jaringan
default
akan dipilih.Contoh:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- TEMPLATE_VERSION: Wajib diisi. Tentukan
latest
untuk versi template terbaru, atau tanggal versi tertentu, misalnya,2023-03-17_v0.1.0-beta
(kunjungi gs://dataproc-templates-binaries atau jalankangsutil ls gs://dataproc-templates-binaries
untuk mencantumkan versi template yang tersedia). - CLOUD_STORAGE_INPUT_PATH: Wajib diisi. Jalur Cloud Storage tempat data input akan dibaca.
Contoh:
gs://example-bucket/example-folder/
- FORMAT: Wajib diisi. Format data input. Opsi:
avro
,parquet
, atauorc
. Catatan: Jikaavro
, Anda harus menambahkan "file:///usr/lib/spark/external/spark-avro.jar
" ke kolom API atau flag gcloud CLIjars
.Contoh (awalan
file://
merujuk ke file jar Dataproc Serverless):--jars=file:///usr/lib/spark/external/spark-avro.jar,
[ ... stoples lainnya] - INSTANCE: Wajib diisi. ID instance Spanner.
- DATABASE: Wajib diisi. ID database Spanner.
- TABLE: Wajib diisi. Nama tabel output Spanner.
- MODE: Opsional. Mode tulis untuk output Spanner.
Opsi:
Append
,Overwrite
,Ignore
, atauErrorifExists
. Nilai default-nya adalahErrorifExists
. - PRIMARY_KEY: Wajib diisi. Kolom kunci utama yang dipisahkan koma diperlukan saat membuat tabel output Spanner.
- BATCHSIZE: Opsional. Jumlah data yang akan disisipkan dalam satu perjalanan bolak-balik ke Tabel Spanner. Setelan defaultnya adalah 1.000.
- SERVICE_ACCOUNT: Opsional. Jika tidak disediakan, akun layanan Compute Engine default akan digunakan.
- PROPERTY dan PROPERTY_VALUE:
Opsional. Daftar pasangan Spark property=
value
yang dipisahkan koma. - LABEL dan LABEL_VALUE:
Opsional. Daftar pasangan
label
=value
yang dipisahkan koma. - LOG_LEVEL: Opsional. Level logging. Dapat berupa salah satu dari
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
, atauWARN
. Default:INFO
. -
KMS_KEY: Opsional. Kunci Cloud Key Management Service yang akan digunakan untuk enkripsi. Jika kunci tidak ditentukan, data akan dienkripsi dalam penyimpanan menggunakan kunci yang dikelola Google.
Contoh:
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Metode HTTP dan URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches
Meminta isi JSON:
{ "environmentConfig":{ "executionConfig":{ "subnetworkUri":"SUBNET", "kmsKey": "KMS_KEY", "serviceAccount": "SERVICE_ACCOUNT" } }, "labels": { "LABEL": "LABEL_VALUE" }, "runtimeConfig": { "version": "1.1", "properties": { "PROPERTY": "PROPERTY_VALUE" } }, "sparkBatch": { "mainClass": "com.google.cloud.dataproc.templates.main.DataProcTemplate", "args": [ "--template","GCSTOSPANNER", "--templateProperty","project.id=PROJECT_ID", "--templateProperty","log.level=LOG_LEVEL", "--templateProperty","gcs.spanner.input.format=FORMAT", "--templateProperty","gcs.spanner.input.location=CLOUD_STORAGE_INPUT_PATH", "--templateProperty","gcs.spanner.output.instance=INSTANCE", "--templateProperty","gcs.spanner.output.database=DATABASE", "--templateProperty","gcs.spanner.output.table=TABLE", "--templateProperty","gcs.spanner.output.saveMode=MODE", "--templateProperty","gcs.spanner.output.primaryKey=PRIMARY_KEY", "--templateProperty","gcs.spanner.output.batchInsertSize=BATCHSIZE" ], "jarFileUris":[ "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" ] } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "name": "projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.dataproc.v1.BatchOperationMetadata", "batch": "projects/PROJECT_ID/locations/REGION/batches/BATCH_ID", "batchUuid": "de8af8d4-3599-4a7c-915c-798201ed1583", "createTime": "2023-02-24T03:31:03.440329Z", "operationType": "BATCH", "description": "Batch" } }