Modèle JDBC vers JDBC
Utilisez le modèle Dataproc sans serveur JDBC vers JDBC pour extraire des 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 la CLI gcloud 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. ID de votre 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 RÉGION 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 la dernière version du modèle ou la date d'une version spécifique. par exemple,2023-03-17_v0.1.0-beta
(visitez gs://dataproc-templates-binaries ou exécutezgcloud storage ls gs://dataproc-templates-binaries
pour obtenir la liste des versions de modèle disponibles). -
INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH et
OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH:
Obligatoire. Chemin d'accès complet à Cloud Storage, y compris le nom du fichier, où l'entrée et
les fichiers JDBC de sortie sont stockés.
Remarque:Si les fichiers JAR d'entrée et de sortie sont identiques, définir uniquement INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH suffit.
Vous pouvez utiliser les commandes suivantes pour télécharger des connecteurs JDBC à importer 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
-
MySQL :
-
Les variables suivantes permettent de créer l'URL JDBC d'entrée requise:
- INPUT_JDBC_HOST
- INPUT_JDBC_PORT
- INPUT_JDBC_DATABASE, ou, pour Oracle, INPUT_JDBC_SERVICE
- INPUT_JDBC_USERNAME
- INPUT_JDBC_PASSWORD
Créez le INPUT_JDBC_CONNECTION_URL à l'aide de l'une des méthodes suivantes : formats 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 créer 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 le OUTPUT_JDBC_CONNECTION_URL à l'aide de l'une des méthodes suivantes : formats 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 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 où le résultat sera stocké.
-
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
-
MySQL :
-
INPUT_PARTITION_COLUMN,
LOWERBOUND,
UPPERBOUND,
NUM_PARTITIONS: facultatif. Si elle est utilisée,
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 de la colonne de partition de la table d'entrée JDBC utilisée pour déterminer la longueur de la 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 tables. Si elle est spécifiée, cette valeur est utilisée pour la connexion d'entrée et de sortie JDBC.
- FETCHSIZE : facultatif. Nombre de lignes à extraire 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
ouErrorIfExists
. - TABLE_PROPERTIES : facultatif. Cette option vous permet 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. Session d'initialisation pour lire les modèles Java.
-
LOG_LEVEL : facultatif. Niveau de journalisation Il peut s'agir de
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
ouWARN
. Valeur par défaut :INFO
. - TEMP_VIEW et TEMP_QUERY: facultatif. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement de données dans Cloud Storage. TEMP_VIEW doit être identique au nom de la table utilisé dans la requête, et TEMP_QUERY est l'instruction de requête.
- SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.
-
PROPERTY et
PROPERTY_VALUE:
Facultatif. Liste de valeurs séparées par une virgule
Propriété Spark=
value
paires. -
LABEL et LABEL_VALUE : facultatifs. Liste de valeurs séparées par une virgule
label
=value
. -
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é appartenant à Google 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 ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : valeur obligatoire. ID de votre 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 région 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 la dernière version du modèle ou la date d'une version spécifique. par exemple,2023-03-17_v0.1.0-beta
(visitez gs://dataproc-templates-binaries ou exécutezgcloud storage ls gs://dataproc-templates-binaries
pour obtenir la liste des versions de modèle disponibles). -
INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH et
OUTPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH:
Obligatoire. Chemin d'accès complet à Cloud Storage, y compris le nom du fichier, où l'entrée et
les fichiers JDBC de sortie sont stockés.
Remarque:Si les fichiers JAR d'entrée et de sortie sont identiques, définir uniquement INPUT_JDBC_CONNECTOR_CLOUD_STORAGE_PATH suffit.
Vous pouvez utiliser les commandes suivantes pour télécharger des connecteurs JDBC à importer 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
-
MySQL :
-
Les variables suivantes permettent de créer l'URL JDBC d'entrée requise:
- INPUT_JDBC_HOST
- INPUT_JDBC_PORT
- INPUT_JDBC_DATABASE, ou, pour Oracle, INPUT_JDBC_SERVICE
- INPUT_JDBC_USERNAME
- INPUT_JDBC_PASSWORD
Créez le INPUT_JDBC_CONNECTION_URL à l'aide de l'une des méthodes suivantes : formats 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 créer 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 le OUTPUT_JDBC_CONNECTION_URL à l'aide de l'une des méthodes suivantes : formats 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 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 où le résultat sera stocké.
-
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
-
MySQL :
-
INPUT_PARTITION_COLUMN,
LOWERBOUND,
UPPERBOUND,
NUM_PARTITIONS: facultatif. Si elle est utilisée,
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 de la colonne de partition de la table d'entrée JDBC utilisée pour déterminer la longueur de la 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 tables. Si elle est spécifiée, cette valeur est utilisée pour la connexion d'entrée et de sortie JDBC.
- FETCHSIZE : facultatif. Nombre de lignes à extraire 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
ouErrorIfExists
. - TABLE_PROPERTIES : facultatif. Cette option vous permet 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. Session d'initialisation pour lire les modèles Java.
-
LOG_LEVEL : facultatif. Niveau de journalisation Il peut s'agir de
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
ouWARN
. Valeur par défaut :INFO
. - TEMP_VIEW et TEMP_QUERY: facultatif. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement de données dans Cloud Storage. TEMP_VIEW doit être identique au nom de la table utilisé dans la requête, et TEMP_QUERY est l'instruction de requête.
- SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.
-
PROPERTY et
PROPERTY_VALUE:
Facultatif. Liste de paires propriété Spark=
value
séparées par une virgule. -
LABEL et
LABEL_VALUE: facultatif. Liste de valeurs séparées par une virgule
label
=value
. -
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é au repos
à l'aide d'une clé appartenant à Google 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" } }