Modello Da Hive in Cloud Storage

Usa il modello Dataproc serverless Hive in Cloud Storage per estrarre dati da Hive in Cloud Storage.

Utilizza il modello

Esegui il modello utilizzando gcloud CLI o Dataproc API.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: campo obbligatorio. Il tuo ID progetto Google Cloud elencato in le impostazioni IAM.
  • REGION: campo obbligatorio. Compute Engine regione.
  • TEMPLATE_VERSION: campo obbligatorio. Specifica latest per il più recente versione del modello o la data di una versione specifica, ad esempio 2023-03-17_v0.1.0-beta (visita gs://dataproc-templates-binaries o esegui gsutil ls gs://dataproc-templates-binaries per elencare le versioni dei modelli disponibili).
  • SUBNET: facoltativo. Se non viene specificata una subnet, è selezionata nella REGIONE specificata nella rete default.

    Esempio: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • HOST e PORT: obbligatori. Nome host o indirizzo IP e porta dell'host del database Hive di origine.

    Esempio: 10.0.0.33

  • TABLE: campo obbligatorio. Nome tabella di input Hive.
  • DATABASE: campo obbligatorio. Nome del database di input Hive.
  • CLOUD_STORAGE_OUTPUT_PATH: campo obbligatorio. Cloud Storage in cui verrà archiviato l'output.

    Esempio: gs://dataproc-templates/hive_to_cloud_storage_output

  • FORMAT: facoltativo. Formato dei dati di output. Opzioni: avro, parquet, csv o json. Valore predefinito: avro. Nota: se avro, devi aggiungere file:///usr/lib/spark/external/spark-avro.jar al flag gcloud CLI jars o al campo API.

    Esempio (il prefisso file:// fa riferimento a un file jar di Dataproc serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [, ... altri barattoli]
  • HIVE_PARTITION_COLUMN: facoltativo. Colonna su la partizione dei dati Hive.
  • MODE: campo obbligatorio. Modalità di scrittura per l'output di Cloud Storage. Opzioni: append, overwrite, ignore, o errorifexists.
  • SERVICE_ACCOUNT: facoltativo. Se non viene specificato, il valore account di servizio Compute Engine predefinito .
  • PROPERTY e PROPERTY_VALUE: Facoltativa. Elenco separato da virgole di Proprietà Spark=value coppie.
  • LABEL e LABEL_VALUE: Facoltativa. Elenco separato da virgole di label=value coppie.
  • LOG_LEVEL: facoltativo. Livello di logging. Può essere uno di ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE o WARN. Valore predefinito: INFO.
  • KMS_KEY: facoltativo. La chiave di Cloud Key Management Service da utilizzare per la crittografia. Se non viene specificata una chiave, i dati vengono criptati at-rest utilizzando una chiave di proprietà di Google e gestita da Google.

    Esempio: projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Esegui la persone che seguo :

Linux, macOS o 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="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" \
    --labels="LABEL=LABEL_VALUE" \
    -- --template=HIVETOGCS \
    --templateProperty log.level="LOG_LEVEL" \
    --templateProperty hive.input.table="TABLE" \
    --templateProperty hive.input.db="DATABASE" \
    --templateProperty hive.gcs.output.path="CLOUD_STORAGE_OUTPUT_PATH" \
    --templateProperty hive.gcs.output.format="FORMAT" \
    --templateProperty hive.partition.col="HIVE_PARTITION_COLUMN" \
    --templateProperty hive.gcs.save.mode="MODE"

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="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" `
    --labels="LABEL=LABEL_VALUE" `
    -- --template=HIVETOGCS `
    --templateProperty log.level="LOG_LEVEL" `
    --templateProperty hive.input.table="TABLE" `
    --templateProperty hive.input.db="DATABASE" `
    --templateProperty hive.gcs.output.path="CLOUD_STORAGE_OUTPUT_PATH" `
    --templateProperty hive.gcs.output.format="FORMAT" `
    --templateProperty hive.partition.col="HIVE_PARTITION_COLUMN" `
    --templateProperty hive.gcs.save.mode="MODE"

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="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" ^
    --labels="LABEL=LABEL_VALUE" ^
    -- --template=HIVETOGCS ^
    --templateProperty log.level="LOG_LEVEL" ^
    --templateProperty hive.input.table="TABLE" ^
    --templateProperty hive.input.db="DATABASE" ^
    --templateProperty hive.gcs.output.path="CLOUD_STORAGE_OUTPUT_PATH" ^
    --templateProperty hive.gcs.output.format="FORMAT" ^
    --templateProperty hive.partition.col="HIVE_PARTITION_COLUMN" ^
    --templateProperty hive.gcs.save.mode="MODE"

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: campo obbligatorio. Il tuo ID progetto Google Cloud elencato in le impostazioni IAM.
  • REGION: campo obbligatorio. Compute Engine regione.
  • TEMPLATE_VERSION: campo obbligatorio. Specifica latest per il più recente versione del modello o la data di una versione specifica, ad esempio 2023-03-17_v0.1.0-beta (visita gs://dataproc-templates-binaries o esegui gsutil ls gs://dataproc-templates-binaries per elencare le versioni dei modelli disponibili).
  • SUBNET: facoltativo. Se non viene specificata una subnet, è selezionata nella REGIONE specificata nella rete default.

    Esempio: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • HOST e PORT: obbligatori. Nome host o indirizzo IP e porta dell'host del database Hive di origine.

    Esempio: 10.0.0.33

  • TABLE: campo obbligatorio. Nome tabella di input Hive.
  • DATABASE: campo obbligatorio. Nome del database di input Hive.
  • CLOUD_STORAGE_OUTPUT_PATH: campo obbligatorio. Cloud Storage in cui verrà archiviato l'output.

    Esempio: gs://dataproc-templates/hive_to_cloud_storage_output

  • FORMAT: facoltativo. Formato dei dati di output. Opzioni: avro, parquet, csv o json. Valore predefinito: avro. Nota: se avro, devi aggiungere file:///usr/lib/spark/external/spark-avro.jar al flag gcloud CLI jars o al campo API.

    Esempio (il prefisso file:// fa riferimento a un file jar di Dataproc serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [, ... altri barattoli]
  • HIVE_PARTITION_COLUMN: facoltativo. Colonna su la partizione dei dati Hive.
  • MODE: campo obbligatorio. Modalità di scrittura per l'output di Cloud Storage. Opzioni: append, overwrite, ignore, o errorifexists.
  • SERVICE_ACCOUNT: facoltativo. Se non viene specificato, il valore account di servizio Compute Engine predefinito .
  • PROPERTY e PROPERTY_VALUE: Facoltativa. Elenco separato da virgole di Proprietà Spark=value coppie.
  • LABEL e LABEL_VALUE: Facoltativa. Elenco separato da virgole di label=value coppie.
  • LOG_LEVEL: facoltativo. Livello di logging. Può essere uno di ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE o WARN. Valore predefinito: INFO.
  • KMS_KEY: facoltativo. La chiave di Cloud Key Management Service da utilizzare per la crittografia. Se non viene specificata una chiave, i dati vengono criptati at-rest utilizzando una chiave di proprietà di Google e gestita da Google.

    Esempio: projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Metodo HTTP e URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches

Corpo JSON della richiesta:

{
  "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","HIVETOGCS",
      "--templateProperty","log.level=LOG_LEVEL",
      "--templateProperty","hive.input.table=TABLE",
      "--templateProperty","hive.input.db=DATABASE",
      "--templateProperty","hive.gcs.output.path=CLOUD_STORAGE_OUTPUT_PATH",
      "--templateProperty","hive.gcs.output.format=FORMAT",
      "--templateProperty","hive.partition.col=HIVE_PARTITION_COLUMN",
      "--templateProperty","hive.gcs.save.mode=MODE"
    ],
    "jarFileUris":[
      "file:///usr/lib/spark/external/spark-avro.jar",
      "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar"
    ]
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
  }
}