OpenLineage è una piattaforma aperta per la raccolta e l'analisi delle informazioni sulla derivazione dei dati. Utilizzando uno standard aperto per i dati di derivazione, OpenLineage acquisisce gli eventi di derivazione 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 Dataplex Universal Catalog insieme alle informazioni sulla derivazione di serviziGoogle Cloud come BigQuery, Cloud Composer, Cloud Data Fusion e Dataproc.
Per importare eventi OpenLineage che utilizzano la
specifica OpenLineage,
utilizza il metodo
API REST
ProcessOpenLineageRunEvent
e mappa le sfaccettature OpenLineage agli attributi dell'API Data Lineage.
Limitazioni
L'API Data Lineage supporta la versione principale 1 di OpenLineage.
L'endpoint API Data Lineage
ProcessOpenLineageRunEventfunge solo da consumer dei messaggi OpenLineage, non da producer. L'API ti consente di inviare informazioni sulla derivazione generate da qualsiasi strumento o sistema conforme a OpenLineage a Dataplex Universal Catalog. Alcuni servizi Google Cloud , come Dataproc e Cloud Composer, includono produttori OpenLineage integrati che possono inviare eventi a questo endpoint, automatizzando l'acquisizione della derivazione da questi servizi.L'API Data Lineage non supporta quanto segue:
- Qualsiasi release successiva di OpenLineage con modifiche al formato del messaggio
DatasetEventJobEvent
La dimensione massima di un singolo messaggio è di 5 MB.
La lunghezza di ogni nome completo in input e output è limitata a 4000 caratteri.
Link sono raggruppati per eventi con 100 link. Il numero aggregato massimo di link è 1000.
Dataplex Universal Catalog mostra un grafico della derivazione per ogni esecuzione del job, mostrando gli input e gli output degli eventi di derivazione. Non supporta processi di livello inferiore come le fasi di Spark.
Mappatura OpenLineage
Il metodo API REST
ProcessOpenLineageRunEvent
mappa gli attributi OpenLineage agli attributi dell'API Data Lineage nel seguente modo:
| 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 archiviati) |
| 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 archiviati) |
| 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 |
Importare un evento OpenLineage
Se non hai ancora configurato OpenLineage, consulta la sezione Guida introduttiva.
Per importare un evento OpenLineage in Dataplex Universal Catalog, chiama il metodo dell'API REST
ProcessOpenLineageRunEvent:
POST https://datalineage.googleapis.com/v1/projects/{project}/locations/{location}:processOpenLineageRunEvent \
--data '{"eventTime":"2023-04-04T13:21:16.098Z","eventType":"COMPLETE","inputs":[{"name":"somename","namespace":"somenamespace"}],"job":{"name":"somename","namespace":"somenamespace"},"outputs":[{"name":"somename","namespace":"somenamespace"}],"producer":"someproducer","run":{"runId":"somerunid"},"schemaURL":"https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"}'
Strumenti per l'invio di messaggi OpenLineage
Per semplificare l'invio di eventi all'API Data Lineage, puoi utilizzare vari strumenti e librerie:
- Libreria Java Producer di Google Cloud:Google fornisce una libreria Java open source per creare e inviare eventi OpenLineage all'API Data Lineage. Per maggiori informazioni, consulta il post del blog La libreria Java Producer per Data Lineage è ora open source. La libreria è disponibile su GitHub e Maven.
- Trasporto OpenLineage GCP:per i produttori OpenLineage basati su Java, è disponibile un trasporto GcpLineage 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, consulta Visualizzare i grafici di derivazione nell'interfaccia utente di Dataplex Universal Catalog.
Dati 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
spark.logicalPlan.* environment-properties(sfaccettatura della genealogia 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
- Dai un'occhiata alle integrazioni di Dataproc Serverless e Dataproc Hive.
- Provalo in un lab interattivo: Acquisizione ed esplorazione degli aggiornamenti dei dati con la lineage dei dati e OpenLineage