Mappage OpenLineage

L'API Data Lineage peut ingérer des informations de traçabilité provenant de systèmes qui s'intègrent à OpenLineage, une norme ouverte pour la collecte de la traçabilité. Lorsque vous envoyez des événements au format OpenLineage à l'API Data Lineage à l'aide de la méthode ProcessOpenLineageRunEvent, l'API Data Lineage mappe les attributs du message OpenLineage aux attributs correspondants de l'API Data Lineage.

Ce document fournit des tableaux de référence pour ces mappages.

Mappage des attributs

La méthode d'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 inputs (fqn est la concaténation de l'espace de noms et du nom)
LineageEvent.EventLinks.target sorties (fqn est 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

L'ancêtre au niveau des colonnes généré par Managed Service pour Apache Spark est également compatible, à condition qu'il utilise le facette columnLineage dans les objets outputs. Voici un exemple :

"outputs": [ {
  "namespace": "bigquery",
  "name": "project.dataset.outputtable",
  "columnLineage": {
      "_producer": "https://github.com/OpenLineage/OpenLineage/tree/1.39.0/integration/spark",
      "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/ColumnLineageDatasetFacet.json#/$defs/ColumnLineageDatasetFacet",
      "fields": {
        "output_field": { // This is the name of the output field
          "inputFields": [
            {
              "namespace": "bigquery",
              "name": "project.dataset.inputtable",
              "field": "input_field", // This is the name of the input field
              "transformations": [
                {
                  "type": "DIRECT",
                  "subtype": "IDENTITY",
                  "description": "",
                  "masking": false
                }
              ]
            }
          ]
        }
      },
  }
}]

Dans cet exemple, vous créez un lien de traçabilité au niveau des colonnes entre input_field et output_field. Vous devez inclure le champ "transformations". Sans cela, la lignée au niveau des colonnes ne sera pas ingérée. Pour en savoir plus sur la définition Open Lineage de ce facet, consultez Facet d'ensemble de données au niveau des colonnes.

Mappage de noms complets

Le tableau suivant fournit des exemples de paires espace de noms et nom OpenLineage pour différents systèmes, ainsi que leurs noms complets Knowledge Catalog (anciennement Dataplex Universal Catalog) équivalents :

Système Espace de noms OpenLineage Nom OpenLineage Nom complet de Knowledge Catalog
Athena awsathena://athena.{region_name}.amazonaws.com
  • {catalog}
  • {catalog}.{database}
  • {catalog}.{database}.{table}
  • athena:{catalogId}.{region}
  • athena:{catalogId}.{region}.{databaseId}
  • athena:{catalogId}.{region}.{databaseId}.{tableId}
AWS Glue arn:aws:glue:{region}:{account id} table/{database name}/{table name} aws_glue:table:{region}.{account id}.{database name}.{table name}
Azure Cosmos DB azurecosmos://{host}/dbs/{database} colls/{table}
  • cosmos-db:{host}.{database}
  • cosmos-db:{host}.{database}.{table}
Azure Data Explorer azurekusto://{host}.kusto.windows.net {database}/{table}
  • kusto:{host}.{region}.{database}
  • kusto:{host}.{region}.{database}.{table}
Azure Synapse sqlserver://{host}:{port}
  • {database}
  • {database}.{schema}
  • {database}.{schema}.{table}
Non compatible
BigQuery bigquery
  • {project id}.{dataset name}
  • {project id}.{dataset name}.{table name}
  • bigquery:{projectId}.{datasetId}
  • bigquery:{projectId}.{datasetId}.{assetId}
Cassandra cassandra://{host}:{port}
  • {keyspace}
  • {keyspace}.{table}
  • cassandra:{hostWithPort}.{keyspaceId}
  • cassandra:{hostWithPort}.{keyspaceId}.{tableId}
MySQL mysql://{host}:{port}
  • {database}
  • {database}.{table}
  • mysql:{hostWithPort}.{databaseId}
  • mysql:{hostWithPort}.{databaseId}.{tableId}