Plantilla de JDBC a JDBC

Usa el JDBC sin servidores de Dataproc para JDBC plantilla 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 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. El ID de tu 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 ejecuta gcloud storage ls gs://dataproc-templates-binaries para ver una lista de 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 se almacenan los archivos jar de salida del conector de JDBC.

    Nota: Si los frascos de entrada y salida son los mismos, será suficiente con configurar solo 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

  • Las siguientes variables se usan para crear 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 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. Ingresa el nombre de la tabla de JDBC o la consulta en SQL en la tabla de entrada de JDBC.

    Ejemplo (la consulta de 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 y NUM_PARTITIONS: Opcional. Si se usa, se deben especificar todos los siguientes parámetros:
    • INPUT_PARTITION_COLUMN: Es el nombre de la columna de partición de la 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: Es la cantidad máxima de particiones que se pueden usar para el paralelismo de las operaciones de lectura y escritura de tablas. Si se especifica, este valor se usa para JDBC. como una conexión de entrada y salida.
  • FETCHSIZE: Opcional Cuántas filas recuperar 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 configurar opciones de tabla y partición específicas de la base de datos cuando se crea la tabla de resultados.
  • PRIMARY_KEY: Opcional Es la 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 Sentencia de inicialización de la sesión para leer 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 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 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. El ID de tu 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 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 se almacenan los archivos jar de salida del conector de JDBC.

    Nota: Si los frascos de entrada y salida son los mismos, será suficiente con configurar solo 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

  • Las siguientes variables se usan para crear 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 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. Ingresa el nombre de la tabla de JDBC o la consulta en SQL en la tabla de entrada de JDBC.

    Ejemplo (la consulta de 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 y NUM_PARTITIONS: Opcional. Si se usa, se deben especificar todos los siguientes parámetros:
    • INPUT_PARTITION_COLUMN: Es el nombre de la columna de partición de la 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: Es la cantidad máxima de particiones que se pueden usar para el paralelismo de las operaciones de lectura y escritura de tablas. Si se especifica, este valor se usa para JDBC. como una conexión de entrada y salida.
  • FETCHSIZE: Opcional Cuántas filas recuperar 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 configurar opciones de tabla y partición específicas de la base de datos cuando se crea la tabla de resultados.
  • PRIMARY_KEY: Opcional Es la 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 Sentencia de inicialización de la sesión para leer 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 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 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. Es una lista separada por comas de pares propiedad de Spark=value.
  • LABEL y LABEL_VALUE: Opcional. Es una 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 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

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"
  }
}