Intégrer à OpenLineage

Ce document explique comment intégrer OpenLineage à Knowledge Catalog (anciennement Dataplex Universal Catalog) pour visualiser les données de traçabilité de différents systèmes.

Présentation

OpenLineage est une plate-forme ouverte permettant de collecter et d' analyser des informations sur la traçabilité des données. En utilisant une norme ouverte pour les données de traçabilité, OpenLineage capture les événements de traçabilité des composants de pipeline de données qui utilisent une API OpenLineage pour générer des rapports sur les exécutions, les tâches et les ensembles de données.

Grâce à l'API Data Lineage, vous pouvez importer des événements OpenLineage à afficher dans l'interface Web de Knowledge Catalog, à côté des informations de traçabilité provenant de Google Cloud services tels que BigQuery, Managed Service pour Apache Airflow, Cloud Data Fusion et Managed Service pour Apache Spark.

Pour importer des événements OpenLineage qui utilisent la spécification OpenLineage, utilisez la ProcessOpenLineageRunEvent méthode de l'API REST et mappez les facettes OpenLineage aux attributs de l'API Data Lineage.

Limites

  • L'API Data Lineage est compatible avec la version majeure 1 d'OpenLineage.

  • Le point de terminaison ProcessOpenLineageRunEvent de l'API Data Lineage n'agit que comme consommateur de messages OpenLineage, et non comme producteur. L'API vous permet d'envoyer des informations de traçabilité générées par n'importe quel outil ou système compatible avec OpenLineage dans Knowledge Catalog. Certains Google Cloud services, tels que Managed Service pour Apache Spark et Managed Service pour Apache Airflow, incluent des producteurs OpenLineage intégrés qui peuvent envoyer des événements à ce point de terminaison, ce qui automatise la capture de la traçabilité à partir de ces services.

  • L'API Data Lineage n'est pas compatible avec les éléments suivants :

    • Toute version ultérieure d'OpenLineage avec des modifications du format de message
    • DatasetEvent
    • JobEvent
  • La taille maximale d'un message est de 5 Mo.

  • La longueur de chaque nom complet dans les entrées et les sorties est limitée à 4 000 caractères.

  • Liens sont regroupés par événements avec 100 liens. Le nombre total maximal de liens est de 1 000.

  • Knowledge Catalog affiche un graphique de traçabilité pour chaque exécution de tâche, indiquant les entrées et les sorties des événements de traçabilité. Il n'est pas compatible avec les processus de niveau inférieur tels que les étapes Spark.

Mappage OpenLineage

Pour en savoir plus sur le mappage OpenLineage, consultez Mappage OpenLineage.

Importer un événement OpenLineage

Si vous n'avez pas encore configuré OpenLineage, consultez Premiers pas.

Pour importer un événement OpenLineage dans Knowledge Catalog, appelez la méthode ProcessOpenLineageRunEvent de l'API REST :

POST https://datalineage.googleapis.com/v1/projects/{project}/locations/{location}:processOpenLineageRunEvent \
--data '{"eventTime":"2023-04-04T13:21:16.098Z","eventType":"COMPLETE","inputs":[{"name":"somename","namespace":"somenamespace"}],"job":{"name":"somename","namespace":"somenamespace"},"outputs":[{"name":"somename","namespace":"somenamespace"}],"producer":"someproducer","run":{"runId":"somerunid"},"schemaURL":"https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"}'

Outils pour envoyer des messages OpenLineage

Pour simplifier l'envoi d'événements à l'API Data Lineage, vous pouvez utiliser différents outils et bibliothèques :

Analyser les informations d'OpenLineage

Pour analyser les événements OpenLineage importés, consultez Afficher les graphiques de traçabilité dans l'interface utilisateur de Knowledge Catalog.

Données stockées

L'API Data Lineage ne stocke pas toutes les données de facette des messages OpenLineage. L'API Data Lineage stocke les champs de facette suivants :

  • spark_version
    • openlineage-spark-version
    • spark-version
  • tous les spark.logicalPlan.*
  • environment-properties (facette custom Google Cloud lineage)
    • origin.sourcetype et origin.name
    • spark.app.id
    • spark.app.name
    • spark.batch.id
    • spark.batch.uuid
    • spark.cluster.name
    • spark.cluster.region
    • spark.job.id
    • spark.job.uuid
    • spark.project.id
    • spark.query.node.name
    • spark.session.id
    • spark.session.uuid

L'API Data Lineage stocke les informations suivantes :

  • eventTime
  • run.runId
  • job.namespace
  • job.name

Étape suivante