Vorlage „Hive für BigQuery“
Verwenden Sie die Vorlage „Serverless for Apache Spark Hive to BigQuery“, um Daten aus Hive in BigQuery zu extrahieren.
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. Die Google Cloud Projekt-ID, die in den IAM-Einstellungen aufgeführt ist.
- 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 Siegcloud storage ls gs://dataproc-templates-binaries
aus, um die verfügbaren Vorlagenversionen aufzulisten. - SUBNET: Optional. Wenn kein Subnetz angegeben ist, wird das Subnetz in der angegebenen REGION im Netzwerk
default
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. Name des Cloud Storage-Bucket (geben Sie nur den Namen des Buckets an). Dieser Bucket wird für das Laden von BigQuery verwendet.
- MODE: erforderlich. Schreibmodus für die BigQuery-Ausgabe.
Optionen:
Append
,Overwrite
,Ignore
oderErrorIfExists
. - TEMPVIEW und TEMPVIEW_SQL_QUERY: Optional. Mit diesen beiden optionalen Parametern können Sie eine Spark SQL-Transformation anwenden, während Sie Daten in BigQuery laden. 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. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
- PROPERTY und PROPERTY_VALUE:
Optional. Durch Kommas getrennte Liste von Spark-Eigenschaft=
value
-Paaren. - LABEL und LABEL_VALUE:
Optional. Durch Kommas getrennte Liste von
label
=value
-Paaren. - LOG_LEVEL: Optional. Ebene der Protokollierung. Kann einer der folgenden Werte sein:
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oderWARN
. Standard: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 mit einem Google-owned and Google-managed encryption keyim Ruhezustand verschlüsselt.
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.2" \ --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.2" ` --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.2" ^ --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. Die Google Cloud Projekt-ID, die in den IAM-Einstellungen aufgeführt ist.
- 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 Siegcloud storage ls gs://dataproc-templates-binaries
aus, um die verfügbaren Vorlagenversionen aufzulisten. - 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. Name des Cloud Storage-Bucket (geben Sie nur den Namen des Buckets an). Dieser Bucket wird für das Laden von BigQuery verwendet.
- MODE: erforderlich. Schreibmodus für die BigQuery-Ausgabe.
Optionen:
Append
,Overwrite
,Ignore
oderErrorIfExists
. - TEMPVIEW und TEMPVIEW_SQL_QUERY: Optional. Mit diesen beiden optionalen Parametern können Sie eine Spark SQL-Transformation anwenden, während Sie Daten in BigQuery laden. 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. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
- PROPERTY und PROPERTY_VALUE:
Optional. Durch Kommas getrennte Liste von Spark-Eigenschaft=
value
-Paaren. - LABEL und LABEL_VALUE:
Optional. Durch Kommas getrennte Liste von
label
=value
-Paaren. - LOG_LEVEL: Optional. Ebene der Protokollierung. Kann einer der folgenden Werte sein:
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oderWARN
. Standard: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 mit einem Google-owned and Google-managed encryption keyim Ruhezustand 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.2", "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" } }