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 |
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 Dataplex Universal Catalog équivalents :
| Système | Espace de noms OpenLineage | Nom OpenLineage | Nom complet qualifié (FQN) Dataplex Universal Catalog |
|---|---|---|---|
| Athena | awsathena://athena.{region_name}.amazonaws.com |
|
|
| 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} |
|
| Azure Data Explorer | azurekusto://{host}.kusto.windows.net |
{database}/{table} |
|
| Azure Synapse | sqlserver://{host}:{port} |
|
|
| BigQuery | bigquery |
|
|
| Cassandra | cassandra://{host}:{port} |
|
|
| MySQL | mysql://{host}:{port} |
|
|
| CrateDB | crate://{host}:{port} |
{database}.{schema}.{table} |
Non compatible |
| DB2 | db2://{host}:{port} |
|
|
| Hive | hive://{host}:{port} |
{database}.{table} |
Non compatible |
| MSSQL | mssql://{host}:{port} |
{database}.{schema}.{table} |
Non compatible |
| OceanBase | oceanbase://{host}:{port} |
{database}.{table} |
Non compatible |
| Oracle | oracle://{host}:{port} |
{serviceName}.{schema}.{table} or {sid}.{schema}.{table} |
|
| Postgres | postgres://{host}:{port} |
|
|
| Teradata | teradata://{host}:{port} |
{database}.{table} |
Non compatible |
| Redshift | redshift://{cluster_identifier}.{region_name}:{port} |
|
|
| Snowflake | snowflake://{organization name}-{account name} or snowflake://{account-locator}(.{compliance})(.{cloud_region_id})(.{cloud}) |
|
|
| Spanner | spanner://{projectId}:{instanceId} |
{database}.{schema}.{table} |
Compatible avec Dataplex Universal Catalog, mais pas avec la traçabilité des données |
| Trino | trino://{host}:{port} |
|
|
| ABFSS (Azure Data Lake Gen2) | abfss://{container name}@{service name}.dfs.core.windows.net |
{path} |
|
| DBFS (Databricks File System) | dbfs://{workspace name} |
{path} |
|
| Cloud Storage | gs://{bucket name} |
{object key} |
|
| HDFS | hdfs://{namenode host}:{namenode port} |
{path} |
|
| Kafka | kafka://{bootstrap server host}:{port} |
{topic} |
kafka:{serverHostWithPort}.{topicId} |
| Système de fichiers local | file |
{path} |
filesystem:localhost.{path} |
| Système de fichiers distant | file://{host} |
{path} |
filesystem:{hostWithPort}.{path} |
| S3 | s3://{bucket name} |
{object key} |
s3a et s3n sont également acceptés et convertis en s3. |
| WASBS (Azure Blob Storage) | wasbs://{container name}@{service name}.dfs.core.windows.net |
{object key} |
|
| Sujet Pub/Sub | pubsub |
topic:{projectId}:{topicId} |
pubsub:topic:{projectId}.{topicId} |
| Abonnement Pub/Sub | pubsub |
subscription:{projectId}:{subscriptionId} |
pubsub:subscription:{projectId}.{subscriptionId} |
Autres formats acceptés
Bien qu'OpenLineage ne définisse pas de paires namespace/name standards pour les systèmes suivants, l'API Data Lineage accepte les événements de lineage pour ces systèmes lorsqu'ils sont mis en forme comme décrit dans le tableau ci-dessous. Les ressources référencées dans les messages OpenLineage avec l'espace de noms custom sont interprétées comme des noms complets personnalisés.
| Système | Espace de noms OpenLineage | Nom OpenLineage | Nom complet qualifié (FQN) Dataplex Universal Catalog |
|---|---|---|---|
| Nom de domaine complet personnalisé | custom |
{some reference} |
custom:{someReference} |
| Dataproc Metastore | dataproc_metastore |
|
|
Étapes suivantes
- Découvrez comment intégrer OpenLineage.
- Consultez la documentation de référence sur les noms complets.
- Découvrez l'API Data Lineage.
- Découvrez comment afficher les informations sur la traçabilité.