Plantilla de Cloud Storage a Cloud Spanner
Usa Dataproc Serverless Cloud Storage para Spanner para extraer datos de Cloud Storage a Spanner.
Usa la plantilla
Ejecuta la plantilla con la CLI de gcloud o la API de Dataproc.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Obligatorio. Es el ID de tu proyecto de Google Cloud que aparece en la Configuración de IAM.
- REGION: Obligatorio. Compute Engine región.
- SUBNET: Opcional Si no se especifica una subred, esta
en la REGION especificada en la red
default
.Ejemplo:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- TEMPLATE_VERSION: Obligatorio. Especifica
latest
para la versión más reciente versión de la plantilla o la fecha de una versión específica, por ejemplo,2023-03-17_v0.1.0-beta
(visita gs://dataproc-templates-binaries o ejecutagcloud storage ls gs://dataproc-templates-binaries
para enumerar las versiones de plantilla disponibles). - CLOUD_STORAGE_INPUT_PATH: Obligatorio. Es la ruta de acceso de Cloud Storage desde la que se leerán los datos de entrada.
Ejemplo:
gs://example-bucket/example-folder/
- FORMAT: Obligatorio. Formato de datos de entrada Opciones:
avro
,parquet
oorc
. Nota: Si esavro
, debes agregar "file:///usr/lib/spark/external/spark-avro.jar
" al campo de la API o la marca de gcloud CLI dejars
.Ejemplo (el prefijo
file://
hace referencia a un archivo jar de Dataproc Serverless):--jars=file:///usr/lib/spark/external/spark-avro.jar,
[ ... other jars] - INSTANCE: Obligatorio. ID de la instancia de Spanner.
- DATABASE: Obligatorio. ID de la base de datos de Spanner.
- TABLE: Obligatorio. Es el nombre de la tabla de salida de Spanner.
- MODE: Opcional Modo de escritura para el resultado de Spanner.
Opciones:
Append
,Overwrite
,Ignore
oErrorifExists
. La configuración predeterminada esErrorifExists
. - PRIMARY_KEY: Obligatorio. Columnas de clave primaria separadas por comas necesarias para crear la tabla de salida de Spanner
- BATCHSIZE: Opcional Cantidad de registros que se insertarán en un proceso de ida y vuelta en la tabla de Spanner. La configuración predeterminada es 1,000.
- SERVICE_ACCOUNT: Opcional Si no se proporciona, se usa la cuenta de servicio de Compute Engine predeterminada.
- PROPERTY y PROPERTY_VALUE: Opcional. Es una lista separada por comas de pares propiedad de Spark=
value
. - LABEL y LABEL_VALUE:
Opcional. Lista separada por comas de pares
label
=value
. - LOG_LEVEL: Opcional Nivel de registro. Puede ser uno de
ALL
,DEBUG
,ERROR
,FATAL
yINFO
,OFF
,TRACE
oWARN
. Valor predeterminado:INFO
. -
KMS_KEY: Opcional La clave de Cloud Key Management Service que se usará para la encriptación. Si no se especifica una clave, los datos se encriptan en reposo con una clave que es propiedad de Google y está administrada por Google.
Ejemplo:
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Ejecuta el siguiente comando:
Linux, macOS o 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" \ --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"
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" ` --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"
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" ^ --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"
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Obligatorio. El ID del proyecto de Google Cloud que aparece en la Configuración de IAM.
- REGION: Obligatorio. Región de Compute Engine.
- SUBNET: Opcional Si no se especifica una subred, se selecciona la subred en la REGION especificada en la red
default
.Ejemplo:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- TEMPLATE_VERSION: Obligatorio. Especifica
latest
para la versión más reciente versión de la plantilla o la fecha de una versión específica, por ejemplo,2023-03-17_v0.1.0-beta
(visita gs://dataproc-templates-binaries o ejecutagcloud storage ls gs://dataproc-templates-binaries
para enumerar las versiones de plantilla disponibles). - CLOUD_STORAGE_INPUT_PATH: Obligatorio. Es la ruta de acceso de Cloud Storage desde la que se leerán los datos de entrada.
Ejemplo:
gs://example-bucket/example-folder/
- FORMAT: Obligatorio. Formato de datos de entrada Opciones:
avro
,parquet
oorc
. Nota: Si esavro
, debes agregar "file:///usr/lib/spark/external/spark-avro.jar
" al campo de la API o la marca de gcloud CLI dejars
.Ejemplo (el prefijo
file://
hace referencia a un archivo jar de Dataproc Serverless):--jars=file:///usr/lib/spark/external/spark-avro.jar,
[ ... other jars] - INSTANCE: Obligatorio. ID de la instancia de Spanner.
- DATABASE: Obligatorio. ID de la base de datos de Spanner.
- TABLE: Obligatorio. Es el nombre de la tabla de salida de Spanner.
- MODE: Opcional Modo de escritura para el resultado de Spanner.
Opciones:
Append
,Overwrite
,Ignore
oErrorifExists
. La configuración predeterminada esErrorifExists
. - PRIMARY_KEY: Obligatorio. Columnas de clave primaria separadas por comas necesarias para crear la tabla de salida de Spanner
- BATCHSIZE: Opcional Cantidad de registros que se insertarán en un proceso de ida y vuelta en la tabla de Spanner. La configuración predeterminada es 1,000.
- SERVICE_ACCOUNT: Opcional Si no se proporciona, el cuenta de servicio predeterminada de Compute Engine y control sobre el uso de sus datos.
- PROPERTY y PROPERTY_VALUE:
Opcional. Lista de elementos separados por comas
Propiedad de Spark=
value
pares. - LABEL y LABEL_VALUE:
Opcional. Es una lista separada por comas de pares
label
=value
. - LOG_LEVEL: Opcional Nivel de registro. Puede ser uno de
ALL
,DEBUG
,ERROR
,FATAL
yINFO
,OFF
,TRACE
oWARN
. Valor predeterminado:INFO
. -
KMS_KEY: Opcional La clave de Cloud Key Management Service que se usará en la encriptación. Si no se especifica una clave, los datos se encriptan en reposo con una clave de propiedad de Google y una administrada por Google.
Ejemplo:
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Método HTTP y URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches
Cuerpo JSON de la solicitud:
{ "environmentConfig":{ "executionConfig":{ "subnetworkUri":"SUBNET", "kmsKey": "KMS_KEY", "serviceAccount": "SERVICE_ACCOUNT" } }, "labels": { "LABEL": "LABEL_VALUE" }, "runtimeConfig": { "version": "1.1", "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" ], "jarFileUris":[ "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" ] } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" } }