Template Cloud Storage ke Cloud Spanner
Gunakan template Cloud Storage ke Spanner Managed Service untuk Apache Spark guna mengekstrak data dari Cloud Storage ke Spanner.
Menggunakan template
Jalankan template menggunakan gcloud CLI atau Managed Service untuk Apache Spark API.
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PROJECT_ID: Wajib diisi. Project ID Anda yang tercantum di Setelan IAM. Google Cloud
- REGION: Wajib diisi. Region Compute Engine.
- SUBNET: Opsional. Jika subnet tidak ditentukan, subnet
di REGION yang ditentukan dalam jaringan
defaultakan dipilih.Contoh:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME - TEMPLATE_VERSION: Wajib diisi. Tentukan
latestuntuk versi template terbaru, atau tanggal versi tertentu, misalnya,2023-03-17_v0.1.0-beta(buka gs://templates-binaries atau jalankangcloud storage ls gs://templates-binariesuntuk 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/connector/spark-avro.jar" ke flag gcloud CLIjarsatau kolom API.Contoh (awalan
file://mereferensikan file jar Managed Service untuk Apache Spark):--jars=file:///usr/lib/spark/connector/spark-avro.jar,[ ... jar lainnya] - INSTANCE: Wajib diisi. ID instance Spanner.
- DATABASE: Wajib diisi. ID database Spanner.
- TABLE: Wajib diisi. Nama tabel output Spanner.
- SPANNER_JDBC_DIALECT: Wajib diisi. Dialek JDBC Spanner.
Opsi:
googlesqlataupostgresql. Setelan defaultnya adalahgooglesql. - MODE: Opsional. Mode tulis untuk output Spanner.
Opsi:
Append,Overwrite,Ignore, atauErrorifExists. Setelan defaultnya adalahErrorifExists. - PRIMARY_KEY: Wajib diisi. Kolom kunci utama yang dipisahkan koma diperlukan saat membuat tabel output Spanner.
- BATCHSIZE: Opsional. Jumlah rekaman yang akan disisipkan dalam satu perjalanan pulang pergi 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 properti Spark=nilai yang dipisahkan koma.
value - LABEL dan LABEL_VALUE:
Opsional. Daftar pasangan
label=valueyang dipisahkan koma. - LOG_LEVEL: Opsional. Tingkat 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 saat tidak aktif menggunakan Google-owned and Google-managed encryption key.
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.2" \ --project="PROJECT_ID" \ --region="REGION" \ --jars="gs://templates-binaries/TEMPLATE_VERSION/java/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" \ --templateProperty spanner.jdbc.dialect="SPANNER_JDBC_DIALECT"
Windows (PowerShell)
gcloud dataproc batches submit spark ` --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ` --version="1.2" ` --project="PROJECT_ID" ` --region="REGION" ` --jars="gs://templates-binaries/TEMPLATE_VERSION/java/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" ` --templateProperty spanner.jdbc.dialect="SPANNER_JDBC_DIALECT"
Windows (cmd.exe)
gcloud dataproc batches submit spark ^ --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ^ --version="1.2" ^ --project="PROJECT_ID" ^ --region="REGION" ^ --jars="gs://templates-binaries/TEMPLATE_VERSION/java/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" ^ --templateProperty spanner.jdbc.dialect="SPANNER_JDBC_DIALECT"
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Wajib diisi. Project ID Anda yang tercantum di Setelan IAM. Google Cloud
- REGION: Wajib diisi. Region Compute Engine.
- SUBNET: Opsional. Jika subnet tidak ditentukan, subnet
di REGION yang ditentukan dalam jaringan
defaultakan dipilih.Contoh:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME - TEMPLATE_VERSION: Wajib diisi. Tentukan
latestuntuk versi template terbaru, atau tanggal versi tertentu, misalnya,2023-03-17_v0.1.0-beta(buka gs://templates-binaries atau jalankangcloud storage ls gs://templates-binariesuntuk 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/connector/spark-avro.jar" ke flag gcloud CLIjarsatau kolom API.Contoh (awalan
file://mereferensikan file jar Managed Service untuk Apache Spark):--jars=file:///usr/lib/spark/connector/spark-avro.jar,[ ... jar lainnya] - INSTANCE: Wajib diisi. ID instance Spanner.
- DATABASE: Wajib diisi. ID database Spanner.
- TABLE: Wajib diisi. Nama tabel output Spanner.
- SPANNER_JDBC_DIALECT: Wajib diisi. Dialek JDBC Spanner.
Opsi:
googlesqlataupostgresql. Setelan defaultnya adalahgooglesql. - MODE: Opsional. Mode tulis untuk output Spanner.
Opsi:
Append,Overwrite,Ignore, atauErrorifExists. Setelan defaultnya adalahErrorifExists. - PRIMARY_KEY: Wajib diisi. Kolom kunci utama yang dipisahkan koma diperlukan saat membuat tabel output Spanner.
- BATCHSIZE: Opsional. Jumlah rekaman yang akan disisipkan dalam satu perjalanan pulang pergi 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 properti Spark=nilai yang dipisahkan koma.
value - LABEL dan LABEL_VALUE:
Opsional. Daftar pasangan
label=valueyang dipisahkan koma. - LOG_LEVEL: Opsional. Tingkat 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 saat tidak aktif menggunakan Google-owned and Google-managed encryption key.
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.2",
"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",
"--templateProperty spanner.jdbc.dialect=SPANNER_JDBC_DIALECT"
],
"jarFileUris":[
"gs://templates-binaries/TEMPLATE_VERSION/java/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"
}
}