Questo documento spiega come integrare OpenLineage con Knowledge Catalog (in precedenza Dataplex Universal Catalog) per
importare e visualizzare la tracciabilità dei dati da sistemi esterni. Agendo come consumer OpenLineage
utilizzando l'API REST ProcessOpenLineageRunEvent, Knowledge Catalog ti consente di unificare la tracciabilità della pipeline personalizzata
insieme alla tracciabilità integrata dei servizi Google Cloud .
Panoramica
OpenLineage è una piattaforma aperta per la raccolta e l'analisi delle informazioni sulla tracciabilità dei dati. Utilizzando uno standard aperto per i dati di tracciabilità, OpenLineage acquisisce gli eventi di tracciabilità dai componenti della pipeline di dati che utilizzano un'API OpenLineage per generare report su esecuzioni, job e set di dati.
Tramite l'API Data Lineage, puoi importare eventi OpenLineage da visualizzare nell'interfaccia web di Knowledge Catalog insieme alle informazioni sulla derivazione di serviziGoogle Cloud , come BigQuery, Managed Service for Apache Airflow, Cloud Data Fusion e Managed Service for Apache Spark.
Per importare eventi OpenLineage che utilizzano la
specifica OpenLineage,
utilizza il metodo
ProcessOpenLineageRunEvent
dell'API REST e mappa le sfaccettature OpenLineage agli attributi dell'API Data Lineage.
Limitazioni dell'integrazione di OpenLineage
Versioni supportate:l'API Data Lineage supporta la versione principale 1 di OpenLineage.
Azioni API:l'endpoint API Data Lineage
ProcessOpenLineageRunEventfunge solo da consumer di messaggi OpenLineage, non da producer. L'API ti consente di inviare a Knowledge Catalog le informazioni sulla derivazione generate da qualsiasi strumento o sistema conforme a OpenLineage. Alcuni servizi Google Cloud , come Managed Service for Apache Spark e Managed Airflow, includono produttori OpenLineage integrati che possono inviare eventi a questo endpoint, automatizzando l'acquisizione della tracciabilità da questi servizi.Funzionalità non supportate:l'API Data Lineage non supporta quanto segue:
- Qualsiasi release successiva di OpenLineage con modifiche al formato del messaggio
DatasetEventJobEvent
Dimensioni del messaggio:la dimensione massima di un singolo messaggio è di 5 MB.
Lunghezza del nome:la lunghezza di ogni nome completo negli input e negli output è limitata a 4000 caratteri.
Tracciabilità a livello di colonna:l'endpoint
ProcessOpenLineageRunEventmaterializza i bordi della tracciabilità a livello di tabella solo per gli eventi OpenLineage personalizzati. I grafici di derivazione a livello di colonna vengono generati solo per le trasformazioni SQL di BigQuery e i job Managed Service for Apache Spark. I facet a livello di colonna personalizzati non vengono visualizzati nella console.Limiti dei link:i link sono raggruppati per eventi, con un massimo di 100 link per evento. Il numero aggregato massimo di link a livello di tabella è 1000. Per i motori automatici supportati che raccolgono la derivazione a livello di colonna, se un messaggio contiene più di 1500 link a livello di colonna, le informazioni a livello di colonna vengono ignorate.
Ambito del grafico:Knowledge Catalog mostra un grafico della tracciabilità per ogni esecuzione del job, mostrando gli input e gli output degli eventi di tracciabilità. Non supporta processi di livello inferiore come le fasi Spark.
Mappatura degli attributi dei facet OpenLineage
Per informazioni sulla mappatura di OpenLineage, vedi Mappatura di OpenLineage.
Importare un evento OpenLineage
Se non hai ancora configurato OpenLineage, consulta la sezione Inizia.
Per importare un evento OpenLineage in Knowledge Catalog, chiama il metodo API
ProcessOpenLineageRunEvent.
C#
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di Data Lineage per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Data Lineage C#.
Per eseguire l'autenticazione in Data Lineage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Vai
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Data Lineage per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Data Lineage Go.
Per eseguire l'autenticazione in Data Lineage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Data Lineage per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Data Lineage Java.
Per eseguire l'autenticazione in Data Lineage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Data Lineage per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Data Lineage Python.
Per eseguire l'autenticazione in Data Lineage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida di Data Lineage per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Data Lineage Ruby.
Per eseguire l'autenticazione in Data Lineage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per importare un evento OpenLineage, utilizza il
metodo processOpenLineageRunEvent.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud .LOCATION_ID: la posizione Google Cloud , ad esempious-central1.
Metodo HTTP e URL:
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:processOpenLineageRunEvent
Corpo JSON della richiesta:
{
"eventTime": "2023-04-04T13:21:16.098Z",
"eventType": "COMPLETE",
"inputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"job": {
"name": "somename",
"namespace": "customnamespace"
},
"outputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"producer": "someproducer",
"run": {
"runId": "somerunid"
},
"schemaURL": "https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"process": "projects/my-project/locations/us-central1/processes/my-process",
"run": "projects/my-project/locations/us-central1/processes/my-process/runs/my-run",
"lineageEvents": [
"projects/my-project/locations/us-central1/processes/my-process/runs/my-run/lineageEvents/my-lineage-event"
]
}
Strumenti per l'invio di messaggi OpenLineage
Per semplificare l'invio di eventi all'API Data Lineage, puoi utilizzare vari strumenti e librerie:
- Librerie client di Google Cloud per Data Lineage: Google fornisce librerie client per interagire con l'API Data Lineage a livello di programmazione. Per istruzioni di installazione, consulta Librerie client.
- Libreria di produzione Java di Google Cloud:Google fornisce una libreria Java open source per creare e inviare eventi OpenLineage all'API Data Lineage. Per saperne di più, consulta il post del blog La libreria Java del produttore per Data Lineage è ora open source. La libreria è disponibile su GitHub e Maven.
- OpenLineage GCP Transport: per i produttori OpenLineage basati su Java, è disponibile un GcpLineage Transport dedicato. Semplifica l'integrazione con l'API Data Lineage riducendo al minimo il codice necessario per inviare eventi all'API Data Lineage.
GcpLineageTransportpuò essere configurato come sink di eventi per qualsiasi produttore OpenLineage esistente, come Airflow, Spark e Flink. Per ulteriori informazioni ed esempi, consulta GcpLineage.
Analizzare le informazioni di OpenLineage
Per analizzare gli eventi OpenLineage importati, vedi Visualizzare i grafici di tracciabilità nella UI di Knowledge Catalog.
Dati delle sfaccettature OpenLineage archiviati
L'API Data Lineage non archivia tutti i dati delle sfaccettature dei messaggi OpenLineage. L'API Data Lineage archivia i seguenti campi delle sfaccettature:
spark_versionopenlineage-spark-versionspark-version
- tutti i
spark.logicalPlan.* environment-properties(sfaccettatura della tracciabilità personalizzata Google Cloud )origin.sourcetypeeorigin.namespark.app.idspark.app.namespark.batch.idspark.batch.uuidspark.cluster.namespark.cluster.regionspark.job.idspark.job.uuidspark.project.idspark.query.node.namespark.session.idspark.session.uuid
L'API Data Lineage archivia le seguenti informazioni:
eventTimerun.runIdjob.namespacejob.name
Passaggi successivi
- Scopri di più sulla tracciabilità dei dati con Managed Service for Apache Spark e sulle integrazioni della tracciabilità dei dati Hive.
- Prova in un lab interattivo: Acquisizione ed esplorazione degli aggiornamenti dei dati con la lineage dei dati e OpenLineage