La API de Data Lineage puede transferir información de linaje de sistemas que se integran con OpenLineage, un estándar abierto para la recopilación de linaje.
Cuando envías eventos con formato de OpenLineage a la API de Data Lineage con el método ProcessOpenLineageRunEvent, la API de Data Lineage asigna atributos del mensaje de OpenLineage a atributos correspondientes en la API de Data Lineage.
En este documento, se proporcionan tablas de referencia para estas asignaciones.
Asignación de atributos
El método de la API de REST ProcessOpenLineageRunEvent asigna los atributos de OpenLineage a los atributos de la API de Data Lineage de la siguiente manera:
| Atributos de la API de Data Lineage | Atributos de OpenLineage |
|---|---|
| Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
| Process.displayName | Job.namespace + ":" + Job.name |
| Process.attributes | Job.facets (consulta Datos almacenados) |
| 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 (consulta Datos almacenados) |
| 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 (por ejemplo, projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
| LineageEvent.EventLinks.source | Entradas (fqn es la concatenación del espacio de nombres y el nombre) |
| LineageEvent.EventLinks.target | Salidas (fqn es la concatenación del espacio de nombres y el nombre) |
| LineageEvent.startTime | eventTime |
| LineageEvent.endTime | eventTime |
| requestId | Definido por el usuario del método |
Asignación de FQN
En la siguiente tabla, se proporcionan ejemplos de pares de espacio de nombres y nombre de OpenLineage para varios sistemas, y sus nombres completamente calificados (FQN) equivalentes del catálogo universal de Dataplex:
| Sistema | Espacio de nombres de OpenLineage | Nombre de OpenLineage | FQN de 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} |
No compatible |
| DB2 | db2://{host}:{port} |
|
|
| Hive | hive://{host}:{port} |
{database}.{table} |
No compatible |
| MSSQL | mssql://{host}:{port} |
{database}.{schema}.{table} |
No compatible |
| OceanBase | oceanbase://{host}:{port} |
{database}.{table} |
No compatible |
| Oracle | oracle://{host}:{port} |
{serviceName}.{schema}.{table} or {sid}.{schema}.{table} |
|
| Postgres | postgres://{host}:{port} |
|
|
| Teradata | teradata://{host}:{port} |
{database}.{table} |
No 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} |
Se admite en Dataplex Universal Catalog, pero no en el linaje de datos. |
| 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} |
| Sistema de archivos local | file |
{path} |
filesystem:localhost.{path} |
| Sistema de archivos remoto | file://{host} |
{path} |
filesystem:{hostWithPort}.{path} |
| S3 | s3://{bucket name} |
{object key} |
También se aceptan los prefijos de espacio de nombres s3a y s3n, y se convierten a s3.
|
| WASBS (Azure Blob Storage) | wasbs://{container name}@{service name}.dfs.core.windows.net |
{object key} |
|
| Tema de Pub/Sub | pubsub |
topic:{projectId}:{topicId} |
pubsub:topic:{projectId}.{topicId} |
| Suscripción a Pub/Sub | pubsub |
subscription:{projectId}:{subscriptionId} |
pubsub:subscription:{projectId}.{subscriptionId} |
Formatos adicionales aceptados
Si bien OpenLineage no define pares namespace/name estándar para los siguientes sistemas, la API de Data Lineage acepta eventos de linaje para ellos cuando se formatean como se describe en la siguiente tabla. Los recursos a los que se hace referencia en los mensajes de OpenLineage con el espacio de nombres custom se interpretan como nombres personalizados completamente calificados.
| Sistema | Espacio de nombres de OpenLineage | Nombre de OpenLineage | FQN de Dataplex Universal Catalog |
|---|---|---|---|
| FQDN personalizado | custom |
{some reference} |
custom:{someReference} |
| Dataproc Metastore | dataproc_metastore |
|
|
¿Qué sigue?
- Obtén más información para integrar OpenLineage.
- Consulta la referencia de nombres completamente calificados.
- Explora la API de Data Lineage.
- Obtén más información para ver la información del linaje.