Vorlage "Hive zu BigQuery"

Verwenden Sie die Vorlage „Dataproc Serverless Hive für BigQuery“ zum Extrahieren Daten aus Hive in BigQuery importieren.

Vorlage verwenden

Führen Sie die Vorlage mit der gcloud CLI oder der Dataproc API aus.

gcloud

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • PROJECT_ID: erforderlich. Ihre Google Cloud-Projekt-ID, aufgeführt in die IAM-Einstellungen.
  • REGION: erforderlich. Compute Engine Region
  • TEMPLATE_VERSION: erforderlich. Geben Sie latest für die neueste Vorlagenversion oder das Datum einer bestimmten Version an, z. B. 2023-03-17_v0.1.0-beta. Rufen Sie gs://dataproc-templates-binaries auf oder führen Sie gcloud storage ls gs://dataproc-templates-binaries aus, um eine Liste der verfügbaren Vorlagenversionen aufzurufen.
  • SUBNET: Optional. Wenn kein Subnetz angegeben ist, wird das Subnetz in der angegebenen REGION im default-Netzwerk ausgewählt.

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

  • HOST und PORT: Erforderlich. Hostname oder IP-Adresse und Port des Quell-Hive-Datenbankhosts.

    Beispiel: 10.0.0.33:9083

  • DATASET: erforderlich. Name des BigQuery-Ausgabe-Datasets.
  • TABLE: erforderlich. Name der BigQuery-Ausgabetabelle.
  • QUERY: erforderlich. Abfrage zum Extrahieren von Daten aus Hive
  • TEMP_BUCKET: erforderlich. Cloud Storage-Bucket name (geben Sie nur den Namen des Buckets an). Dieser Bucket wird für das Laden in BigQuery verwendet.
  • MODE: erforderlich. Schreibmodus für BigQuery-Ausgabe. Optionen: Append, Overwrite, Ignore, oder ErrorIfExists.
  • TEMPVIEW und TEMPVIEW_SQL_QUERY: Optional. Mit diesen beiden optionalen Parametern können Sie beim Laden von Daten in BigQuery eine Spark SQL-Transformation anwenden. TEMPVIEW ist der Name der temporären Ansicht und TEMPVIEW_SQL_QUERY ist die Abfrageanweisung. TEMPVIEW und der Tabellenname in TEMPVIEW_SQL_QUERY müssen übereinstimmen.
  • SERVICE_ACCOUNT: Optional. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
  • PROPERTY und PROPERTY_VALUE: Optional. Durch Kommas getrennte Liste von Spark property=value-Paare.
  • LABEL und LABEL_VALUE: Optional. Durch Kommas getrennte Liste von label=value-Paaren.
  • LOG_LEVEL: Optional. Protokollierungsebene. Kann einer der folgenden Werte sein: ALL, DEBUG, ERROR, FATAL, INFO OFF, TRACE oder WARN. Standardeinstellung: INFO.
  • KMS_KEY: Optional. Cloud Key Management Service für die Verschlüsselung. Wenn kein Schlüssel angegeben ist, werden ruhende Daten mit einem Schlüssel verschlüsselt, der Google gehört und von Google verwaltet wird.

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

Führen Sie folgenden Befehl aus:

Linux, macOS oder 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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: erforderlich. Ihre Google Cloud-Projekt-ID, aufgeführt in die IAM-Einstellungen.
  • REGION: erforderlich. Compute Engine-Region
  • TEMPLATE_VERSION: erforderlich. Geben Sie latest für die neueste Vorlagenversion oder das Datum einer bestimmten Version an, z. B. 2023-03-17_v0.1.0-beta. Rufen Sie gs://dataproc-templates-binaries auf oder führen Sie gcloud storage ls gs://dataproc-templates-binaries aus, um eine Liste der verfügbaren Vorlagenversionen aufzurufen.
  • SUBNET: Optional. Wenn kein Subnetz angegeben ist, wird das Subnetz in der angegebenen REGION im default-Netzwerk ausgewählt.

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

  • HOST und PORT: Erforderlich. Hostname oder IP-Adresse und Port des Quell-Hive-Datenbankhosts.

    Beispiel: 10.0.0.33:9083

  • DATASET: erforderlich. Name des BigQuery-Ausgabe-Datasets.
  • TABLE: erforderlich. Name der BigQuery-Ausgabetabelle.
  • QUERY: erforderlich. Abfrage zum Extrahieren von Daten aus Hive
  • TEMP_BUCKET: erforderlich. Cloud Storage-Bucket name (geben Sie nur den Namen des Buckets an). Dieser Bucket wird für das Laden in BigQuery verwendet.
  • MODE: erforderlich. Schreibmodus für BigQuery-Ausgabe. Optionen: Append, Overwrite, Ignore, oder ErrorIfExists.
  • TEMPVIEW und TEMPVIEW_SQL_QUERY: Optional. Mit diesen beiden optionalen Parametern können Sie beim Laden von Daten in BigQuery eine Spark SQL-Transformation anwenden. TEMPVIEW ist der Name der temporären Ansicht und TEMPVIEW_SQL_QUERY ist die Abfrageanweisung. TEMPVIEW und der Tabellenname in TEMPVIEW_SQL_QUERY müssen übereinstimmen.
  • SERVICE_ACCOUNT: Optional. Falls nicht angegeben, Compute Engine-Standarddienstkonto verwendet wird.
  • PROPERTY und PROPERTY_VALUE: Optional. Durch Kommas getrennte Liste von Spark property=value-Paare.
  • LABEL und LABEL_VALUE: Optional. Durch Kommas getrennte Liste von label=value-Paaren.
  • LOG_LEVEL: Optional. Protokollierungsebene. Kann einer der folgenden Werte sein: ALL, DEBUG, ERROR, FATAL, INFO OFF, TRACE oder WARN. Standardeinstellung: INFO.
  • KMS_KEY: Optional. Cloud Key Management Service, der für die Verschlüsselung verwendet werden soll. Wenn kein Schlüssel angegeben ist, werden Daten im inaktiven Zustand mit einem von Google verwalteten Schlüssel verschlüsselt.

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

HTTP-Methode und URL:

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

JSON-Text anfordern:


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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:


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