Dataplex fournit des modèles (basés sur Dataflow) pour effectuer des tâches de traitement de données courantes, telles que l'ingestion, le traitement et la gestion du cycle de vie des données. Ce guide explique comment configurer et exécuter un modèle qui ingère des données à l'aide d'une connexion JDBC.
Avant de commencer
Les modèles de tâches Dataplex sont basés sur Dataflow. Avant d'utiliser des modèles, activez les API Dataflow.
Modèle: Ingérer des données dans Dataplex à l'aide d'une connexion JDBC
Le modèle d'ingestion JDBC Dataplex copie les données d'une base de données relationnelle dans une cible d'élément Dataplex. L'élément Dataplex peut être un élément Cloud Storage ou un élément BigQuery.
Ce pipeline utilise JDBC pour se connecter à la base de données relationnelle. Pour obtenir une couche supplémentaire de protection, vous pouvez également transmettre une clé Cloud KMS avec des paramètres de nom d'utilisateur, de mot de passe et de chaîne de connexion encodés en base64 et chiffrés avec la clé Cloud KMS.
Le modèle gère de manière transparente les différents types d'assets. Les données stockées sur l'asset Cloud Storage sont partitionnées selon le style Hive, et la découverte Dataplex les rend automatiquement disponibles en tant que table dans Data Catalog, BigQuery (table externe) ou une instance Dataproc Metastore associée.
Paramètres de modèle
Paramètre | Description |
---|---|
driverJars |
Séparez les chemins Cloud Storage pour les pilotes JDBC à l'aide de virgules.
Par exemple, gs://your-bucket/driver_jar1.jar ,
gs://your-bucket/driver_jar2.jar. |
connectionURL |
Chaîne de connexion d'URL à utiliser pour vous connecter à la source JDBC.
Par exemple, jdbc:mysql://some-host:3306/sampledb .
Vous pouvez transmettre l'URL de connexion en texte brut ou en tant que chaîne encodée en base64 chiffrée par Cloud KMS. |
driverClassName |
Nom de la classe du pilote JDBC.
Par exemple, com.mysql.jdbc.Driver . |
connectionProperties |
Chaîne de propriétés à utiliser pour la connexion JDBC.
Par exemple, unicode=true&characterEncoding=UTF-8 . |
query |
Requête à exécuter sur la source pour extraire les données.
Par exemple, select * from sampledb.sample_table . |
outputAsset |
ID de l'élément de sortie Dataplex dans lequel les résultats sont stockés. Pour l'ID, utilisez le format projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code> . Vous trouverez l'outputAsset dans la console Google Cloud, dans l'onglet Détails de l'asset Dataplex. |
username |
Nom d'utilisateur à utiliser pour la connexion JDBC. Vous pouvez transmettre le nom d'utilisateur en texte brut ou en tant que chaîne encodée en base64 chiffrée par Cloud KMS. |
password |
Mot de passe à utiliser pour la connexion JDBC. Vous pouvez transmettre le mot de passe en texte brut ou en tant que chaîne encodée en base64 chiffrée par Cloud KMS. |
outputTable |
Emplacement de la table BigQuery ou nom du dossier racine Cloud Storage dans lequel écrire la sortie. S'il s'agit d'un emplacement de table BigQuery, le schéma de la table doit correspondre au schéma de la requête source et doit être au format some-project-id:somedataset.sometable .
S'il s'agit d'un dossier racine Cloud Storage, indiquez son nom. |
KMSEncryptionKey |
Facultatif: Si vous fournissez le paramètre KMSEncryptionKey , assurez-vous que password , username et connectionURL sont chiffrés par Cloud KMS. Chiffrez ces paramètres à l'aide du point de terminaison de chiffrement de l'API Cloud KMS. Par exemple, projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart . |
writeDisposition |
Facultatif: Stratégie à appliquer si le fichier/la table cible existe. Les formats acceptés sont WRITE_APPEND (les lignes seront ajoutées si la table existe), WRITE_TRUNCATE (la table/le fichier sera écrasé), WRITE_EMPTY (la table de sortie doit être vide/le fichier de sortie ne doit pas exister) et SKIP (ignorer l'écriture dans le fichier s'il existe). Pour BigQuery, les formats autorisés sont les suivants: WRITE_APPEND ,
WRITE_TRUNCATE et WRITE_EMPTY . Pour Cloud Storage, les formats autorisés sont les suivants: SKIP , WRITE_TRUNCATE et WRITE_EMPTY . Valeur par défaut: WRITE_EMPTY .
|
partitioningScheme |
Facultatif: schéma de partition lors de l'écriture du fichier. La valeur par défaut pour ce paramètre est DAILY . Les autres valeurs du paramètre peuvent être MONTHLY ou HOURLY . |
partitionColumn |
Facultatif: colonne de partitionnement sur laquelle la partition est basée. Le type de colonne doit être au format timestamp/date . Si le paramètre partitionColumn n'est pas fourni, les données ne seront pas partitionnées. |
fileFormat |
(Facultatif) Format du fichier de sortie dans Cloud Storage. Les fichiers sont compressés avec le paramètre par défaut de compression Snappy. La valeur par défaut pour ce paramètre est PARQUET . Une autre valeur du paramètre est AVRO . |
updateDataplexMetadata |
Facultatif: indique si les métadonnées Dataplex doivent être mises à jour pour les entités nouvellement créées. La valeur par défaut pour ce paramètre est Si cette option est activée, le pipeline copie automatiquement le schéma de la source vers les entités Dataplex de destination, et la découverte automatique Dataplex ne s'exécute pas pour elles. Utilisez cet indicateur si vous avez géré le schéma à la source. Compatible uniquement avec la destination Cloud Storage. |
Exécuter le modèle
Console
Dans la console Google Cloud, accédez à la page Dataplex:
Accédez à la vue Process (Procédure).
Cliquez sur Créer une tâche.
Sous Ingérer des données JDBC dans Dataplex, cliquez sur Créer une tâche.
Choisissez un lac Dataplex.
Indiquez un nom de tâche.
Choisissez une région pour l'exécution de la tâche.
Renseignez les paramètres requis.
Cliquez sur Continuer.
gcloud
Dans votre shell ou votre terminal, exécutez le modèle suivant:
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview \ --parameters \ driverJars=DRIVER_JARS,\ connectionUrl=CONNECTION_URL,\ driverClassName=DRIVER_CLASS_NAME,\ connectionProperties=CONNECTION_PROPERTIES,\ query=QUERY\ outputAsset=OUTPUT_ASSET\
Remplacez les éléments suivants :
JOB_NAME: a job name of your choice PROJECT_ID: your template project ID DRIVER_JARS: path to your JDBC drivers CONNECTION_URL: your JDBC connection URL string DRIVER_CLASS_NAME: your JDBC driver class name CONNECTION_PROPERTIES: your JDBC connection property string QUERY: your JDBC source SQL query OUTPUT_ASSET: your Dataplex output asset ID
API REST
Envoyez une requête POST HTTP :
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "driverJars": "DRIVER_JARS", "connectionUrl": "CONNECTION_URL", "driverClassName": "DRIVER_CLASS_NAME", "connectionProperties": "CONNECTION_PROPERTIES", "query": "QUERY" "outputAsset": "OUTPUT_ASSET" }, "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview", } }
Remplacez les éléments suivants :
PROJECT_ID: your template project ID REGION_NAME: region in which to run the job JOB_NAME: a job name of your choice DRIVER_JARS: path to your JDBC drivers CONNECTION_URL: your JDBC connection URL string DRIVER_CLASS_NAME: your JDBC driver class name CONNECTION_PROPERTIES: your JDBC connection property string QUERY: your JDBC source SQL query OUTPUT_ASSET: your Dataplex output asset ID
Étape suivante
- Découvrez comment gérer votre lac.
- Découvrez comment gérer vos zones.