Ingestion à 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 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 les 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 un élément cible 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 bénéficier d'une couche de protection supplémentaire, vous pouvez également transmettre une clé Cloud KMS avec un nom d'utilisateur, un mot de passe et des paramètres de chaîne de connexion encodés en base64 et chiffrés à l'aide de cette clé.

Le modèle gère les différents types d'assets de manière transparente. Les données stockées sur l'élément Cloud Storage sont partitionnées de style Hive, et Dataplex Discovery 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ètres Description
driverJars À l'aide de virgules, séparez les chemins d'accès Cloud Storage pour les pilotes JDBC.
Par exemple : gs://your-bucket/driver_jar1.jar, gs://your-bucket/driver_jar2.jar.
connectionURL Chaîne de connexion URL permettant de se connecter à la source JDBC.
Exemple: jdbc:mysql://some-host:3306/sampledb.
Vous pouvez transmettre l'URL de connexion sous forme de texte brut ou de 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. Utilisez le format projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code> pour l'ID. Vous trouverez le outputAsset dans l'onglet Détails de l'élément Dataplex de la console Google Cloud.
username Nom d'utilisateur à utiliser pour la connexion JDBC. Vous pouvez transmettre le nom d'utilisateur sous forme de texte brut ou sous forme 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 principal 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 être au format some-project-id:somedataset.sometable. S'il s'agit d'un dossier racine dans Cloud Storage, indiquez le nom du dossier principal.
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. Exemple : projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart.
writeDisposition (Facultatif) Stratégie à utiliser si le fichier ou la table cibles existe. Les formats compatibles 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 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 du fichier de sortie dans Cloud Storage. Les fichiers sont compressés avec le paramètre de compression Snappy par défaut. La valeur par défaut de ce paramètre est PARQUET. Une autre valeur pour ce paramètre est AVRO.
updateDataplexMetadata

(Facultatif) Indique si les métadonnées Dataplex pour les nouvelles entités doivent être mises à jour. 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 Dataplex de destination, et la détection Dataplex automatique ne s'exécutera pas pour ces entités. Utilisez cette option si vous avez un schéma géré à la source.

Uniquement disponible pour les destinations 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 (Processus).

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

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

  5. Choisissez un lac Dataplex.

  6. Attribuez un nom à la tâche.

  7. Choisissez une région pour l'exécution des tâches.

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

Étapes suivantes