Template Hive to BigQuery

Gunakan template Dataproc Serverless Hive ke BigQuery untuk mengekstrak data dari Hive ke BigQuery.

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.
  • 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).
  • 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

  • HOST dan PORT: Wajib. Nama host atau alamat IP dan port host database Hive sumber.

    Contoh: 10.0.0.33:9083

  • DATASET: Wajib diisi. Nama set data output BigQuery.
  • TABLE: Wajib diisi. Nama tabel output BigQuery.
  • QUERY: Wajib diisi. Kueri untuk mengekstrak data dari Hive.
  • TEMP_BUCKET: Wajib diisi. Nama bucket Cloud Storage (tentukan nama bucket saja). Bucket ini digunakan untuk pemuatan BigQuery.
  • MODE: Wajib diisi. Mode tulis untuk output BigQuery. Opsi: Append, Overwrite, Ignore, atau ErrorIfExists.
  • TEMPVIEW dan TEMPVIEW_SQL_QUERY: Opsional. Anda dapat menggunakan dua parameter opsional ini untuk menerapkan transformasi Spark SQL saat memuat data ke BigQuery. TEMPVIEW adalah nama tampilan sementara, dan TEMPVIEW_SQL_QUERY adalah pernyataan kueri. TEMPVIEW dan nama tabel dalam TEMPVIEW_SQL_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. Cloud Key Management Service 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" \
    --service-account="SERVICE_ACCOUNT" \
    --properties="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" \
    --kms-key="KMS_KEY" \
    --labels="LABEL=LABEL_VALUE" \
    -- --template HIVETOBIGQUERY \
    --templateProperty log.level="LOG_LEVEL" \
    --templateProperty hivetobq.bigquery.location="PROJECT_ID.DATASET.TABLE" \
    --templateProperty hivetobq.sql="QUERY" \
    --templateProperty hivetobq.temp.gcs.bucket="TEMP_BUCKET" \
    --templateProperty hivetobq.write.mode="MODE" \
    --templateProperty hivetobq.temp.table="TEMPVIEW" \
    --templateProperty hivetobq.temp.query="TEMPVIEW_SQL_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" `
    --subnet="SUBNET" `
    --service-account="SERVICE_ACCOUNT" `
    --properties="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" `
    --kms-key="KMS_KEY" `
    --labels="LABEL=LABEL_VALUE" `
    -- --template HIVETOBIGQUERY `
    --templateProperty log.level="LOG_LEVEL" `
    --templateProperty hivetobq.bigquery.location="PROJECT_ID.DATASET.TABLE" `
    --templateProperty hivetobq.sql="QUERY" `
    --templateProperty hivetobq.temp.gcs.bucket="TEMP_BUCKET" `
    --templateProperty hivetobq.write.mode="MODE" `
    --templateProperty hivetobq.temp.table="TEMPVIEW" `
    --templateProperty hivetobq.temp.query="TEMPVIEW_SQL_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" ^
    --subnet="SUBNET" ^
    --service-account="SERVICE_ACCOUNT" ^
    --properties="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" ^
    --kms-key="KMS_KEY" ^
    --labels="LABEL=LABEL_VALUE" ^
    -- --template HIVETOBIGQUERY ^
    --templateProperty log.level="LOG_LEVEL" ^
    --templateProperty hivetobq.bigquery.location="PROJECT_ID.DATASET.TABLE" ^
    --templateProperty hivetobq.sql="QUERY" ^
    --templateProperty hivetobq.temp.gcs.bucket="TEMP_BUCKET" ^
    --templateProperty hivetobq.write.mode="MODE" ^
    --templateProperty hivetobq.temp.table="TEMPVIEW" ^
    --templateProperty hivetobq.temp.query="TEMPVIEW_SQL_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.
  • 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).
  • 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

  • HOST dan PORT: Wajib. Nama host atau alamat IP dan port host database Hive sumber.

    Contoh: 10.0.0.33:9083

  • DATASET: Wajib diisi. Nama set data output BigQuery.
  • TABLE: Wajib diisi. Nama tabel output BigQuery.
  • QUERY: Wajib diisi. Kueri untuk mengekstrak data dari Hive.
  • TEMP_BUCKET: Wajib diisi. Nama bucket Cloud Storage (tentukan nama bucket saja). Bucket ini digunakan untuk pemuatan BigQuery.
  • MODE: Wajib diisi. Mode tulis untuk output BigQuery. Opsi: Append, Overwrite, Ignore, atau ErrorIfExists.
  • TEMPVIEW dan TEMPVIEW_SQL_QUERY: Opsional. Anda dapat menggunakan dua parameter opsional ini untuk menerapkan transformasi Spark SQL saat memuat data ke BigQuery. TEMPVIEW adalah nama tampilan sementara, dan TEMPVIEW_SQL_QUERY adalah pernyataan kueri. TEMPVIEW dan nama tabel dalam TEMPVIEW_SQL_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. Cloud Key Management Service 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": {
      "spark.hadoop.hive.metastore.uris":"thrift://HOST:PORT",
      "PROPERTY": "PROPERTY_VALUE"
    }
  },
  "sparkBatch":{
    "mainClass":"com.google.cloud.dataproc.templates.main.DataProcTemplate",
    "args":[
      "--template","HIVETOBIGQUERY",
      "--templateProperty","log.level=LOG_LEVEL",
      "--templateProperty","hivetobq.bigquery.location=PROJECT_ID.DATASET.TABLE",
      "--templateProperty","hivetobq.sql=QUERY",
      "--templateProperty","hivetobq.temp.gcs.bucket=TEMP_BUCKET",
      "--templateProperty","hivetobq.write.mode=MODE",
      "--templateProperty","hivetobq.temp.table=TEMPVIEW",
      "--templateProperty","hivetobq.temp.query=TEMPVIEW_SQL_QUERY"
    ],
    "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"
  }
}