Intégrer à OpenLineage

OpenLineage est une plate-forme de collecte ouverte et en analysant les informations de traçabilité des données. Utiliser une norme ouverte pour la 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 le Interface utilisateur Dataplex avec les informations de traçabilité des services Google Cloud comme BigQuery, Cloud Composer, Cloud Data Fusion et Dataproc.

Pour importer des événements OpenLineage qui utilisent la méthode Spécification OpenLineage, utilisez l'ProcessOpenLineageRunEvent Méthode API REST et mise en correspondance des attributs OpenLineage avec 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 ultérieure d'OpenLineage avec des modifications du format des messages
    • DatasetEvent
    • JobEvent
  • La taille maximale d'un message est de 5 Mo.

  • 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 comptant 100 liens. Le nombre total maximal de est de 1 000.

  • Dataplex affiche un graphique de traçabilité pour chaque exécution de job, avec les entrées et les sorties d'événements de traçabilité. Il ne prend pas en charge les processus de niveau inférieur tels que Étapes d'étincelle.

Mappage OpenLineage

La méthode ProcessOpenLineageRunEvent de l'API REST 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 (fqn correspond à la concaténation de l'espace de noms et du nom)
LineageEvent.EventLinks.target sorties (fqn correspond à la concaténation de l'espace de noms et du nom)
LineageEvent.startTime eventTime
LineageEvent.endTime eventTime
requestId Définie par l'utilisateur de la méthode

Importer un événement OpenLineage

Si vous n'avez pas encore configuré OpenLineage, consultez 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 des informations provenant d'OpenLineage

Pour analyser les événements OpenLineage importés, consultez Affichez les 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 d'attributs provenant des messages OpenLineage. L'API Data Lineage stocke les champs d'attributs suivants:

  • spark_version
    • openlineage-spark-version
    • spark-version
  • toutes les spark.logicalPlan.*
  • environment-properties (attribut de traçabilité Google Cloud personnalisé)
    • 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