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

Dataplex fournit des modèles basés sur 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 des modèles de traitement des données.

Avant de commencer

Les modèles Dataplex sont basés sur Dataflow. Avant d'utiliser les modèles, activez les API Dataflow.

Activer les API Dataflow

Notes

  • Tous les modèles sont compatibles avec les options de pipeline Dataflow courantes.

  • Dataplex utilise des pipelines de données pour planifier les tâches définies par les modèles.

  • Vous ne pouvez afficher que les tâches que vous planifiez via Dataplex sur la page Dataplex de la console Google Cloud.

Modèle: Convertir des données brutes en données sélectionnées

Le modèle de conversion du format de fichier Dataplex convertit les données d'un élément Cloud Storage Dataplex ou d'une liste d'entités Dataplex stockées au format CSV ou JSON en données au format Parquet ou Avro dans un autre élément Dataplex. La disposition des partitions est conservée lors de la conversion. Il prend également en charge la compression des fichiers de sortie.

Paramètres de modèle

Paramètres Description
inputAssetOrEntitiesList Élément Dataplex ou entités Dataplex contenant les fichiers d'entrée. Ce paramètre doit respecter le format suivant : projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> ou projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>...
outputFileFormat Format du fichier de sortie dans Cloud Storage. Ce paramètre doit respecter le format suivant: PARQUET ou AVRO.
outputAsset Nom de l'élément Dataplex contenant le bucket Cloud Storage dans lequel les fichiers de sortie seront stockés. Ce paramètre doit respecter le format suivant: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. Vous trouverez le outputAsset dans l'onglet Details de l'élément Dataplex de la console Google Cloud.
outputFileCompression Facultatif: compression du fichier de sortie. La valeur par défaut de ce paramètre est SNAPPY. Les autres valeurs du paramètre peuvent être UNCOMPRESSED, SNAPPY, GZIP ou BZIP2. BZIP2 n'est pas compatible avec les fichiers PARQUET.
writeDisposition Facultatif: spécifie l'action à effectuer si un fichier de destination existe déjà. La valeur par défaut de ce paramètre est SKIP, qui indique de traiter uniquement les fichiers qui n'existent pas dans le répertoire de destination. Les autres valeurs de ce paramètre peuvent être OVERWRITE (écraser tous les fichiers existants) ou FAIL (ne traitez rien et générez une erreur s'il existe déjà au moins un fichier de destination).
updateDataplexMetadata

Facultatif: indique si les métadonnées Dataplex doivent être mises à jour pour les nouvelles entités. 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 le schéma des données sources (brutes) est géré par Dataplex.

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 Convertir aux formats sélectionnés, 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
REGION_NAME: region in which to run the job
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
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_File_Format_Conversion_Preview \
--parameters \
inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\
outputFileFormat=OUTPUT_FILE_FORMAT,\
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
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
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": {
        "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST",
        "outputFileFormat": "OUTPUT_FILE_FORMAT",
        "outputAsset": "OUTPUT_ASSET",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview",
 }
}

Modèle: hiérarchiser les données d'un élément BigQuery vers un élément Cloud Storage

Le modèle Dataplex BigQuery vers Cloud Storage copie les données d'un élément BigQuery Dataplex vers un élément Dataplex Cloud Storage dans une mise en page et des formats compatibles Dataplex. Vous pouvez spécifier un ensemble de données BigQuery ou une liste de tables BigQuery à copier. Pour plus de flexibilité, le modèle permet de copier des données antérieures à une date de modification spécifiée et permet éventuellement de supprimer des données de BigQuery après une copie réussie.

Lors de la copie de tables partitionnées de BigQuery vers Cloud Storage, le modèle crée des partitions de style Hive sur le bucket Cloud Storage. Lors de l'écriture dans Cloud Storage, le modèle crée une clé de partition en ajoutant le suffixe _pid à la colonne de partition existante. Cette opération est nécessaire pour accéder aux données dans BigQuery en tant que table externe. Actuellement, dans BigQuery, la clé de partition de type Hive ne peut pas être identique à celle d'une colonne existante. Par conséquent, la table copiée, lorsqu'elle est affichée dans BigQuery en tant que table externe, contient une colonne supplémentaire pour la clé de partition. Le reste des données est conservé tel quel.

Lorsque vous copiez des tables partitionnées de BigQuery vers Cloud Storage:

  • Le modèle crée des partitions de style Hive sur le bucket Cloud Storage. Actuellement, dans BigQuery, la clé de partition de style Hive ne peut pas être identique à une colonne existante. Vous pouvez utiliser l'option enforceSamePartitionKey pour créer une clé de partition ou pour conserver la même clé de partition, mais renommer la colonne existante.
  • Dataplex Discovery enregistre le type de partition en tant que string lors de la création d'une table BigQuery (et d'une table dans Dataproc Metastore). Cela peut affecter vos filtres de partition existants.

Le nombre de tables et de partitions pouvant être transformées dans une seule exécution de modèle est limité à environ 300. Le nombre exact dépend de la longueur des noms de table et d'autres facteurs.

Paramètres de modèle

Paramètres Description
sourceBigQueryDataset Ensemble de données BigQuery à partir duquel les données sont hiérarchisées. Ce paramètre doit contenir un nom d'élément Dataplex au format projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> ou un ID d'ensemble de données BigQuery au format projects/<name>/datasets/<dataset-id>.
destinationStorageBucketAssetName Nom de l'élément Dataplex correspondant au bucket Cloud Storage vers lequel hiérarchiser les données. Ce paramètre doit respecter le format projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>.
tables (Facultatif) Liste de tables BigQuery à niveau, séparées par une virgule. Si aucune liste n'est fournie, toutes les tables seront hiérarchisées. Les tables ne doivent être spécifiées que par leur nom (sans préfixe de projet ou d'ensemble de données) et sont sensibles à la casse.
exportDataModifiedBeforeDateTime Facultatif: utilisez ce paramètre pour déplacer des données antérieures à cette date (et cette heure facultative). Pour les tables BigQuery partitionnées, déplacez les partitions pour la dernière modification avant cette date/heure. Pour les tables non partitionnées, déplacez-les si elles ont été modifiées pour la dernière fois avant cette date/heure. Si ce paramètre n'est pas spécifié, déplacez toutes les tables/partitions. Par défaut, la date et l'heure sont analysées dans le fuseau horaire par défaut, mais les suffixes facultatifs Z et +HH:mm sont acceptés. Ce paramètre doit respecter le format YYYY-MM-DD, YYYY-MM-DDTHH:mm:ss ou YYYY-MM-DDTHH:mm:ss+03:00. La date/heure relative est également acceptée et doit respecter le format -PnDTnHnMn.nS (elle doit commencer par -P, qui indique une heure dans le passé).
fileFormat Facultatif: format du fichier de sortie dans Cloud Storage. La valeur par défaut de ce paramètre est PARQUET. Une autre valeur de paramètre peut être AVRO.
fileCompression Facultatif: compression du fichier de sortie. La valeur par défaut de ce paramètre est SNAPPY. Les autres valeurs du paramètre peuvent être UNCOMPRESSED, SNAPPY, GZIP ou BZIP2. BZIP2 n'est pas compatible avec les fichiers PARQUET.
deleteSourceData Facultatif: Indique si les données sources doivent être supprimées de BigQuery après une exportation réussie. Les valeurs possibles sont true ou false. La valeur par défaut de ce paramètre est false.
partitionIdRegExp Facultatif: Traitez les partitions dont l'ID de partition correspond uniquement à cette expression régulière. Si aucune valeur n'est spécifiée, ce paramètre traite l'ensemble par défaut.
writeDisposition Facultatif: Spécifie l'action qui se produit si un fichier de destination existe déjà, ce qui signifie qu'une ou plusieurs tables/partitions ont déjà été hiérarchisées. La valeur par défaut de ce paramètre est SKIP, qui indique de ne traiter que les tables/partitions qui n'ont pas encore été hiérarchisées. Les autres valeurs de ce paramètre peuvent être OVERWRITE (écraser tous les fichiers existants) ou FAIL (ne traitez rien et générez une erreur s'il existe déjà au moins un fichier de destination).
enforceSamePartitionKey

Facultatif: permet d'appliquer la même clé de partition. En raison d'une limitation de BigQuery, la clé de partition (dans le chemin d'accès au fichier) d'une table externe partitionnée ne peut pas porter le même nom qu'une des colonnes du fichier. Si ce paramètre est défini sur "true" (qui est la valeur par défaut), la clé de partition du fichier cible est définie sur le nom d'origine de la colonne de partition, et la colonne du fichier est renommée. Si la valeur est "false", la clé de partition est renommée.

Par exemple, si la table d'origine est partitionnée en fonction d'une colonne nommée TS et enforceSamePartitionKey=true, le chemin du fichier de destination est gs://<bucket>/TS=<partition ID>/<file> et la colonne est renommée TS_pkey dans le fichier. Cela permet d'exécuter des requêtes existantes sur les mêmes partitions que dans l'ancienne table ou la nouvelle.

Si la valeur est enforceSamePartitionKey=false, le chemin d'accès au fichier de destination est gs://<bucket>/TS_pid=<partition ID>/<file>, mais le nom de la colonne est conservé sous la forme TS dans le fichier.

updateDataplexMetadata

Facultatif: indique si les métadonnées Dataplex doivent être mises à jour pour les nouvelles entités. 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 gérez le schéma des tables BigQuery sources.

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 Tier from BQ to GCS Assets, cliquez sur Create task (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
REGION_NAME: region in which to run the job
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket

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_BigQuery_to_GCS_Preview \
--parameters \
sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\
destinationStorageBucketAssetName=DESTINATION_ASSET_NAME

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
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

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": {
        "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID",
        "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview",
 }
}

Planifier d'autres modèles Dataflow fournis par Google Cloud ou personnalisés

Dataplex vous permet de planifier et de surveiller n'importe quel modèle Dataflow fourni par Google Cloud ou votre modèle Dataflow personnalisé dans la console.

Planification

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 Author a Dataflow pipeline (Créer un pipeline Dataflow), cliquez sur Create Dataflow pipeline (Créer un pipeline Dataflow).

  5. Choisissez un lac Dataplex.

  6. Attribuez un nom à la tâche.

  7. Choisissez une région dans laquelle exécuter la tâche.

  8. Choisissez un modèle Dataflow.

  9. Renseignez les paramètres requis.

  10. Cliquez sur Continuer.

Surveiller

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 Pipelines Dataflow.

  4. Filtrez par nom de lac ou de pipeline.