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

Dataplex Universal Catalog fournit des modèles (optimisés par Dataflow) pour effectuer des tâches courantes de traitement des données, comme 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 Universal Catalog sont optimisés 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 Universal Catalog à l'aide d'une connexion JDBC

Le modèle d'ingestion JDBC Dataplex Universal Catalog copie les données d'une base de données relationnelle dans une cible d'élément Dataplex Universal Catalog. L'élément Dataplex Universal Catalog 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 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 dans l'élément Cloud Storage sont partitionnées au format Hive. La découverte de Dataplex Universal Catalog les rend automatiquement disponibles sous forme de table dans Data Catalog (obsolète), 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 d'URL pour la connexion à 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 et 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 Universal Catalog 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 leoutputAssetdans la console Google Cloud , dans l'onglet Détails de l'élément Dataplex Universal Catalog.
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 et 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 et chiffrée par Cloud KMS.
outputTable Emplacement de la table BigQuery ou nom du dossier Cloud Storage de premier niveau 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 vos 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 à utiliser si le fichier/la table cible existe. Les formats acceptés sont WRITE_APPEND (les lignes sont ajoutées si la table existe), WRITE_TRUNCATE (la table/le fichier sont écrasés), WRITE_EMPTY (la table de sortie doit être vide/le fichier de sortie ne doit pas exister) et SKIP (l'écriture dans le fichier est ignorée 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. 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 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 de ce paramètre est PARQUET. AVRO est une autre valeur possible pour le paramètre.
updateDataplexMetadata

Facultatif : indique si les métadonnées Dataplex Universal Catalog doivent être mises à jour pour les entités nouvellement créées. La valeur par défaut de ce paramètre est false.

Si le pipeline est activé, il copie automatiquement le schéma de la source vers les entités de destination Dataplex Universal Catalog. La découverte automatisée Dataplex Universal Catalog ne s'exécute pas pour ces entités. Utilisez cet indicateur dans les cas où vous avez géré le schéma à 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 Processus de Dataplex Universal Catalog :

    Accéder à la page "Processus"

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

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

  4. Choisissez un lac Dataplex Universal Catalog.

  5. Indiquez un nom pour la tâche.

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

  7. Renseignez les paramètres requis.

  8. Cliquez sur Continuer.

gcloud

Dans le shell ou le 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 Universal Catalog 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 Universal Catalog output asset ID

Étapes suivantes