Plantilla de JDBC a JDBC
Usar la plantilla de Dataproc Serverless de JDBC a JDBC para extraer datos de JDBC a JDBC
Esta plantilla admite las siguientes bases de datos:
- MySQL
- PostgreSQL
- Microsoft SQL Server
- Oracle
Usa la plantilla
Ejecuta la plantilla con gcloud CLI o la API de Dataproc.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, haz 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 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 ejecutagsutil ls gs://dataproc-templates-binaries
para enumerar las versiones de plantilla disponibles). -
INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH y
OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH:
Obligatorios. La ruta de acceso completa de Cloud Storage, incluido el nombre de archivo, en el que se almacenan los archivos JD del conector de JDBC de entrada y salida.
Nota: Si los archivos jar de entrada y de salida son iguales, solo basta con configurar INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH.
Puedes usar los siguientes comandos para descargar conectores de JDBC y subirlos a Cloud Storage:
-
MySQL:
wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.30.tar.gz
-
PostgreSQL:
wget https://jdbc.postgresql.org/download/postgresql-42.2.6.jar
-
Microsoft SQL Server:
wget https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/6.4.0.jre8/mssql-jdbc-6.4.0.jre8.jar
-
Oracle:
wget https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/21.7.0.0/ojdbc8-21.7.0.0.jar
-
MySQL:
-
Las siguientes variables se usan para construir la URL de JDBC de entrada obligatoria:
- INPUT_JDBC_HOST
- INPUT_JDBC_PORT
- INPUT_JDBC_DATABASE o, para Oracle, INPUT_JDBC_SERVICE
- INPUT_JDBC_USERNAME
- INPUT_JDBC_PASSWORD
Crea el INPUT_JDBC_CONNECTION_URL con uno de los siguientes formatos específicos del conector:
-
MySQL:
jdbc:mysql://INPUT_JDBC_HOST:INPUT_JDBC_PORT/INPUT_JDBC_DATABASE?user=INPUT_JDBC_USERNAME&password=INPUT_JDBC_PASSWORD
-
PostgreSQL:
jdbc:postgresql://INPUT_JDBC_HOST:INPUT_JDBC_PORT/INPUT_JDBC_DATABASE?user=INPUT_JDBC_USERNAME&password=INPUT_JDBC_PASSWORD
-
Microsoft SQL Server:
jdbc:sqlserver://INPUT_JDBC_HOST:INPUT_JDBC_PORT;databaseName=INPUT_JDBC_DATABASE;user=INPUT_JDBC_USERNAME;password=INPUT_JDBC_PASSWORD
-
Oracle:
jdbc:oracle:thin:@//INPUT_JDBC_HOST:INPUT_JDBC_PORT/INPUT_JDBC_SERVICE?user=INPUT_JDBC_USERNAME&password=INPUT_JDBC_PASSWORD
-
Las siguientes variables se usan para crear la URL de JDBC de salida obligatoria:
- OUTPUT_JDBC_HOST
- OUTPUT_JDBC_PORT
- OUTPUT_JDBC_DATABASE o, para Oracle, OUTPUT_JDBC_SERVICE
- OUTPUT_JDBC_USERNAME
- OUTPUT_JDBC_PASSWORD
Crea el OUTPUT_JDBC_CONNECTION_URL con uno de los siguientes formatos específicos del conector:
-
MySQL:
jdbc:mysql://OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT/OUTPUT_JDBC_DATABASE?user=OUTPUT_JDBC_USERNAME&password=OUTPUT_JDBC_PASSWORD
-
PostgreSQL:
jdbc:postgresql://OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT/OUTPUT_JDBC_DATABASE?user=OUTPUT_JDBC_USERNAME&password=OUTPUT_JDBC_PASSWORD
-
Microsoft SQL Server:
jdbc:sqlserver://OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT;databaseName=OUTPUT_JDBC_DATABASE;user=OUTPUT_JDBC_USERNAME;password=OUTPUT_JDBC_PASSWORD
-
Oracle:
jdbc:oracle:thin:@//OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT/OUTPUT_JDBC_SERVICE?user=OUTPUT_JDBC_USERNAME&password=OUTPUT_JDBC_PASSWORD
-
INPUT_JDBC_TABLE: Obligatorio. Ingresa el nombre de la tabla de JDBC o una consulta en SQL en la tabla de entrada de JDBC.
Ejemplo (la consulta en SQL debe estar entre paréntesis):
(select * from TABLE_NAME) as ALIAS_TABLE_NAME
- OUTPUT_JDBC_TABLE: Obligatorio. Tabla de JDBC en la que se almacenará el resultado.
-
INPUT_DRIVER y
OUTPUT_DRIVER:
Obligatorios. El controlador de entrada y salida de JDBC que se usa para la conexión:
-
MySQL:
com.mysql.cj.jdbc.Driver
-
PostgreSQL:
org.postgresql.Driver
-
Microsoft SQL Server:
com.microsoft.sqlserver.jdbc.SQLServerDriver
-
Oracle:
oracle.jdbc.driver.OracleDriver
-
MySQL:
-
INPUT_PARTITION_COLUMN, LOWERBOUND, UPPERBOUND, NUM_PARTITIONS: Opcional. Si se utiliza, se deben especificar todos los parámetros siguientes:
- INPUT_PARTITION_COLUMN: Es el nombre de la columna de partición de tabla de entrada de JDBC.
- LOWERBOUND: límite inferior de la columna de partición de tabla de entrada de JDBC que se usa para determinar el segmento de partición.
- UPPERBOUND: Límite superior de la columna de partición de tabla de entrada de JDBC que se usa para determinar el segmento de partición.
- NUM_PARTITIONS: La cantidad máxima de particiones que se pueden usar para el paralelismo de lecturas y escrituras de tablas. Si se especifica, este valor se usa para la conexión de entrada y salida de JDBC.
- FETCHSIZE: Opcional Cuántas filas se deben recuperar por ida y vuelta.
-
BATCH_SIZE: Opcional Cantidad de registros que se insertarán por ida y vuelta. Predeterminado:
1000
. -
MODE: Opcional Modo de escritura para la salida de JDBC.
Opciones:
Append
,Overwrite
,Ignore
oErrorIfExists
. - TABLE_PROPERTIES: Opcional Esta opción permite configurar las opciones de tabla y partición específicas de la base de datos cuando se crea la tabla de salida.
- PRIMARY_KEY: Opcional Columna de clave primaria de la tabla de salida. La columna mencionada no debe contener valores duplicados; de lo contrario, se mostrará un error.
- JDBC_SESSION_INIT: Opcional Declaración de inicialización de sesión para leer plantillas de Java.
-
LOG_LEVEL: Opcional Nivel de registro. Puede ser
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oWARN
. Valor predeterminado:INFO
. - TEMP_VIEW y TEMP_QUERY: Opcionales. Puedes usar estos dos parámetros opcionales para aplicar una transformación de Spark SQL mientras cargas datos en Cloud Storage. TEMP_VIEW debe ser el mismo que el nombre de la tabla que se usa en la consulta, y TEMP_QUERY es la declaración de consulta.
- SERVICE_ACCOUNT: Opcional Si no se proporciona, se usa la cuenta de servicio predeterminada de Compute Engine.
-
PROPERTY y PROPERTY_VALUE: Opcionales. Lista de pares de propiedad de Spark=
value
separados por comas. -
LABEL y LABEL_VALUE: Opcionales. Lista separada por comas de pares
label
=value
. -
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 mediante una clave administrada por Google y propiedad de 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 \ --project="PROJECT_ID" \ --region="REGION" \ --version="1.1" \ --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH,OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH" \ --subnet="SUBNET" \ --kms-key="KMS_KEY" \ --service-account="SERVICE_ACCOUNT" \ --properties="PROPERTY=PROPERTY_VALUE" \ --labels="LABEL=LABEL_VALUE" \ -- --template JDBCTOJDBC \ --templateProperty project.id="PROJECT_ID" \ --templateProperty log.level="LOG_LEVEL" \ --templateProperty jdbctojdbc.input.url="INPUT_JDBC_CONNECTION_URL" \ --templateProperty jdbctojdbc.input.driver="INPUT_DRIVER" \ --templateProperty jdbctojdbc.input.table="INPUT_JDBC_TABLE" \ --templateProperty jdbctojdbc.output.url="OUTPUT_JDBC_CONNECTION_URL" \ --templateProperty jdbctojdbc.output.driver="OUTPUT_DRIVER" \ --templateProperty jdbctojdbc.output.table="OUTPUT_JDBC_TABLE" \ --templateProperty jdbctojdbc.input.fetchsize="FETCHSIZE" \ --templateProperty jdbctojdbc.input.partitioncolumn="INPUT_PARTITION_COLUMN" \ --templateProperty jdbctojdbc.input.lowerbound="LOWERBOUND" \ --templateProperty jdbctojdbc.input.upperbound="UPPERBOUND" \ --templateProperty jdbctojdbc.numpartitions="NUM_PARTITIONS" \ --templateProperty jdbctojdbc.output.mode="MODE" \ --templateProperty jdbctojdbc.output.batch.size="BATCH_SIZE" \ --templateProperty jdbctojdbc.output.primary.key="PRIMARY_KEY" \ --templateProperty jdbctojdbc.output.create.table.option="TABLE_PROPERTIES" \ --templateProperty jdbctojdbc.sessioninitstatement="JDBC_SESSION_INIT" \ --templateProperty jdbctojdbc.temp.view.name="TEMP_VIEW" \ --templateProperty jdbctojdbc.sql.query="TEMP_QUERY"
Windows (PowerShell)
gcloud dataproc batches submit spark ` --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ` --project="PROJECT_ID" ` --region="REGION" ` --version="1.1" ` --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH,OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH" ` --subnet="SUBNET" ` --kms-key="KMS_KEY" ` --service-account="SERVICE_ACCOUNT" ` --properties="PROPERTY=PROPERTY_VALUE" ` --labels="LABEL=LABEL_VALUE" ` -- --template JDBCTOJDBC ` --templateProperty project.id="PROJECT_ID" ` --templateProperty log.level="LOG_LEVEL" ` --templateProperty jdbctojdbc.input.url="INPUT_JDBC_CONNECTION_URL" ` --templateProperty jdbctojdbc.input.driver="INPUT_DRIVER" ` --templateProperty jdbctojdbc.input.table="INPUT_JDBC_TABLE" ` --templateProperty jdbctojdbc.output.url="OUTPUT_JDBC_CONNECTION_URL" ` --templateProperty jdbctojdbc.output.driver="OUTPUT_DRIVER" ` --templateProperty jdbctojdbc.output.table="OUTPUT_JDBC_TABLE" ` --templateProperty jdbctojdbc.input.fetchsize="FETCHSIZE" ` --templateProperty jdbctojdbc.input.partitioncolumn="INPUT_PARTITION_COLUMN" ` --templateProperty jdbctojdbc.input.lowerbound="LOWERBOUND" ` --templateProperty jdbctojdbc.input.upperbound="UPPERBOUND" ` --templateProperty jdbctojdbc.numpartitions="NUM_PARTITIONS" ` --templateProperty jdbctojdbc.output.mode="MODE" ` --templateProperty jdbctojdbc.output.batch.size="BATCH_SIZE" ` --templateProperty jdbctojdbc.output.primary.key="PRIMARY_KEY" ` --templateProperty jdbctojdbc.output.create.table.option="TABLE_PROPERTIES" ` --templateProperty jdbctojdbc.sessioninitstatement="JDBC_SESSION_INIT" ` --templateProperty jdbctojdbc.temp.view.name="TEMP_VIEW" ` --templateProperty jdbctojdbc.sql.query="TEMP_QUERY"
Windows (cmd.exe)
gcloud dataproc batches submit spark ^ --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ^ --project="PROJECT_ID" ^ --region="REGION" ^ --version="1.1" ^ --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar,INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH,OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH" ^ --subnet="SUBNET" ^ --kms-key="KMS_KEY" ^ --service-account="SERVICE_ACCOUNT" ^ --properties="PROPERTY=PROPERTY_VALUE" ^ --labels="LABEL=LABEL_VALUE" ^ -- --template JDBCTOJDBC ^ --templateProperty project.id="PROJECT_ID" ^ --templateProperty log.level="LOG_LEVEL" ^ --templateProperty jdbctojdbc.input.url="INPUT_JDBC_CONNECTION_URL" ^ --templateProperty jdbctojdbc.input.driver="INPUT_DRIVER" ^ --templateProperty jdbctojdbc.input.table="INPUT_JDBC_TABLE" ^ --templateProperty jdbctojdbc.output.url="OUTPUT_JDBC_CONNECTION_URL" ^ --templateProperty jdbctojdbc.output.driver="OUTPUT_DRIVER" ^ --templateProperty jdbctojdbc.output.table="OUTPUT_JDBC_TABLE" ^ --templateProperty jdbctojdbc.input.fetchsize="FETCHSIZE" ^ --templateProperty jdbctojdbc.input.partitioncolumn="INPUT_PARTITION_COLUMN" ^ --templateProperty jdbctojdbc.input.lowerbound="LOWERBOUND" ^ --templateProperty jdbctojdbc.input.upperbound="UPPERBOUND" ^ --templateProperty jdbctojdbc.numpartitions="NUM_PARTITIONS" ^ --templateProperty jdbctojdbc.output.mode="MODE" ^ --templateProperty jdbctojdbc.output.batch.size="BATCH_SIZE" ^ --templateProperty jdbctojdbc.output.primary.key="PRIMARY_KEY" ^ --templateProperty jdbctojdbc.output.create.table.option="TABLE_PROPERTIES" ^ --templateProperty jdbctojdbc.sessioninitstatement="JDBC_SESSION_INIT" ^ --templateProperty jdbctojdbc.temp.view.name="TEMP_VIEW" ^ --templateProperty jdbctojdbc.sql.query="TEMP_QUERY"
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 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 ejecutagsutil ls gs://dataproc-templates-binaries
para enumerar las versiones de plantilla disponibles). -
INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH y
OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH:
Obligatorios. La ruta de acceso completa de Cloud Storage, incluido el nombre de archivo, en el que se almacenan los archivos JD del conector de JDBC de entrada y salida.
Nota: Si los archivos jar de entrada y de salida son iguales, solo basta con configurar INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH.
Puedes usar los siguientes comandos para descargar conectores de JDBC y subirlos a Cloud Storage:
-
MySQL:
wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.30.tar.gz
-
PostgreSQL:
wget https://jdbc.postgresql.org/download/postgresql-42.2.6.jar
-
Microsoft SQL Server:
wget https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/6.4.0.jre8/mssql-jdbc-6.4.0.jre8.jar
-
Oracle:
wget https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/21.7.0.0/ojdbc8-21.7.0.0.jar
-
MySQL:
-
Las siguientes variables se usan para construir la URL de JDBC de entrada obligatoria:
- INPUT_JDBC_HOST
- INPUT_JDBC_PORT
- INPUT_JDBC_DATABASE o, para Oracle, INPUT_JDBC_SERVICE
- INPUT_JDBC_USERNAME
- INPUT_JDBC_PASSWORD
Crea el INPUT_JDBC_CONNECTION_URL con uno de los siguientes formatos específicos del conector:
-
MySQL:
jdbc:mysql://INPUT_JDBC_HOST:INPUT_JDBC_PORT/INPUT_JDBC_DATABASE?user=INPUT_JDBC_USERNAME&password=INPUT_JDBC_PASSWORD
-
PostgreSQL:
jdbc:postgresql://INPUT_JDBC_HOST:INPUT_JDBC_PORT/INPUT_JDBC_DATABASE?user=INPUT_JDBC_USERNAME&password=INPUT_JDBC_PASSWORD
-
Microsoft SQL Server:
jdbc:sqlserver://INPUT_JDBC_HOST:INPUT_JDBC_PORT;databaseName=INPUT_JDBC_DATABASE;user=INPUT_JDBC_USERNAME;password=INPUT_JDBC_PASSWORD
-
Oracle:
jdbc:oracle:thin:@//INPUT_JDBC_HOST:INPUT_JDBC_PORT/INPUT_JDBC_SERVICE?user=INPUT_JDBC_USERNAME&password=INPUT_JDBC_PASSWORD
-
Las siguientes variables se usan para crear la URL de JDBC de salida obligatoria:
- OUTPUT_JDBC_HOST
- OUTPUT_JDBC_PORT
- OUTPUT_JDBC_DATABASE o, para Oracle, OUTPUT_JDBC_SERVICE
- OUTPUT_JDBC_USERNAME
- OUTPUT_JDBC_PASSWORD
Crea el OUTPUT_JDBC_CONNECTION_URL con uno de los siguientes formatos específicos del conector:
-
MySQL:
jdbc:mysql://OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT/OUTPUT_JDBC_DATABASE?user=OUTPUT_JDBC_USERNAME&password=OUTPUT_JDBC_PASSWORD
-
PostgreSQL:
jdbc:postgresql://OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT/OUTPUT_JDBC_DATABASE?user=OUTPUT_JDBC_USERNAME&password=OUTPUT_JDBC_PASSWORD
-
Microsoft SQL Server:
jdbc:sqlserver://OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT;databaseName=OUTPUT_JDBC_DATABASE;user=OUTPUT_JDBC_USERNAME;password=OUTPUT_JDBC_PASSWORD
-
Oracle:
jdbc:oracle:thin:@//OUTPUT_JDBC_HOST:OUTPUT_JDBC_PORT/OUTPUT_JDBC_SERVICE?user=OUTPUT_JDBC_USERNAME&password=OUTPUT_JDBC_PASSWORD
-
INPUT_JDBC_TABLE: Obligatorio. Ingresa el nombre de la tabla de JDBC o una consulta en SQL en la tabla de entrada de JDBC.
Ejemplo (la consulta en SQL debe estar entre paréntesis):
(select * from TABLE_NAME) as ALIAS_TABLE_NAME
- OUTPUT_JDBC_TABLE: Obligatorio. Tabla de JDBC en la que se almacenará el resultado.
-
INPUT_DRIVER y
OUTPUT_DRIVER:
Obligatorios. El controlador de entrada y salida de JDBC que se usa para la conexión:
-
MySQL:
com.mysql.cj.jdbc.Driver
-
PostgreSQL:
org.postgresql.Driver
-
Microsoft SQL Server:
com.microsoft.sqlserver.jdbc.SQLServerDriver
-
Oracle:
oracle.jdbc.driver.OracleDriver
-
MySQL:
-
INPUT_PARTITION_COLUMN, LOWERBOUND, UPPERBOUND, NUM_PARTITIONS: Opcional. Si se utiliza, se deben especificar todos los parámetros siguientes:
- INPUT_PARTITION_COLUMN: Es el nombre de la columna de partición de tabla de entrada de JDBC.
- LOWERBOUND: límite inferior de la columna de partición de tabla de entrada de JDBC que se usa para determinar el segmento de partición.
- UPPERBOUND: Límite superior de la columna de partición de tabla de entrada de JDBC que se usa para determinar el segmento de partición.
- NUM_PARTITIONS: La cantidad máxima de particiones que se pueden usar para el paralelismo de lecturas y escrituras de tablas. Si se especifica, este valor se usa para la conexión de entrada y salida de JDBC.
- FETCHSIZE: Opcional Cuántas filas se deben recuperar por ida y vuelta.
-
BATCH_SIZE: Opcional Cantidad de registros que se insertarán por ida y vuelta. Predeterminado:
1000
. -
MODE: Opcional Modo de escritura para la salida de JDBC.
Opciones:
Append
,Overwrite
,Ignore
oErrorIfExists
. - TABLE_PROPERTIES: Opcional Esta opción permite configurar las opciones de tabla y partición específicas de la base de datos cuando se crea la tabla de salida.
- PRIMARY_KEY: Opcional Columna de clave primaria de la tabla de salida. La columna mencionada no debe contener valores duplicados; de lo contrario, se mostrará un error.
- JDBC_SESSION_INIT: Opcional Declaración de inicialización de sesión para leer plantillas de Java.
-
LOG_LEVEL: Opcional Nivel de registro. Puede ser
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oWARN
. Valor predeterminado:INFO
. - TEMP_VIEW y TEMP_QUERY: Opcionales. Puedes usar estos dos parámetros opcionales para aplicar una transformación de Spark SQL mientras cargas datos en Cloud Storage. TEMP_VIEW debe ser el mismo que el nombre de la tabla que se usa en la consulta, y TEMP_QUERY es la declaración de consulta.
- SERVICE_ACCOUNT: Opcional Si no se proporciona, se usa la cuenta de servicio predeterminada de Compute Engine.
-
PROPERTY y PROPERTY_VALUE: Opcionales. Lista de pares de propiedad de Spark=
value
separados por comas. -
LABEL y LABEL_VALUE: Opcionales. Lista separada por comas de pares
label
=value
. -
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 mediante una clave administrada por Google y propiedad de 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","JDBCTOJDBC", "--templateProperty","log.level=LOG_LEVEL", "--templateProperty","project.id=PROJECT_ID", "--templateProperty","jdbctojdbc.input.url=INPUT_JDBC_CONNECTION_URL", "--templateProperty","jdbctojdbc.input.driver=INPUT_DRIVER", "--templateProperty","jdbctojdbc.input.table=INPUT_TABLE", "--templateProperty","jdbctojdbc.output.url=OUTPUT_JDBC_CONNECTION_URL", "--templateProperty","jdbctojdbc.output.driver=OUTPUT_DRIVER", "--templateProperty","jdbctojdbc.output.table=OUTPUT_TABLE", "--templateProperty","jdbctojdbc.input.fetchsize=FETCHSIZE", "--templateProperty","jdbctojdbc.input.partitioncolumn=INPUT_PARTITION_COLUMN", "--templateProperty","jdbctojdbc.input.lowerbound=LOWERBOUND", "--templateProperty","jdbctojdbc.input.upperbound=UPPERBOUND", "--templateProperty","jdbctojdbc.numpartitions=NUM_PARTITIONS", "--templateProperty","jdbctojdbc.output.mode=MODE", "--templateProperty","jdbctojdbc.output.batch.size=BATCH_SIZE", "--templateProperty","jdbctojdbc.output.primary.key=PRIMARY_KEY", "--templateProperty","jdbctojdbc.output.create.table.option=TABLE_PROPERTIES", "--templateProperty","jdbctojdbc.sessioninitstatement=JDBC_SESSION_INIT", "--templateProperty","jdbctojdbc.temp.view.name=TEMP_VIEW", "--templateProperty","jdbctojdbc.sql.query=TEMP_QUERY" ], "jarFileUris": [ "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar", "INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH", "OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH" ] } }
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" } }