Ingérer à l'aide de modèles

Dataplex fournit des modèles (fournis par Dataflow) permettant d'effectuer des tâches courantes de traitement de données 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 fournis par Dataflow. Avant d'utiliser des modèles, activez les API Dataflow.

Activer 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 BigQuery.

Ce pipeline utilise JDBC pour se connecter à la base de données relationnelle. Pour obtenir une couche de protection supplémentaire, vous pouvez également transmettre une clé Cloud KMS ainsi qu'un nom d'utilisateur, un mot de passe et des paramètres de chaîne de connexion encodés en base64 avec la clé Cloud KMS.

Le modèle gère les différents types d'assets en toute transparence. Les données stockées sur l'élément Cloud Storage sont partitionnées en fonction du style Hive, et Discovery dans Dataplex la rend automatiquement disponible en tant que table dans Data Catalog, BigQuery (table externe) ou en tant qu'instance Dataproc Metastore associée.

Paramètres de modèle

Paramètre Description
driverJars Utilisez des virgules pour séparer les chemins d'accès Cloud Storage des pilotes JDBC.
Par exemple : gs://your-bucket/driver_jar1.jar, gs://your-bucket/driver_jar2.jar.
connectionURL Chaîne de connexion de l'URL à connecter à la source JDBC.
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.
Exemple: com.mysql.jdbc.Driver.
connectionProperties Chaîne de propriétés à utiliser pour la connexion JDBC.
Exemple: unicode=true&characterEncoding=UTF-8.
query Requête à exécuter sur la source pour extraire les données.
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 pouvez consulter outputAsset dans la console Google Cloud, dans l'onglet Détails de l'élément Dataplex.
username Nom d'utilisateur à utiliser pour la connexion JDBC. Vous pouvez transmettre le nom d'utilisateur sous forme de texte brut ou de 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 Cloud Storage supérieur 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 Cloud Storage supérieur, indiquez le nom du dossier racine.
KMSEncryptionKey (Facultatif) Si vous fournissez le paramètre KMSEncryptionKey, assurez-vous que vos paramètres 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. Exemple : projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart
writeDisposition (Facultatif) La stratégie à utiliser si le fichier/table cible existe. Les formats compatibles sont WRITE_APPEND (les lignes seront ajoutées si une 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 si elle existe). Pour BigQuery, les formats autorisés sont WRITE_APPEND, WRITE_TRUNCATE et WRITE_EMPTY. Pour Cloud Storage, les formats autorisés sont: 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 de ce paramètre est DAILY. Les autres valeurs du paramètre peuvent être MONTHLY ou HOURLY.
partitionColumn (Facultatif) Colonne de partition 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 de 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 de ce paramètre est PARQUET. Une autre valeur du paramètre est AVRO.
updateDataplexMetadata

(Facultatif) Permet de mettre à jour les métadonnées Dataplex pour les entités nouvellement créées. La valeur par défaut de ce paramètre est false.

Si cette option est activée, le pipeline copie automatiquement le schéma de la source vers les entités de destination Dataplex, et la détection Dataplex automatisée ne s'exécute pas pour elles. Utilisez cet indicateur si vous disposez d'un schéma géré à la source.

Uniquement compatible avec la destination Cloud Storage.

Exécuter le modèle

Console

  1. Dans la console Google Cloud, accédez à la page Dataplex:

    Accéder à Dataplex

  2. Accédez à la vue Traiter.

  3. Cliquez sur Créer une tâche.

  4. Sous Ingérer des données JDBC dans Dataplex, cliquez sur Créer une tâche.

  5. Choisissez un lac Dataplex.

  6. Indiquez un nom de tâche.

  7. Choisissez une région pour l'exécution de la tâche.

  8. Saisissez les paramètres obligatoires.

  9. Cliquez sur Continuer.

gcloud

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

Dans le shell ou le terminal, exécutez le modèle :

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\

API REST

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

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

Étapes suivantes