Vorlage „Cloud Storage für Cloud Spanner“
Mit der Vorlage „Managed Service for Apache Spark Cloud Storage für Spanner“ können Sie Daten aus Cloud Storage in Spanner extrahieren.
Vorlage verwenden
Führen Sie die Vorlage mit der gcloud CLI oder der Managed Service for Apache Spark API aus.
gcloud
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 -Region.
- SUBNET: optional. Wenn kein Subnetzwerk angegeben ist, wird das Subnetzwerk
in der angegebenen REGION im
defaultNetzwerk ausgewählt.Beispiel:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME - TEMPLATE_VERSION: erforderlich. Geben Sie
latestfür die neueste Vorlagenversion oder das Datum einer bestimmten Version an, z. B.2023-03-17_v0.1.0-beta(unter gs://dataproc-templates-binaries oder mit dem Befehlgcloud storage ls gs://dataproc-templates-binarieskönnen Sie die verfügbaren Vorlagenversionen auflisten). - CLOUD_STORAGE_INPUT_PATH: erforderlich. Cloud Storage-Pfad, aus dem Eingabedaten gelesen werden.
Beispiel:
gs://example-bucket/example-folder/ - FORMAT: erforderlich. Format für Eingabedaten. Optionen:
avro,parquetoderorc. Hinweis: Wenn Sieavroverwenden, müssen Sie "file:///usr/lib/spark/connector/spark-avro.jar" demjarsgcloud CLI-Flag oder dem API-Feld hinzufügen.Beispiel: Das Präfix
file://verweist auf eine JAR-Datei von Managed Service for Apache Spark.--jars=file:///usr/lib/spark/connector/spark-avro.jar,[ ... other jars] - INSTANCE: erforderlich. Cloud Spanner-Instanz-ID.
- DATABASE: erforderlich. Cloud Spanner-Datenbank-ID.
- TABLE: erforderlich. Name der Cloud Spanner-Ausgabetabelle.
- SPANNER_JDBC_DIALECT: erforderlich. Cloud Spanner-JDBC-Dialekt.
Optionen:
googlesqloderpostgresql. Standardmäßig istgooglesqlfestgelegt. - MODE: optional. Schreibmodus für die Cloud Spanner-Ausgabe.
Optionen:
Append,Overwrite,IgnoreoderErrorifExists. Standardmäßig istErrorifExistsfestgelegt. - PRIMARY_KEY: erforderlich. Durch Kommas getrennte Primärschlüsselspalten, die beim Erstellen der Cloud Spanner-Ausgabetabelle erforderlich sind.
- BATCHSIZE: optional. Anzahl der Datensätze, die in einem Roundtrip in die Cloud Spanner-Tabelle eingefügt werden sollen. Standardwert ist 1.000.
- SERVICE_ACCOUNT: optional. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
- PROPERTY und PROPERTY_VALUE:
optional. Durch Kommas getrennte Liste von
Spark-Eigenschaft=
valuePaaren. - LABEL und LABEL_VALUE:
optional. Durch Kommas getrennte Liste von
label=value-Paaren. - LOG_LEVEL: optional. Logging-Ebene. Mögliche Werte:
ALL,DEBUG,ERROR,FATAL,INFO,OFF,TRACEoderWARN. Standardwert: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 inaktive Daten mit einem verschlüsselt Google-owned and Google-managed encryption key.
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 GCSTOSPANNER \ --templateProperty log.level="LOG_LEVEL" \ --templateProperty project.id="PROJECT_ID" \ --templateProperty gcs.spanner.input.format="FORMAT" \ --templateProperty gcs.spanner.input.location="CLOUD_STORAGE_INPUT_PATH" \ --templateProperty gcs.spanner.output.instance="INSTANCE" \ --templateProperty gcs.spanner.output.database="DATABASE" \ --templateProperty gcs.spanner.output.table="TABLE" \ --templateProperty gcs.spanner.output.saveMode="MODE" \ --templateProperty gcs.spanner.output.primaryKey="PRIMARY_KEY" \ --templateProperty gcs.spanner.output.batchInsertSize="BATCHSIZE" \ --templateProperty spanner.jdbc.dialect="SPANNER_JDBC_DIALECT"
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 GCSTOSPANNER ` --templateProperty log.level="LOG_LEVEL" ` --templateProperty project.id="PROJECT_ID" ` --templateProperty gcs.spanner.input.format="FORMAT" ` --templateProperty gcs.spanner.input.location="CLOUD_STORAGE_INPUT_PATH" ` --templateProperty gcs.spanner.output.instance="INSTANCE" ` --templateProperty gcs.spanner.output.database="DATABASE" ` --templateProperty gcs.spanner.output.table="TABLE" ` --templateProperty gcs.spanner.output.saveMode="MODE" ` --templateProperty gcs.spanner.output.primaryKey="PRIMARY_KEY" ` --templateProperty gcs.spanner.output.batchInsertSize="BATCHSIZE" ` --templateProperty spanner.jdbc.dialect="SPANNER_JDBC_DIALECT"
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 GCSTOSPANNER ^ --templateProperty log.level="LOG_LEVEL" ^ --templateProperty project.id="PROJECT_ID" ^ --templateProperty gcs.spanner.input.format="FORMAT" ^ --templateProperty gcs.spanner.input.location="CLOUD_STORAGE_INPUT_PATH" ^ --templateProperty gcs.spanner.output.instance="INSTANCE" ^ --templateProperty gcs.spanner.output.database="DATABASE" ^ --templateProperty gcs.spanner.output.table="TABLE" ^ --templateProperty gcs.spanner.output.saveMode="MODE" ^ --templateProperty gcs.spanner.output.primaryKey="PRIMARY_KEY" ^ --templateProperty gcs.spanner.output.batchInsertSize="BATCHSIZE" ^ --templateProperty spanner.jdbc.dialect="SPANNER_JDBC_DIALECT"
REST
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 -Region.
- SUBNET: optional. Wenn kein Subnetzwerk angegeben ist, wird das Subnetzwerk
in der angegebenen REGION im
defaultNetzwerk ausgewählt.Beispiel:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME - TEMPLATE_VERSION: erforderlich. Geben Sie
latestfür die neueste Vorlagenversion oder das Datum einer bestimmten Version an, z. B.2023-03-17_v0.1.0-beta(unter gs://dataproc-templates-binaries oder mit dem Befehlgcloud storage ls gs://dataproc-templates-binarieskönnen Sie die verfügbaren Vorlagenversionen auflisten). - CLOUD_STORAGE_INPUT_PATH: erforderlich. Cloud Storage-Pfad, aus dem Eingabedaten gelesen werden.
Beispiel:
gs://example-bucket/example-folder/ - FORMAT: erforderlich. Format für Eingabedaten. Optionen:
avro,parquetoderorc. Hinweis: Wenn Sieavroverwenden, müssen Sie "file:///usr/lib/spark/connector/spark-avro.jar" demjarsgcloud CLI-Flag oder dem API-Feld hinzufügen.Beispiel: Das Präfix
file://verweist auf eine JAR-Datei von Managed Service for Apache Spark.--jars=file:///usr/lib/spark/connector/spark-avro.jar,[ ... other jars] - INSTANCE: erforderlich. Cloud Spanner-Instanz-ID.
- DATABASE: erforderlich. Cloud Spanner-Datenbank-ID.
- TABLE: erforderlich. Name der Cloud Spanner-Ausgabetabelle.
- SPANNER_JDBC_DIALECT: erforderlich. Cloud Spanner-JDBC-Dialekt.
Optionen:
googlesqloderpostgresql. Standardmäßig istgooglesqlfestgelegt. - MODE: optional. Schreibmodus für die Cloud Spanner-Ausgabe.
Optionen:
Append,Overwrite,IgnoreoderErrorifExists. Standardmäßig istErrorifExistsfestgelegt. - PRIMARY_KEY: erforderlich. Durch Kommas getrennte Primärschlüsselspalten, die beim Erstellen der Cloud Spanner-Ausgabetabelle erforderlich sind.
- BATCHSIZE: optional. Anzahl der Datensätze, die in einem Roundtrip in die Cloud Spanner-Tabelle eingefügt werden sollen. Standardwert ist 1.000.
- SERVICE_ACCOUNT: optional. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
- PROPERTY und PROPERTY_VALUE:
optional. Durch Kommas getrennte Liste von
Spark-Eigenschaft=
valuePaaren. - LABEL und LABEL_VALUE:
optional. Durch Kommas getrennte Liste von
label=value-Paaren. - LOG_LEVEL: optional. Logging-Ebene. Mögliche Werte:
ALL,DEBUG,ERROR,FATAL,INFO,OFF,TRACEoderWARN. Standardwert: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 inaktive Daten mit einem verschlüsselt Google-owned and Google-managed encryption key.
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","GCSTOSPANNER",
"--templateProperty","project.id=PROJECT_ID",
"--templateProperty","log.level=LOG_LEVEL",
"--templateProperty","gcs.spanner.input.format=FORMAT",
"--templateProperty","gcs.spanner.input.location=CLOUD_STORAGE_INPUT_PATH",
"--templateProperty","gcs.spanner.output.instance=INSTANCE",
"--templateProperty","gcs.spanner.output.database=DATABASE",
"--templateProperty","gcs.spanner.output.table=TABLE",
"--templateProperty","gcs.spanner.output.saveMode=MODE",
"--templateProperty","gcs.spanner.output.primaryKey=PRIMARY_KEY",
"--templateProperty","gcs.spanner.output.batchInsertSize=BATCHSIZE",
"--templateProperty spanner.jdbc.dialect=SPANNER_JDBC_DIALECT"
],
"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"
}
}