Plantilla de JDBC a JDBC

Usa el JDBC sin servidores de Dataproc para JDBC plantilla para extraer datos de JDBC a JDBC.

Esta plantilla es compatible con las siguientes bases de datos:

  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • Oracle

Usa la plantilla

Ejecuta la plantilla con gcloud CLI o Dataproc en la API de Cloud.

gcloud

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Obligatorio. Tu cuenta de Google Cloud el ID del proyecto 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 ejecuta gcloud storage 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 Obligatorio. La ruta de acceso completa de Cloud Storage, incluido el nombre del archivo, donde se encuentran los archivos jar de salida del conector de JDBC.

    Nota: Si los archivos jar de entrada y de salida son iguales, configurar solo INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH es suficiente.

    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

  • 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 mediante una de las siguientes opciones: 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 construir 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 mediante una de las siguientes opciones: 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. Nombre de la tabla de JDBC de entrada o 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 de salida.
  • INPUT_DRIVER y OUTPUT_DRIVER Obligatorio. 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
  • INPUT_PARTITION_COLUMN, LOWERBOUND: UPPERBOUND, NUM_PARTITIONS: Opcional. Si se usa, se deben especificar todos los siguientes parámetros:
    • INPUT_PARTITION_COLUMN: 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 JDBC. como una conexión de entrada y salida.
  • FETCHSIZE: Opcional Cuántas filas se recuperarán por ida y vuelta.
  • BATCH_SIZE: Opcional Cantidad de registros para insertar por ida y vuelta. Predeterminado: 1000.
  • MODE: Opcional Modo de escritura para la salida de JDBC. Opciones: Append, Overwrite, Ignore, o ErrorIfExists.
  • TABLE_PROPERTIES: Opcional Esta opción permite de las opciones de tablas y particiones específicas de la base de datos cuando se crea la tabla de salida.
  • PRIMARY_KEY: Opcional Columna de clave primaria para el resultado desde una tabla de particiones. La columna mencionada no debe contener valores duplicados; de lo contrario, se mostrará un error.
  • JDBC_SESSION_INIT: Opcional Sesión para leer las plantillas de Java.
  • LOG_LEVEL: Opcional Nivel de registro. Puede ser uno de ALL, DEBUG, ERROR, FATAL y INFO, OFF, TRACE o WARN. Predeterminado: INFO.
  • TEMP_VIEW y TEMP_QUERY: Opcional. Puedes usar estos dos parámetros opcionales para aplicar una transformación Spark SQL mientras se cargan los datos a 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 instrucción de la consulta.
  • 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. Lista de elementos separados por comas label=value pares.
  • KMS_KEY: Opcional La clave de Cloud Key Management Service que se debe usar para la encriptación. Si no se especifica una clave, los datos se encriptado en reposo con una clave de propiedad de Google y 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 \
    --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. Tu cuenta de Google Cloud el ID del proyecto 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 ejecuta gcloud storage 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 Obligatorio. La ruta de acceso completa de Cloud Storage, incluido el nombre del archivo, donde se encuentran los archivos jar de salida del conector de JDBC.

    Nota: Si los archivos jar de entrada y de salida son iguales, configurar solo INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH es suficiente.

    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

  • 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 mediante una de las siguientes opciones: 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 construir 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 mediante una de las siguientes opciones: 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. Nombre de la tabla de JDBC de entrada o 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 de salida.
  • INPUT_DRIVER y OUTPUT_DRIVER Obligatorio. 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
  • INPUT_PARTITION_COLUMN, LOWERBOUND: UPPERBOUND, NUM_PARTITIONS: Opcional. Si se usa, se deben especificar todos los siguientes parámetros:
    • INPUT_PARTITION_COLUMN: 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 JDBC. como una conexión de entrada y salida.
  • FETCHSIZE: Opcional Cuántas filas se recuperarán por ida y vuelta.
  • BATCH_SIZE: Opcional Cantidad de registros para insertar por ida y vuelta. Predeterminado: 1000.
  • MODE: Opcional Modo de escritura para la salida de JDBC. Opciones: Append, Overwrite, Ignore, o ErrorIfExists.
  • TABLE_PROPERTIES: Opcional Esta opción permite de las opciones de tablas y particiones específicas de la base de datos cuando se crea la tabla de salida.
  • PRIMARY_KEY: Opcional Columna de clave primaria para el resultado desde una tabla de particiones. La columna mencionada no debe contener valores duplicados; de lo contrario, se mostrará un error.
  • JDBC_SESSION_INIT: Opcional Sesión para leer las plantillas de Java.
  • LOG_LEVEL: Opcional Nivel de registro. Puede ser uno de ALL, DEBUG, ERROR, FATAL y INFO, OFF, TRACE o WARN. Predeterminado: INFO.
  • TEMP_VIEW y TEMP_QUERY: Opcional. Puedes usar estos dos parámetros opcionales para aplicar una transformación Spark SQL mientras se cargan los datos a 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 instrucción de la consulta.
  • 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. Lista de elementos separados por comas label=value pares.
  • KMS_KEY: Opcional La clave de Cloud Key Management Service que se debe usar para la encriptación. Si no se especifica una clave, los datos se encriptado en reposo con una clave de propiedad de Google y 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","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"
  }
}