Template Cloud Storage ke Cloud Storage
Gunakan template Cloud Storage ke Cloud Storage Serverless Dataproc untuk mengekstrak data dari Cloud Storage ke Cloud Storage.
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. Google Cloud Project ID Anda yang tercantum di IAM Settings.
- REGION: Wajib diisi. Region Compute Engine.
- SUBNET: Opsional. Jika subnet tidak ditentukan, subnet
di REGION 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
(buka gs://dataproc-templates-binaries atau jalankangcloud storage 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/connector/spark-avro.jar
" ke kolom API atau flag gcloud CLIjars
.Contoh (awalan
file://
mereferensikan file jar Dataproc Serverless):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars] -
CLOUD_STORAGE_OUTPUT_PATH:
Wajib diisi. Jalur Cloud Storage tempat output akan disimpan.
Contoh:
gs://example-bucket/example-folder/
-
OUTPUT_FILE_FORMAT:
Wajib diisi. Format data output. Opsi:
avro
,csv
parquet
,json
, atauorc
. Catatan: Jikaavro
, Anda harus menambahkan "file:///usr/lib/spark/connector/spark-avro.jar
" ke kolom API atau flag gcloud CLIjars
.Contoh (awalan
file://
mereferensikan file jar Dataproc Serverless):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars] -
MODE:
Wajib diisi. Mode tulis untuk output Cloud Storage.
Opsi:
Append
,Overwrite
,Ignore
, atauErrorIfExists
. - TEMP_TABLE dan TEMP_QUERY: Opsional. Anda dapat menggunakan dua parameter opsional ini untuk menerapkan transformasi Spark SQL saat memuat data ke Cloud Storage. TEMP_TABLE adalah nama tampilan sementara, dan TEMP_QUERY adalah pernyataan kueri. TEMP_TABLE dan nama tabel di TEMP_QUERY harus cocok.
- SERVICE_ACCOUNT: Opsional. Jika tidak diberikan, akun layanan Compute Engine default akan digunakan.
- PROPERTY dan PROPERTY_VALUE:
Opsional. Daftar yang dipisahkan koma dari
pasangan Properti Spark=
value
. - LABEL dan LABEL_VALUE:
Opsional. Daftar pasangan
label
=value
yang 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 dalam penyimpanan 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://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,file:///usr/lib/spark/connector/spark-avro.jar" \ --subnet="SUBNET" \ --kms-key="KMS_KEY" \ --service-account="SERVICE_ACCOUNT" \ --properties="PROPERTY=PROPERTY_VALUE" \ --labels="LABEL=LABEL_VALUE" \ -- --template=GCSTOGCS \ --templateProperty log.level="LOG_LEVEL" \ --templateProperty project.id="PROJECT_ID" \ --templateProperty gcs.gcs.input.location="CLOUD_STORAGE_INPUT_PATH" \ --templateProperty gcs.gcs.input.format="INPUT_FILE_FORMAT" \ --templateProperty gcs.gcs.output.location="CLOUD_STORAGE_OUTPUT_PATH" \ --templateProperty gcs.gcs.output.format="OUTPUT_FILE_FORMAT" \ --templateProperty gcs.gcs.write.mode="MODE" \ --templateProperty gcs.gcs.temp.table="TEMP_TABLE" \ --templateProperty gcs.gcs.temp.query="TEMP_QUERY"
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://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,file:///usr/lib/spark/connector/spark-avro.jar" ` --subnet="SUBNET" ` --kms-key="KMS_KEY" ` --service-account="SERVICE_ACCOUNT" ` --properties="PROPERTY=PROPERTY_VALUE" ` --labels="LABEL=LABEL_VALUE" ` -- --template=GCSTOGCS ` --templateProperty log.level="LOG_LEVEL" ` --templateProperty project.id="PROJECT_ID" ` --templateProperty gcs.gcs.input.location="CLOUD_STORAGE_INPUT_PATH" ` --templateProperty gcs.gcs.input.format="INPUT_FILE_FORMAT" ` --templateProperty gcs.gcs.output.location="CLOUD_STORAGE_OUTPUT_PATH" ` --templateProperty gcs.gcs.output.format="OUTPUT_FILE_FORMAT" ` --templateProperty gcs.gcs.write.mode="MODE" ` --templateProperty gcs.gcs.temp.table="TEMP_TABLE" ` --templateProperty gcs.gcs.temp.query="TEMP_QUERY"
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://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,file:///usr/lib/spark/connector/spark-avro.jar" ^ --subnet="SUBNET" ^ --kms-key="KMS_KEY" ^ --service-account="SERVICE_ACCOUNT" ^ --properties="PROPERTY=PROPERTY_VALUE" ^ --labels="LABEL=LABEL_VALUE" ^ -- --template=GCSTOGCS ^ --templateProperty log.level="LOG_LEVEL" ^ --templateProperty project.id="PROJECT_ID" ^ --templateProperty gcs.gcs.input.location="CLOUD_STORAGE_INPUT_PATH" ^ --templateProperty gcs.gcs.input.format="INPUT_FILE_FORMAT" ^ --templateProperty gcs.gcs.output.location="CLOUD_STORAGE_OUTPUT_PATH" ^ --templateProperty gcs.gcs.output.format="OUTPUT_FILE_FORMAT" ^ --templateProperty gcs.gcs.write.mode="MODE" ^ --templateProperty gcs.gcs.temp.table="TEMP_TABLE" ^ --templateProperty gcs.gcs.temp.query="TEMP_QUERY"
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Wajib diisi. Google Cloud Project ID Anda yang tercantum di IAM Settings.
- REGION: Wajib diisi. Region Compute Engine.
- SUBNET: Opsional. Jika subnet tidak ditentukan, subnet
di REGION 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
(buka gs://dataproc-templates-binaries atau jalankangcloud storage 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/connector/spark-avro.jar
" ke kolom API atau flag gcloud CLIjars
.Contoh (awalan
file://
mereferensikan file jar Dataproc Serverless):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars] -
CLOUD_STORAGE_OUTPUT_PATH:
Wajib diisi. Jalur Cloud Storage tempat output akan disimpan.
Contoh:
gs://example-bucket/example-folder/
-
OUTPUT_FILE_FORMAT:
Wajib diisi. Format data output. Opsi:
avro
,csv
parquet
,json
, atauorc
. Catatan: Jikaavro
, Anda harus menambahkan "file:///usr/lib/spark/connector/spark-avro.jar
" ke kolom API atau flag gcloud CLIjars
.Contoh (awalan
file://
mereferensikan file jar Dataproc Serverless):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars] -
MODE:
Wajib diisi. Mode tulis untuk output Cloud Storage.
Opsi:
Append
,Overwrite
,Ignore
, atauErrorIfExists
. - TEMP_TABLE dan TEMP_QUERY: Opsional. Anda dapat menggunakan dua parameter opsional ini untuk menerapkan transformasi Spark SQL saat memuat data ke Cloud Storage. TEMP_TABLE adalah nama tampilan sementara, dan TEMP_QUERY adalah pernyataan kueri. TEMP_TABLE dan nama tabel di TEMP_QUERY harus cocok.
- SERVICE_ACCOUNT: Opsional. Jika tidak diberikan, akun layanan Compute Engine default akan digunakan.
- PROPERTY dan PROPERTY_VALUE:
Opsional. Daftar yang dipisahkan koma dari
pasangan Properti Spark=
value
. - LABEL dan LABEL_VALUE:
Opsional. Daftar pasangan
label
=value
yang 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 dalam penyimpanan 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","GCSTOGCS", "--templateProperty","project.id=PROJECT_ID", "--templateProperty","log.level=LOG_LEVEL", "--templateProperty","gcs.gcs.input.location=CLOUD_STORAGE_INPUT_PATH", "--templateProperty","gcs.gcs.input.format=INPUT_FILE_FORMAT", "--templateProperty","gcs.gcs.output.location=CLOUD_STORAGE_OUTPUT_PATH", "--templateProperty","gcs.gcs.output.format=OUTPUT_FILE_FORMAT", "--templateProperty","gcs.gcs.write.mode=MODE", "--templateProperty","gcs.gcs.temp.table=TEMP_TABLE", "--templateProperty","gcs.gcs.temp.query=TEMP_QUERY" ], "jarFileUris":[ "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar", "file:///usr/lib/spark/connector/spark-avro.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" } }