Traçabilité des données avec Knowledge Catalog

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Cette page explique comment activer l'intégration de la traçabilité des données dans Cloud Composer.

À propos de l'intégration de la traçabilité des données

La traçabilité des données est une fonctionnalité de Knowledge Catalog qui vous permet de suivre la façon dont les données transitent par vos systèmes : leur origine, leur destination, et les transformations qui leur sont appliquées.

Cloud Composer utilise le package apache-airflow-providers-openlineage pour générer les événements de traçabilité qui sont envoyés à l'API Data Lineage.

Ce package est déjà installé dans les environnements Cloud Composer. Si vous installez une autre version de ce package, la liste des opérateurs compatibles peut changer. Nous vous recommandons de ne le faire que si nécessaire et de conserver la version préinstallée du package dans le cas contraire.

  • La traçabilité des données est disponible pour les environnements situés dans les mêmes régions que les régions Knowledge Catalog qui la prennent en charge.

  • Si la traçabilité des données est activée dans votre environnement Cloud Composer, Cloud Composer signale les informations de traçabilité à l' API Data Lineage pour les DAG qui utilisent l'un des opérateurs compatibles. Vous pouvez également envoyer des événements de traçabilité personnalisés si vous souhaitez signaler la traçabilité d'un opérateur non compatible.

  • Vous pouvez accéder aux informations de traçabilité avec les éléments suivants :

Lorsque vous créez un environnement, l'intégration de la traçabilité des données est automatiquement activée si les conditions suivantes sont remplies :

  • L'API Data Lineage est activée dans votre projet. Pour en savoir plus, consultez Activer l'API Data Lineage dans la documentation Knowledge Catalog.

  • Aucun backend de traçabilité personnalisé Lineage Backend n'est configuré dans Airflow.

Vous pouvez désactiver l'intégration de la traçabilité des données lorsque vous créez un environnement.

Pour un environnement existant, vous pouvez activer ou désactiver l'intégration de la traçabilité des données à tout moment.

Considérations concernant les fonctionnalités dans Cloud Composer

Cloud Composer effectue un appel RPC pour créer des événements de traçabilité dans les cas suivants :

  • Lorsqu'une tâche Airflow démarre ou se termine
  • Lorsqu'une exécution DAG démarre ou se termine

Pour en savoir plus sur ces entités, consultez Modèle d'informations de traçabilité et Référence de l'API Lineage dans la documentation Knowledge Catalog.

Le trafic de traçabilité émis est soumis à des quotas dans l'API Data Lineage. Cloud Composer consomme un quota d'écriture.

La tarification associée à la gestion des données de traçabilité est soumise à la tarification de la traçabilité. Consultez Considérations relatives à la traçabilité des données.

Considérations relatives aux performances dans Cloud Composer

La traçabilité des données est signalée à la fin de l'exécution de la tâche Airflow. En moyenne, le signalement de la traçabilité des données prend environ 1 à 2 secondes.

Cela n'affecte pas les performances de la tâche elle-même : les tâches Airflow n'échouent pas si la traçabilité n'est pas signalée à l'API Lineage. Il n'y a aucun impact sur la logique de l'opérateur principal, mais l'instance de tâche entière s'exécute un peu plus longtemps pour tenir compte du signalement des données de traçabilité.

Un environnement qui signale la traçabilité des données entraînera une légère augmentation des coûts associés, en raison du temps supplémentaire nécessaire pour signaler la traçabilité des données.

Conformité

La traçabilité des données offre différents niveaux de compatibilité pour des fonctionnalités telles que VPC Service Controls. Consultez Considérations relatives à la traçabilité des données pour vous assurer que les niveaux de compatibilité correspondent aux exigences de votre environnement.

Avant de commencer

Vérifier si un opérateur est compatible

La compatibilité avec la traçabilité des données est fournie par le package de fournisseur dans lequel se trouve l'opérateur :

  1. Consultez les journaux des modifications du package de fournisseur dans lequel se trouve l'opérateur pour les entrées qui ajoutent la compatibilité avec OpenLineage.

    Par exemple, BigQueryToBigQueryOperator est compatible avec OpenLineage à partir de apache-airflow-providers-google la version 11.0.0.

  2. Vérifiez la version du package de fournisseur utilisée par votre environnement. Pour ce faire, consultez la liste des packages préinstallés pour la compilation Airflow utilisée dans votre environnement. Vous pouvez également installer une autre version du package dans votre environnement.

En outre, la page Classes compatibles de la documentation apache-airflow-providers-openlineage répertorie les derniers opérateurs compatibles.

Configurer l'intégration de la traçabilité des données

L'intégration de la traçabilité des données pour Cloud Composer est gérée par environnement. Cela signifie que l'activation de la fonctionnalité nécessite deux étapes :

  1. Activez l'API Data Lineage dans votre projet.
  2. Activez l'intégration de la traçabilité des données dans un environnement Cloud Composer spécifique.

Activer la traçabilité des données dans Cloud Composer

Console

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

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Sélectionnez l'onglet Configuration de l'environnement.

  4. Dans la section Intégration de la traçabilité des données Dataplex, cliquez sur Modifier.

  5. Dans le panneau Intégration de la traçabilité des données Dataplex , sélectionnez Activer l'intégration avec la traçabilité des données Dataplex , puis cliquez sur Enregistrer.

gcloud

Utilisez l'argument --enable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-cloud-data-lineage-integration

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région dans laquelle se trouve l'environnement

Exemple :

gcloud composer environments update example-environment \
    --location us-central1 \
    --enable-cloud-data-lineage-integration

Désactiver la traçabilité des données dans Cloud Composer

La désactivation de l'intégration de la traçabilité dans un environnement Cloud Composer ne désactive pas l'API Data Lineage. Si vous souhaitez désactiver complètement le signalement de la traçabilité pour votre projet, désactivez également l'API Data Lineage. Consultez Désactiver des services.

Console

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

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Sélectionnez l'onglet Configuration de l'environnement.

  4. Dans la section Intégration de la traçabilité des données Dataplex, cliquez sur Modifier.

  5. Dans le panneau Intégration de la traçabilité des données Dataplex , sélectionnez Désactiver l'intégration avec la traçabilité des données Dataplex , puis cliquez sur Enregistrer.

gcloud

Utilisez l'argument --disable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-cloud-data-lineage-integration

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région dans laquelle se trouve l'environnement

Exemple :

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-cloud-data-lineage-integration

Envoyer des événements de traçabilité dans les opérateurs compatibles

Si la traçabilité des données est activée, les opérateurs compatibles envoient automatiquement des événements de traçabilité. Vous n'avez pas besoin de modifier votre code DAG.

Par exemple, l'exécution de la tâche suivante :

task = BigQueryInsertJobOperator(
    task_id='snapshot_task',
    dag=dag,
    location='<dataset-location>',
    configuration={
        'query': {
            'query': 'SELECT * FROM dataset.tableA',
            'useLegacySql': False,
            'destinationTable': {
                'project_id': 'example-project',
                'dataset_id': 'dataset',
                'table_id': 'tableB',
            },
        }
    },
)

entraîne la création du graphique de traçabilité suivant dans l'interface utilisateur Knowledge Catalog :

Exemple de graphique de traçabilité dans l&#39;UI Dataplex.
Figure 1. Exemple de graphique de traçabilité pour une table BigQuery dans l'interface utilisateur Knowledge Catalog.

Envoyer des événements de traçabilité personnalisés

Vous pouvez envoyer des événements de traçabilité personnalisés si vous souhaitez signaler la traçabilité d'un opérateur qui n'est pas compatible avec le signalement automatisé de la traçabilité.

Par exemple, pour envoyer des événements personnalisés avec :

  • BashOperator : modifiez le paramètre inlets ou outlets dans la définition de la tâche.
  • PythonOperator : modifiez le paramètre task.inlets ou task.outlets dans la définition de la tâche.
  • Vous pouvez utiliser AUTO pour le paramètre inlets. Sa valeur est alors égale à celle du paramètre outlets de sa tâche en amont.

L'exemple suivant illustre l'utilisation des entrées et des sorties :

from airflow.composer.data_lineage.entities import BigQueryTable
from airflow.lineage import AUTO

...

bash_task = BashOperator(
    task_id="bash_task",
    dag=dag,
    bash_command="sleep 0",
    inlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table1",
        )
    ],
    outlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table2",
        )
    ],
)


def _python_task(task):
    print("Python task")


python_task = PythonOperator(
    task_id="python_task",
    dag=dag,
    python_callable=_python_task,
    inlets=[
        AUTO,
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table3",
        ),
    ],
    outlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table4",
        )
    ],
)

bash_task >> python_task

Par conséquent, le graphique de traçabilité suivant est créé dans l'interface utilisateur Knowledge Catalog :

Exemple de graphique de traçabilité pour les événements personnalisés dans l&#39;UI Dataplex.
Figure 2. Exemple de graphique de traçabilité pour plusieurs BigQuery tables dans l'interface utilisateur Knowledge Catalog.

Afficher les journaux de traçabilité dans Cloud Composer

Vous pouvez inspecter les journaux liés à la traçabilité des données à l'aide du lien sur la page Configuration de l'environnement dans la section Intégration de la traçabilité des données Knowledge Catalog.

Dépannage

Si les données de traçabilité ne sont pas signalées à l'API Lineage ou si vous ne les voyez pas dans Knowledge Catalog, essayez de suivre les étapes de dépannage ci-dessous :

  • Assurez-vous que l'API Data Lineage est activée dans le projet de votre environnement Cloud Composer.
  • Vérifiez si l'intégration de la traçabilité des données est activée dans l'environnement Cloud Composer.
  • Vérifiez si l'opérateur que vous utilisez est inclus dans la compatibilité avec le signalement automatisé de la traçabilité. Consultez Opérateurs Airflow compatibles.
  • Vérifiez les journaux de traçabilité dans Cloud Composer pour détecter d'éventuels problèmes.

Étape suivante