Modèle JDBC vers JDBC

Utilisez le modèle Dataproc sans serveur JDBC vers JDBC pour extraire les données de JDBC vers JDBC.

Ce modèle est compatible avec les bases de données suivantes:

  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • Oracle

Utiliser le modèle

Exécutez le modèle à l'aide de gcloud CLI ou de l'API Dataproc.

gcloud

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : valeur obligatoire. Votre ID de projet Google Cloud répertorié dans les paramètres IAM.
  • REGION : valeur obligatoire. Région Compute Engine.
  • SUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau de la REGION spécifiée dans le réseau default est sélectionné.

    Exemple:projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • TEMPLATE_VERSION : valeur obligatoire. Spécifiez latest pour obtenir la dernière version du modèle ou la date d'une version spécifique, par exemple 2023-03-17_v0.1.0-beta (consultez gs://dataproc-templates-binaries ou exécutez gsutil ls gs://dataproc-templates-binaries pour répertorier les versions de modèle disponibles).
  • INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH et OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH : obligatoires. Chemin d'accès complet à Cloud Storage, y compris le nom de fichier, où sont stockés les fichiers JDBC des connecteurs d'entrée et de sortie.

    Remarque:Si les fichiers JAR d'entrée et de sortie sont identiques, il suffit de ne définir que INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH.

    Vous pouvez utiliser les commandes suivantes pour télécharger des connecteurs JDBC en vue de leur importation dans 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

  • Les variables suivantes sont utilisées pour construire l'URL JDBC d'entrée obligatoire :
    • INPUT_JDBC_HOST
    • INPUT_JDBC_PORT
    • INPUT_JDBC_DATABASE, ou, pour Oracle, INPUT_JDBC_SERVICE
    • INPUT_JDBC_USERNAME
    • INPUT_JDBC_PASSWORD

    Créez la INPUT_JDBC_CONNECTION_URL à l'aide de l'un des formats suivants propres au connecteur:

    • 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
  • Les variables suivantes sont utilisées pour construire l'URL JDBC de sortie obligatoire :
    • OUTPUT_JDBC_HOST
    • OUTPUT_JDBC_PORT
    • OUTPUT_JDBC_DATABASE, ou, pour Oracle, OUTPUT_JDBC_SERVICE
    • OUTPUT_JDBC_USERNAME
    • OUTPUT_JDBC_PASSWORD

    Créez la OUTPUT_JDBC_CONNECTION_URL à l'aide de l'un des formats suivants propres au connecteur:

    • 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 : valeur obligatoire. Nom de la table JDBC d'entrée ou requête SQL sur la table d'entrée JDBC.

    Exemple (la requête SQL doit être entre parenthèses): (select * from TABLE_NAME) as ALIAS_TABLE_NAME

  • OUTPUT_JDBC_TABLE : valeur obligatoire. Table JDBC dans laquelle la sortie sera stockée.
  • INPUT_DRIVER et OUTPUT_DRIVER : obligatoires. Pilote d'entrée et de sortie JDBC utilisé pour la connexion :
    • 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: facultatif. S'il est utilisé, tous les paramètres suivants doivent être spécifiés :
    • INPUT_PARTITION_COLUMN: nom de la colonne de partition de la table d'entrée JDBC
    • LOWERBOUND: limite inférieure pour la colonne de partition de la table d'entrée JDBC, utilisée pour déterminer le pas de partition.
    • UPPERBOUND: limite supérieure de la colonne de partition de la table d'entrée JDBC utilisée pour déterminer le pas de partition.
    • NUM_PARTITIONS: nombre maximal de partitions pouvant être utilisées pour le parallélisme des lectures et des écritures de table. Si cette valeur est spécifiée, elle est utilisée pour la connexion d'entrée et de sortie JDBC.
  • FETCHSIZE : facultatif. Nombre de lignes à récupérer par aller-retour.
  • BATCH_SIZE : facultatif. Nombre d'enregistrements à insérer par aller-retour. Valeur par défaut : 1000.
  • MODE : facultatif. Mode d'écriture pour la sortie JDBC Options: Append, Overwrite, Ignore ou ErrorIfExists.
  • TABLE_PROPERTIES : facultatif. Cette option permet de définir des options de table et de partition spécifiques à la base de données lors de la création de la table de sortie.
  • PRIMARY_KEY : facultatif. Colonne de clé primaire pour la table de sortie. La colonne mentionnée ne doit pas contenir de valeurs en double. Sinon, une erreur sera générée.
  • JDBC_SESSION_INIT : facultatif. Instruction d'initialisation de session pour lire les modèles Java.
  • LOG_LEVEL : facultatif. Niveau de journalisation. Peut prendre l'une des valeurs suivantes : ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE ou WARN. Valeur par défaut: INFO.
  • TEMP_VIEW et TEMP_QUERY: facultatifs. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement des données dans Cloud Storage. TEMP_VIEW doit être identique au nom de la table utilisée dans la requête, et TEMP_QUERY est l'instruction de requête.
  • SERVICE_ACCOUNT : facultatif. S'il n'est pas fourni, le compte de service Compute Engine par défaut est utilisé.
  • PROPERTY et PROPERTY_VALUE : facultatifs. Liste de paires de propriété Spark=value séparées par une virgule.
  • LABEL et LABEL_VALUE: facultatifs. Liste de paires label=value séparées par une virgule.
  • KMS_KEY : facultatif. Clé Cloud Key Management Service à utiliser pour le chiffrement. Si aucune clé n'est spécifiée, les données sont chiffrées au repos à l'aide d'une clé détenue et gérée par Google.

    Exemple:projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Exécutez la commande suivante:

Linux, macOS ou 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

Avant d'utiliser les données de requête, effectuez les remplacements suivants:

  • PROJECT_ID : valeur obligatoire. Votre ID de projet Google Cloud répertorié dans les paramètres IAM.
  • REGION : valeur obligatoire. Région Compute Engine.
  • SUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau de la REGION spécifiée dans le réseau default est sélectionné.

    Exemple:projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • TEMPLATE_VERSION : valeur obligatoire. Spécifiez latest pour obtenir la dernière version du modèle ou la date d'une version spécifique, par exemple 2023-03-17_v0.1.0-beta (consultez gs://dataproc-templates-binaries ou exécutez gsutil ls gs://dataproc-templates-binaries pour répertorier les versions de modèle disponibles).
  • INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH et OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH : obligatoires. Chemin d'accès complet à Cloud Storage, y compris le nom de fichier, où sont stockés les fichiers JDBC des connecteurs d'entrée et de sortie.

    Remarque:Si les fichiers JAR d'entrée et de sortie sont identiques, il suffit de ne définir que INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH.

    Vous pouvez utiliser les commandes suivantes pour télécharger des connecteurs JDBC en vue de leur importation dans 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

  • Les variables suivantes sont utilisées pour construire l'URL JDBC d'entrée obligatoire :
    • INPUT_JDBC_HOST
    • INPUT_JDBC_PORT
    • INPUT_JDBC_DATABASE, ou, pour Oracle, INPUT_JDBC_SERVICE
    • INPUT_JDBC_USERNAME
    • INPUT_JDBC_PASSWORD

    Créez la INPUT_JDBC_CONNECTION_URL à l'aide de l'un des formats suivants propres au connecteur:

    • 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
  • Les variables suivantes sont utilisées pour construire l'URL JDBC de sortie obligatoire :
    • OUTPUT_JDBC_HOST
    • OUTPUT_JDBC_PORT
    • OUTPUT_JDBC_DATABASE, ou, pour Oracle, OUTPUT_JDBC_SERVICE
    • OUTPUT_JDBC_USERNAME
    • OUTPUT_JDBC_PASSWORD

    Créez la OUTPUT_JDBC_CONNECTION_URL à l'aide de l'un des formats suivants propres au connecteur:

    • 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 : valeur obligatoire. Nom de la table JDBC d'entrée ou requête SQL sur la table d'entrée JDBC.

    Exemple (la requête SQL doit être entre parenthèses): (select * from TABLE_NAME) as ALIAS_TABLE_NAME

  • OUTPUT_JDBC_TABLE : valeur obligatoire. Table JDBC dans laquelle la sortie sera stockée.
  • INPUT_DRIVER et OUTPUT_DRIVER : obligatoires. Pilote d'entrée et de sortie JDBC utilisé pour la connexion :
    • 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: facultatif. S'il est utilisé, tous les paramètres suivants doivent être spécifiés :
    • INPUT_PARTITION_COLUMN: nom de la colonne de partition de la table d'entrée JDBC
    • LOWERBOUND: limite inférieure pour la colonne de partition de la table d'entrée JDBC, utilisée pour déterminer le pas de partition.
    • UPPERBOUND: limite supérieure de la colonne de partition de la table d'entrée JDBC utilisée pour déterminer le pas de partition.
    • NUM_PARTITIONS: nombre maximal de partitions pouvant être utilisées pour le parallélisme des lectures et des écritures de table. Si cette valeur est spécifiée, elle est utilisée pour la connexion d'entrée et de sortie JDBC.
  • FETCHSIZE : facultatif. Nombre de lignes à récupérer par aller-retour.
  • BATCH_SIZE : facultatif. Nombre d'enregistrements à insérer par aller-retour. Valeur par défaut : 1000.
  • MODE : facultatif. Mode d'écriture pour la sortie JDBC Options: Append, Overwrite, Ignore ou ErrorIfExists.
  • TABLE_PROPERTIES : facultatif. Cette option permet de définir des options de table et de partition spécifiques à la base de données lors de la création de la table de sortie.
  • PRIMARY_KEY : facultatif. Colonne de clé primaire pour la table de sortie. La colonne mentionnée ne doit pas contenir de valeurs en double. Sinon, une erreur sera générée.
  • JDBC_SESSION_INIT : facultatif. Instruction d'initialisation de session pour lire les modèles Java.
  • LOG_LEVEL : facultatif. Niveau de journalisation. Peut prendre l'une des valeurs suivantes : ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE ou WARN. Valeur par défaut: INFO.
  • TEMP_VIEW et TEMP_QUERY: facultatifs. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement des données dans Cloud Storage. TEMP_VIEW doit être identique au nom de la table utilisée dans la requête, et TEMP_QUERY est l'instruction de requête.
  • SERVICE_ACCOUNT : facultatif. S'il n'est pas fourni, le compte de service Compute Engine par défaut est utilisé.
  • PROPERTY et PROPERTY_VALUE : facultatifs. Liste de paires de propriété Spark=value séparées par une virgule.
  • LABEL et LABEL_VALUE: facultatifs. Liste de paires label=value séparées par une virgule.
  • KMS_KEY : facultatif. Clé Cloud Key Management Service à utiliser pour le chiffrement. Si aucune clé n'est spécifiée, les données sont chiffrées au repos à l'aide d'une clé détenue et gérée par Google.

    Exemple:projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Méthode HTTP et URL :

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches

Corps JSON de la requête :


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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :


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