Ingérer des données à l'aide de modèles

Dataplex fournit des modèles (fournis par Dataflow) pour effectuer des tâches courantes de traitement des données telles que l'ingestion, le traitement 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 instance relationnelle dans une cible d'éléments 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 un supplément de protection, vous pouvez également transmettre une clé Cloud KMS ainsi qu'un Paramètres de nom d'utilisateur, de mot de passe et de chaîne de connexion encodés en base64 chiffrés à l'aide de la clé Cloud KMS.

Le modèle gère de manière transparente les différents types d'éléments. Les données stockées sur le L'élément Cloud Storage est partitionné de style Hive et Dataplex Discovery le rend automatiquement disponible 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.
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 sous forme de texte brut ou encodé 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 la méthode mot de passe en texte brut ou sous forme de chaîne encodée en base64 Cloud KMS.
outputTable Emplacement de la table BigQuery ou premier Cloud Storage nom du dossier dans lequel écrire la sortie. S'il s'agit d'une table BigQuery emplacement de la table, son schéma 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 vos password, username et Les connectionURL sont chiffrées 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, 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. Autres valeurs du paramètre peut être MONTHLY ou HOURLY.
partitionColumn (Facultatif) Colonne de partitionnement sur laquelle la partition est basée. La 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é avec le paramètre de compression Snappy par défaut. La valeur par défaut pour ce paramètre est PARQUET. Une autre valeur du paramètre est AVRO.
updateDataplexMetadata

(Facultatif) Mettre à jour ou non les métadonnées Dataplex pour le entités nouvellement créées. La valeur par défaut pour 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 Dataplex de destination, et la découverte Dataplex automatique ne s'exécute pas pour elles. Utiliser cet indicateur si vous avez géré un schéma à la source.

Compatible uniquement 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 Process (Procédure).

  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. Renseignez les paramètres requis.

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

Étape suivante