Template Cloud Storage ke Cloud Storage

Gunakan template Dataproc Serverless Cloud Storage ke Cloud Storage 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. 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 jalankan gsutil 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, atau orc. Catatan: Jika avro, Anda harus menambahkan "file:///usr/lib/spark/external/spark-avro.jar" ke kolom API atau flag gcloud CLI jars.

    Contoh (awalan file:// merujuk ke file jar Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [ ... stoples lainnya]
  • CLOUD_STORAGE_OUTPUT_PATH: Wajib. Jalur Cloud Storage tempat output akan disimpan.

    Contoh: gs://example-bucket/example-folder/

  • OUTPUT_FILE_FORMAT: Wajib. Format data output. Opsi: avro, csv parquet, json atau orc. Catatan: Jika avro, Anda harus menambahkan "file:///usr/lib/spark/external/spark-avro.jar" ke kolom API atau flag gcloud CLI jars.

    Contoh (awalan file:// merujuk ke file jar Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [ ... stoples lainnya]
  • MODE: Wajib. Mode tulis untuk output Cloud Storage. Opsi: Append, Overwrite, Ignore, atau ErrorIfExists.
  • 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 dalam TEMP_QUERY harus cocok.
  • 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, atau WARN. 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,file:///usr/lib/spark/external/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.1" `
    --project="PROJECT_ID" `
    --region="REGION" `
    --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,file:///usr/lib/spark/external/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.1" ^
    --project="PROJECT_ID" ^
    --region="REGION" ^
    --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,file:///usr/lib/spark/external/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. 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 jalankan gsutil 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, atau orc. Catatan: Jika avro, Anda harus menambahkan "file:///usr/lib/spark/external/spark-avro.jar" ke kolom API atau flag gcloud CLI jars.

    Contoh (awalan file:// merujuk ke file jar Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [ ... stoples lainnya]
  • CLOUD_STORAGE_OUTPUT_PATH: Wajib. Jalur Cloud Storage tempat output akan disimpan.

    Contoh: gs://example-bucket/example-folder/

  • OUTPUT_FILE_FORMAT: Wajib. Format data output. Opsi: avro, csv parquet, json atau orc. Catatan: Jika avro, Anda harus menambahkan "file:///usr/lib/spark/external/spark-avro.jar" ke kolom API atau flag gcloud CLI jars.

    Contoh (awalan file:// merujuk ke file jar Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [ ... stoples lainnya]
  • MODE: Wajib. Mode tulis untuk output Cloud Storage. Opsi: Append, Overwrite, Ignore, atau ErrorIfExists.
  • 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 dalam TEMP_QUERY harus cocok.
  • 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, atau WARN. 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","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/external/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"
  }
}