OpenLineage est une plate-forme ouverte permettant de collecter et d'analyser des informations sur la lignée des données. À l'aide d'une norme ouverte pour les données de traçabilité, OpenLineage capture les événements de traçabilité à partir des composants du 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 Dataplex, ainsi que des informations sur la lignée provenant de services Google Cloud tels que BigQuery, Cloud Composer, Cloud Data Fusion et Dataproc.
Pour importer des événements OpenLineage qui utilisent la spécification OpenLineage, utilisez la méthode de l'API REST ProcessOpenLineageRunEvent
et mappez les facettes OpenLineage sur les attributs de l'API Data Lineage.
Limites
L'API Data Lineage est compatible avec les versions majeures 1 et 2 d'OpenLineage.
L'API Data Lineage n'est pas compatible avec les éléments suivants:
- Toute version OpenLineage ultérieure avec des modifications de format de message
DatasetEvent
JobEvent
La taille maximale d'un message unique est de 5 Mo.
La longueur de chaque nom complet dans les entrées et les sorties est limitée à 4 000 caractères.
Les liens sont regroupés par événements, avec 100 liens par événement. Le nombre maximal de liens agrégés est de 1 000.
Dataplex 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
La méthode de l'API REST ProcessOpenLineageRunEvent
mappe les attributs OpenLineage aux attributs de l'API Data Lineage comme suit:
Attributs de l'API Data Lineage | Attributs OpenLineage |
---|---|
Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
Process.displayName | Job.namespace + ":" + Job.name |
Process.attributes | Job.facets (voir Données stockées) |
Run.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID |
Run.displayName | Run.runId |
Run.attributes | Run.facets (voir Données stockées) |
Run.startTime | eventTime |
Run.endTime | eventTime |
Run.state | eventType |
LineageEvent.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID/lineageEvents/HASH_OF_JOB_RUN_INPUT_OUTPUTS_OF_EVENT (par exemple, projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
LineageEvent.EventLinks.source | entrées (nom complet correspond à la concatenaison de l'espace de noms et du nom) |
LineageEvent.EventLinks.target | sorties (nom complet correspond à la concaténation de l'espace de noms et du nom) |
LineageEvent.startTime | eventTime |
LineageEvent.endTime | eventTime |
requestId | Défini par l'utilisateur de la méthode |
Importer un événement OpenLineage
Si vous n'avez pas encore configuré OpenLineage, consultez la section Premiers pas.
Pour importer un événement OpenLineage dans Dataplex, appelez la méthode API REST ProcessOpenLineageRunEvent
:
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"}'
Analyser les informations d'OpenLineage
Pour analyser les événements OpenLineage importés, consultez la section Afficher des graphiques de traçabilité dans l'interface utilisateur de Dataplex.
Données stockées
L'API Data Lineage ne stocke pas toutes les données des facettes des messages OpenLineage. L'API Data Lineage stocke les champs de facette suivants:
spark_version
openlineage-spark-version
spark-version
- toutes les
spark.logicalPlan.*
environment-properties
(facette de lignée Google Cloud personnalisée)origin.sourcetype
etorigin.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