Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (ancienne 1re génération)
Cette page explique comment activer l'intégration du lineage des données dans Managed Airflow.
À 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 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.
Managed Airflow 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 Managed Airflow. Si vous installez une autre version de ce package, la liste des opérateurs compatibles peut changer. Nous vous recommandons de ne le faire qu'en cas de nécessité 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 Managed Service pour Apache Airflow, Managed Service pour Apache Airflow envoie des 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 lignée personnalisés si vous souhaitez signaler la lignée d'un opérateur non compatible.
Vous pouvez accéder aux informations de traçabilité avec :
- API Data Lineage
- Graphiques de traçabilité pour les entrées compatibles dans Knowledge Catalog. Pour en savoir plus, consultez Graphiques de traçabilité dans la documentation Knowledge Catalog.
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 Lineage personnalisé n'est configuré dans Airflow.
Vous pouvez désactiver l'intégration du lineage des données lorsque vous créez un environnement.
Pour un environnement existant, vous pouvez activer ou désactiver l'intégration du lineage des données à tout moment.
Points à prendre en compte concernant les fonctionnalités dans Managed Service pour Apache Airflow
Managed Airflow effectue un appel RPC pour créer des événements de lignage dans les cas suivants :
- Lorsqu'une tâche Airflow démarre ou se termine
- Lorsqu'une exécution de DAG démarre ou se termine
Pour en savoir plus sur ces entités, consultez Modèle d'informations sur la traçabilité et la documentation de référence de l'API Lineage dans la documentation Knowledge Catalog.
Le trafic de traçabilité émis est soumis aux quotas de l'API Data Lineage. Managed Airflow consomme le quota d'écriture.
La tarification associée à la gestion des données de lignée est soumise à la tarification de la lignée. Consultez Considérations relatives à la traçabilité des données.
Considérations relatives aux performances dans Managed Service pour Apache Airflow
La traçabilité des données est indiquée à la fin de l'exécution de la tâche Airflow. En moyenne, la création de rapports sur la lignée des données prend environ une à deux secondes.
Cela n'affecte pas les performances de la tâche elle-même : les tâches Airflow n'échouent pas si la provenance n'est pas signalée à l'API Lineage. La logique de l'opérateur principal n'est pas affectée, mais l'ensemble de l'instance de tâche s'exécute un peu plus longtemps pour tenir compte des données de lignée des rapports.
Un environnement qui génère des rapports sur la provenance des données entraînera une légère augmentation des coûts associés, en raison du temps supplémentaire nécessaire pour générer ces rapports.
Conformité
La traçabilité des données offre différents niveaux d'assistance pour des fonctionnalités telles que VPC Service Controls. Consultez les points à prendre en compte concernant la traçabilité des données pour vous assurer que les niveaux d'assistance correspondent aux exigences de votre environnement.
Avant de commencer
Cette fonctionnalité offre une prise en charge variable de la conformité. Assurez-vous d'abord de consulter les considérations spécifiques aux fonctionnalités de Managed Service pour Apache Airflow et les considérations spécifiques aux fonctionnalités de traçabilité des données.
L'intégration de la traçabilité des données est compatible avec Managed Airflow version 2.1.2 et ultérieure, et avec Airflow version 2.2.5 et ultérieure.
Toutes les autorisations IAM requises pour le lineage des données sont déjà incluses dans le rôle Worker Composer (
roles/composer.worker). Ce rôle est requis pour les comptes de service de l'environnement.Pour en savoir plus sur les autorisations liées à la traçabilité des données, consultez Rôles et autorisations liés à la traçabilité dans la documentation Knowledge Catalog.
Vérifier si un opérateur est compatible
La prise en charge de la traçabilité des données est fournie par le package de fournisseur où se trouve l'opérateur :
Consultez les journaux des modifications du package de fournisseur où se trouve l'opérateur pour les entrées qui ajoutent la prise en charge d'OpenLineage.
Par exemple, BigQueryToBigQueryOperator est compatible avec OpenLineage à partir de la version 11.0.0 de
apache-airflow-providers-google.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 version de Managed Airflow utilisée dans votre environnement. Vous pouvez également installer une autre version du package dans votre environnement.
De plus, la page Classes compatibles de la documentation apache-airflow-providers-openlineage liste les derniers opérateurs compatibles.
Configurer l'intégration de la traçabilité des données
L'intégration du lineage des données pour Managed Service pour Apache Airflow est gérée par environnement. Cela signifie que l'activation de la fonctionnalité nécessite deux étapes :
- Activez l'API Data Lineage dans votre projet.
- Activez l'intégration du lineage des données dans un environnement Managed Service pour Apache Airflow spécifique.
Activer la traçabilité des données dans Managed Service pour Apache Airflow
Console
Dans la console Google Cloud , accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Sélectionnez l'onglet Configuration de l'environnement.
Dans la section Intégration de la traçabilité Knowledge Catalog, cliquez sur Modifier.
Dans le panneau Intégration de la traçabilité Knowledge Catalog, sélectionnez Activer l'intégration de la traçabilité Knowledge Catalog.
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 environnementLOCATION: région où se trouve l'environnement.
Exemple :
gcloud composer environments update example-environment \
--location us-central1 \
--enable-cloud-data-lineage-integration
Désactiver le traçage des données dans Managed Service pour Apache Airflow
La désactivation de l'intégration du lineage dans un environnement Managed Service pour Apache Airflow ne désactive pas l'API Data Lineage. Si vous souhaitez désactiver complètement le reporting de la traçabilité pour votre projet, désactivez également l'API Data Lineage. Consultez Désactiver des services.
Console
Dans la console Google Cloud , accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Sélectionnez l'onglet Configuration de l'environnement.
Dans la section Intégration de la traçabilité Knowledge Catalog, cliquez sur Modifier.
Dans le panneau Intégration de la traçabilité Knowledge Catalog, sélectionnez Désactiver l'intégration de la traçabilité Knowledge Catalog.
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 environnementLOCATION: région où 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 le code de votre 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',
},
}
},
)
Cela permet de créer le graphique de lignée suivant dans l'UI Knowledge Catalog :
Envoyer des événements de traçabilité personnalisés
Vous pouvez envoyer des événements de lignée personnalisés si vous souhaitez générer des rapports de lignée pour un opérateur qui n'est pas compatible avec les rapports de lignée automatisés.
Par exemple, pour envoyer des événements personnalisés avec :
- BashOperator : modifiez le paramètre
inletsououtletsdans la définition de la tâche. - PythonOperator : modifiez le paramètre
task.inletsoutask.outletsdans la définition de la tâche. - Vous pouvez utiliser
AUTOpour le paramètreinlets. Sa valeur est alors égale auoutletsde sa tâche en amont.
L'exemple suivant montre comment utiliser les entrées et les 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
Le graphique de lignée suivant est alors créé dans l'UI Knowledge Catalog :
Afficher les journaux de lignage dans Managed Service pour Apache Airflow
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é Knowledge Catalog.
Dépannage
Si les données de lignage ne sont pas signalées à l'API Lineage ou si vous ne les voyez pas dans Knowledge Catalog, essayez les étapes de dépannage suivantes :
- Assurez-vous que l'API Data Lineage est activée dans le projet de votre environnement Managed Service pour Apache Airflow.
- Vérifiez si l'intégration du traçage des données est activée dans l'environnement Managed Service pour Apache Airflow.
- Vérifiez si l'opérateur que vous utilisez est inclus dans la compatibilité avec les rapports automatisés sur la lignée. Pour en savoir plus, consultez la section Opérateurs Airflow compatibles.
- Consultez les journaux de lignée dans Managed Service pour Apache Airflow afin d'identifier d'éventuels problèmes.