A API Data Lineage pode ingerir informações de linhagem de sistemas que se integram ao OpenLineage, um padrão aberto para coleta de linhagem.
Quando você envia eventos formatados com OpenLineage para a API Data Lineage usando o método
ProcessOpenLineageRunEvent, a API Data Lineage mapeia atributos da mensagem OpenLineage para atributos correspondentes
na API Data Lineage.
Este documento fornece tabelas de referência para esses mapeamentos.
Mapeamento de atributos
O método da API REST ProcessOpenLineageRunEvent mapeia atributos do OpenLineage para atributos da API Data Lineage da seguinte forma:
| Atributos da API Data Lineage | Atributos do OpenLineage |
|---|---|
| Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
| Process.displayName | Job.namespace + ":" + Job.name |
| Process.attributes | Job.facets (consulte Dados armazenados) |
| 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 (consulte Dados armazenados) |
| 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 exemplo, projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
| LineageEvent.EventLinks.source | entradas (fqn é a concatenação de namespace e nome) |
| LineageEvent.EventLinks.target | saídas (fqn é a concatenação de namespace e nome) |
| LineageEvent.startTime | eventTime |
| LineageEvent.endTime | eventTime |
| requestId | Definido pelo usuário do método |
Mapeamento de FQN
A tabela a seguir mostra exemplos de pares de namespace e nome do OpenLineage para vários sistemas e os nomes totalmente qualificados (FQNs) equivalentes do catálogo universal do Dataplex:
| Sistema | Namespace OpenLineage | Nome do OpenLineage | FQN do 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} |
Sem suporte |
| DB2 | db2://{host}:{port} |
|
|
| Hive | hive://{host}:{port} |
{database}.{table} |
Sem suporte |
| MSSQL | mssql://{host}:{port} |
{database}.{schema}.{table} |
Sem suporte |
| OceanBase | oceanbase://{host}:{port} |
{database}.{table} |
Sem suporte |
| Oracle | oracle://{host}:{port} |
{serviceName}.{schema}.{table} or {sid}.{schema}.{table} |
|
| Postgres | postgres://{host}:{port} |
|
|
| Teradata | teradata://{host}:{port} |
{database}.{table} |
Sem suporte |
| 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} |
Compatível com o Dataplex Universal Catalog, mas não com a linhagem de dados |
| 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 arquivos local | file |
{path} |
filesystem:localhost.{path} |
| Sistema de arquivos remoto | file://{host} |
{path} |
filesystem:{hostWithPort}.{path} |
| S3 | s3://{bucket name} |
{object key} |
s3a e s3n também são aceitos e convertidos em s3.
|
| WASBS (Armazenamento de Blobs do Azure) | wasbs://{container name}@{service name}.dfs.core.windows.net |
{object key} |
|
| Tópico do Pub/Sub | pubsub |
topic:{projectId}:{topicId} |
pubsub:topic:{projectId}.{topicId} |
| Assinatura do Pub/Sub | pubsub |
subscription:{projectId}:{subscriptionId} |
pubsub:subscription:{projectId}.{subscriptionId} |
Outros formatos aceitos
Embora o OpenLineage não defina pares namespace/name padrão para os sistemas a seguir, a API Data Lineage aceita eventos de linhagem para eles quando formatados conforme descrito na tabela abaixo. Os recursos referenciados em mensagens do OpenLineage com o namespace custom são interpretados como nomes totalmente qualificados personalizados.
| Sistema | Namespace OpenLineage | Nome do OpenLineage | FQN do Dataplex Universal Catalog |
|---|---|---|---|
| FQDN personalizado | custom |
{some reference} |
custom:{someReference} |
| Metastore do Dataproc | dataproc_metastore |
|
|
A seguir
- Saiba como fazer a integração com o OpenLineage.
- Consulte a referência para nomes totalmente qualificados.
- Conheça a API Data Lineage.
- Saiba como ver informações de linhagem.