Vorlage „Cloud Storage für BigQuery“
Verwenden Sie die Dataproc Serverless-Vorlage „Cloud Storage to BigQuery“, um Daten aus Cloud Storage in BigQuery zu extrahieren.
Vorlage verwenden
Führen Sie die Vorlage mit der gcloud CLI oder der Dataproc API aus.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
PROJECT_ID : erforderlich. Ihre Google Cloud Projekt-ID, die in den IAM-Einstellungen aufgeführt ist.REGION : erforderlich. Compute Engine-RegionTEMPLATE_VERSION : erforderlich. Geben Sielatest
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 eine Liste der verfügbaren Vorlagenversionen aufzurufen.CLOUD_STORAGE_PATH : erforderlich. Cloud Storage-Pfad der Quelle.Beispiel:
gs://dataproc-templates/hive_to_cloud_storage_output"
FORMAT : erforderlich. Format der Eingabedaten. Optionen:avro
,parquet
,csv
oderjson
Hinweis:Wennavro
, müssen Sie demjars
-Flag oder API-Feld der gcloud CLI „file:///usr/lib/spark/connector/spark-avro.jar
“ hinzufügen.Beispiel (das Präfix
file://
verweist auf eine Dataproc Serverless-JAR-Datei):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[, ... other jars]DATASET : erforderlich. BigQuery-Ziel-Dataset.TABLE : erforderlich. BigQuery-Zieltabelle.TEMP_BUCKET : erforderlich. Ein temporärer Cloud Storage-Bucket, der zum Staging von Daten vor dem Laden in BigQuery verwendet wird.SUBNET : Optional. Wenn kein Subnetz angegeben ist, wird das Subnetz in der angegebenen REGION imdefault
-Netzwerk ausgewählt.Beispiel:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
TEMPVIEW undSQL_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 SQL_QUERY ist die Abfrageanweisung. TEMPVIEW und der Tabellenname in SQL_QUERY müssen übereinstimmen.SERVICE_ACCOUNT : Optional. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.PROPERTY undPROPERTY_VALUE : Optional. Durch Kommas getrennte Liste von Spark-Property=value
-Paaren.LABEL undLABEL_VALUE : Optional. Durch Kommas getrennte Liste vonlabel
=value
-Paaren.LOG_LEVEL : Optional. Protokollierungsebene. KannALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oderWARN
sein. Standard:INFO
.-
KMS_KEY : Optional. Der Cloud Key Management Service-Schlüssel, der für die Verschlüsselung verwendet werden soll. Wenn kein Schlüssel angegeben ist, werden die Daten inaktiv verschlüsselt. Dazu wird ein Google-owned and Google-managed encryption keyverwendet.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 " \ --kms-key="KMS_KEY " \ --service-account="SERVICE_ACCOUNT " \ --properties="PROPERTY =PROPERTY_VALUE " \ --labels="LABEL =LABEL_VALUE " \ -- --template=GCSTOBIGQUERY \ --templateProperty log.level="LOG_LEVEL " \ --templateProperty project.id="PROJECT_ID " \ --templateProperty gcs.bigquery.input.location="CLOUD_STORAGE_PATH " \ --templateProperty gcs.bigquery.input.format="FORMAT " \ --templateProperty gcs.bigquery.output.dataset="DATASET " \ --templateProperty gcs.bigquery.output.table="TABLE " \ --templateProperty gcs.bigquery.temp.bucket.name="TEMP_BUCKET " \ --templateProperty gcs.bigquery.temp.table="TEMPVIEW " \ --templateProperty gcs.bigquery.temp.query="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 " ` --kms-key="KMS_KEY " ` --service-account="SERVICE_ACCOUNT " ` --properties="PROPERTY =PROPERTY_VALUE " ` --labels="LABEL =LABEL_VALUE " ` -- --template=GCSTOBIGQUERY ` --templateProperty log.level="LOG_LEVEL " ` --templateProperty project.id="PROJECT_ID " ` --templateProperty gcs.bigquery.input.location="CLOUD_STORAGE_PATH " ` --templateProperty gcs.bigquery.input.format="FORMAT " ` --templateProperty gcs.bigquery.output.dataset="DATASET " ` --templateProperty gcs.bigquery.output.table="TABLE " ` --templateProperty gcs.bigquery.temp.bucket.name="TEMP_BUCKET " ` --templateProperty gcs.bigquery.temp.table="TEMPVIEW " ` --templateProperty gcs.bigquery.temp.query="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 " ^ --kms-key="KMS_KEY " ^ --service-account="SERVICE_ACCOUNT " ^ --properties="PROPERTY =PROPERTY_VALUE " ^ --labels="LABEL =LABEL_VALUE " ^ -- --template=GCSTOBIGQUERY ^ --templateProperty log.level="LOG_LEVEL " ^ --templateProperty project.id="PROJECT_ID " ^ --templateProperty gcs.bigquery.input.location="CLOUD_STORAGE_PATH " ^ --templateProperty gcs.bigquery.input.format="FORMAT " ^ --templateProperty gcs.bigquery.output.dataset="DATASET " ^ --templateProperty gcs.bigquery.output.table="TABLE " ^ --templateProperty gcs.bigquery.temp.bucket.name="TEMP_BUCKET " ^ --templateProperty gcs.bigquery.temp.table="TEMPVIEW " ^ --templateProperty gcs.bigquery.temp.query="SQL_QUERY "
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID : erforderlich. Ihre Google Cloud Projekt-ID, die in den IAM-Einstellungen aufgeführt ist.REGION : erforderlich. Compute Engine-RegionTEMPLATE_VERSION : erforderlich. Geben Sielatest
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 eine Liste der verfügbaren Vorlagenversionen aufzurufen.CLOUD_STORAGE_PATH : erforderlich. Cloud Storage-Pfad der Quelle.Beispiel:
gs://dataproc-templates/hive_to_cloud_storage_output"
FORMAT : erforderlich. Format der Eingabedaten. Optionen:avro
,parquet
,csv
oderjson
Hinweis:Wennavro
, müssen Sie demjars
-Flag oder API-Feld der gcloud CLI „file:///usr/lib/spark/connector/spark-avro.jar
“ hinzufügen.Beispiel (das Präfix
file://
verweist auf eine Dataproc Serverless-JAR-Datei):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[, ... other jars]DATASET : erforderlich. BigQuery-Ziel-Dataset.TABLE : erforderlich. BigQuery-Zieltabelle.TEMP_BUCKET : erforderlich. Ein temporärer Cloud Storage-Bucket, der zum Staging von Daten vor dem Laden in BigQuery verwendet wird.SUBNET : Optional. Wenn kein Subnetz angegeben ist, wird das Subnetz in der angegebenen REGION imdefault
-Netzwerk ausgewählt.Beispiel:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
TEMPVIEW undSQL_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 SQL_QUERY ist die Abfrageanweisung. TEMPVIEW und der Tabellenname in SQL_QUERY müssen übereinstimmen.SERVICE_ACCOUNT : Optional. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.PROPERTY undPROPERTY_VALUE : Optional. Durch Kommas getrennte Liste von Spark-Property=value
-Paaren.LABEL undLABEL_VALUE : Optional. Durch Kommas getrennte Liste vonlabel
=value
-Paaren.LOG_LEVEL : Optional. Protokollierungsebene. KannALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oderWARN
sein. Standard:INFO
.-
KMS_KEY : Optional. Der Cloud Key Management Service-Schlüssel, der für die Verschlüsselung verwendet werden soll. Wenn kein Schlüssel angegeben ist, werden die Daten inaktiv verschlüsselt. Dazu wird ein Google-owned and Google-managed encryption keyverwendet.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": { "PROPERTY ": "PROPERTY_VALUE " } }, "sparkBatch":{ "mainClass":"com.google.cloud.dataproc.templates.main.DataProcTemplate", "args":[ "--template", "GCSTOBIGQUERY", "--templateProperty","log.level=LOG_LEVEL ", "--templateProperty","project.id=PROJECT_ID ", "--templateProperty","gcs.bigquery.input.location=CLOUD_STORAGE_PATH ", "--templateProperty","gcs.bigquery.input.format=FORMAT ", "--templateProperty","gcs.bigquery.output.dataset=DATASET ", "--templateProperty","gcs.bigquery.output.table=TABLE ", "--templateProperty","gcs.bigquery.temp.bucket.name=TEMP_BUCKET ", "--templateProperty","gcs.bigquery.temp.table=TEMPVIEW ", "--templateProperty","gcs.bigquery.temp.query=SQL_QUERY " ], "jarFileUris":[ "file:///usr/lib/spark/connector/spark-avro.jar", "gs://dataproc-templates-binaries/TEMPLATE_VERSION /java/dataproc-templates.jar" ] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://dataproc.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /batches"
PowerShell (Windows)
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://dataproc.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /batches" | Select-Object -Expand Content
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" } }