L'API Data Lineage può importare informazioni sulla derivazione dai sistemi che si integrano con
OpenLineage, uno standard aperto per la raccolta della derivazione.
Quando invii eventi in formato OpenLineage all'API Data Lineage utilizzando il metodo
ProcessOpenLineageRunEvent, l'API Data Lineage mappa gli attributi del messaggio OpenLineage agli attributi
corrispondenti nell'API Data Lineage.
Questo documento fornisce tabelle di riferimento per questi mapping.
Mappatura attributi
Il metodo API REST ProcessOpenLineageRunEvent mappa gli attributi OpenLineage agli attributi dell'API Data Lineage come segue:
| Attributi dell'API Data Lineage | Attributi OpenLineage |
|---|---|
| Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
| Process.displayName | Job.namespace + ":" + Job.name |
| Process.attributes | Job.facets (vedi Dati memorizzati) |
| 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 (vedi Dati memorizzati) |
| 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 (ad esempio, projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
| LineageEvent.EventLinks.source | input (fqn è la concatenazione di spazio dei nomi e nome) |
| LineageEvent.EventLinks.target | output (fqn è la concatenazione di spazio dei nomi e nome) |
| LineageEvent.startTime | eventTime |
| LineageEvent.endTime | eventTime |
| requestId | Definito dall'utente del metodo |
La tracciabilità a livello di colonna è supportata quando viene generata automaticamente da
Managed Service for Apache Spark (Managed Service for Apache Spark), a condizione che utilizzi la
sfaccettatura columnLineage all'interno degli oggetti outputs. Gli eventi OpenLineage personalizzati
che includono questo facet materializzano solo la tracciabilità a livello di tabella e non eseguono il rendering
della tracciabilità a livello di colonna nella console Google Cloud . Di seguito è riportato un
esempio della sfaccettatura generata da Managed Service for Apache Spark:
"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
}
]
}
]
}
},
}
}]
In questo esempio, crei un link di tracciabilità a livello di colonna tra input_field e output_field. Devi includere il campo delle trasformazioni; senza di esso, la tracciabilità a livello di colonna non verrà acquisita. Per ulteriori informazioni sulla definizione di Open Lineage per questo aspetto, consulta Aspetto del set di dati a livello di colonna.
Mappatura FQN
La tabella seguente fornisce esempi di coppie di spazio dei nomi e nome OpenLineage per vari sistemi e i relativi nomi completi (FQN) di Knowledge Catalog (in precedenza Dataplex Universal Catalog):
| Sistema | Spazio dei nomi OpenLineage | Nome OpenLineage | Nome completo di Knowledge 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} |
|
Non supportata |
| BigQuery | bigquery |
|
|
| Cassandra | cassandra://{host}:{port} |
|
|
| MySQL | mysql://{host}:{port} |
|
|
| CrateDB | crate://{host}:{port} |
{database}.{schema}.{table} |
Non supportata |
| DB2 | db2://{host}:{port} |
|
|
| Hive | hive://{host}:{port} |
{database}.{table} |
Non supportata |
| MSSQL | mssql://{host}:{port} |
{database}.{schema}.{table} |
Non supportata |
| OceanBase | oceanbase://{host}:{port} |
{database}.{table} |
Non supportata |
| Oracle | oracle://{host}:{port} |
{serviceName}.{schema}.{table} or {sid}.{schema}.{table} |
|
| Postgres | postgres://{host}:{port} |
|
|
| Teradata | teradata://{host}:{port} |
{database}.{table} |
Non supportata |
| 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} |
Supportato in Knowledge Catalog, ma non in Derivazione dei dati |
| 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} |
| File system locale | file |
{path} |
filesystem:localhost.{path} |
| File system remoto | file://{host} |
{path} |
filesystem:{hostWithPort}.{path} |
| S3 | s3://{bucket name} |
{object key} |
Vengono accettati e convertiti in s3 anche i prefissi dello spazio dei nomi s3a e s3n. |
| WASBS (Azure Blob Storage) | wasbs://{container name}@{service name}.dfs.core.windows.net |
{object key} |
|
| Argomento Pub/Sub | pubsub |
topic:{projectId}:{topicId} |
pubsub:topic:{projectId}.{topicId} |
| Abbonamento Pub/Sub | pubsub |
subscription:{projectId}:{subscriptionId} |
pubsub:subscription:{projectId}.{subscriptionId} |
Altri formati accettati
Sebbene OpenLineage non definisca coppie namespace/name standard per i seguenti sistemi, l'API Data Lineage accetta gli eventi di derivazione per questi sistemi se formattati come descritto nella tabella seguente. Le risorse a cui viene fatto riferimento nei messaggi OpenLineage con lo spazio dei nomi custom vengono interpretate come nomi completi personalizzati.
| Sistema | Spazio dei nomi OpenLineage | Nome OpenLineage | Nome completo di Knowledge Catalog |
|---|---|---|---|
| FQN personalizzato | custom |
{some reference} |
custom:{someReference} |
| Dataproc Metastore | dataproc_metastore |
|
|
Passaggi successivi
- Scopri come eseguire l'integrazione con OpenLineage.
- Consulta il riferimento ai nomi completi.
- Esplora l'API Data Lineage.
- Scopri come visualizzare le informazioni sulla tracciabilità.