Vorlage „Hive zu BigQuery“

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

Vorlage verwenden

Vorlage über die gcloud CLI oder Dataproc ausführen der API erstellen.

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 als aktuelle Vorlagenversion oder das Datum einer bestimmten Version, 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 die verfügbaren Vorlagenversionen aufzulisten.
  • SUBNET: Optional. Wenn kein Subnetz angegeben ist, in der angegebenen REGION im Netzwerk default ausgewählt ist.

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

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

    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 zum Laden von 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 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. Protokollebene. 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 als aktuelle Vorlagenversion oder das Datum einer bestimmten Version, 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 die verfügbaren Vorlagenversionen aufzulisten.
  • SUBNET: Optional. Wenn kein Subnetz angegeben ist, in der angegebenen REGION im Netzwerk default ausgewählt ist.

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

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

    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 zum Laden von 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 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. Protokollebene. 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

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 in etwa folgende JSON-Antwort 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"
  }
}