OpenLineage è una piattaforma aperta per raccogliere e analizzare le informazioni sulla provenienza dei dati. Utilizzando uno standard aperto per i dati sulla cronologia, OpenLineage acquisisce gli eventi della cronologia 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 gli eventi OpenLineage da visualizzare nell'interfaccia web di Dataplex insieme alle informazioni sulla cronologia dei servizi Google Cloud, come BigQuery, Cloud Composer, Cloud Data Fusion e Dataproc.
Per importare gli eventi OpenLineage che utilizzano la
specifica OpenLineage,
utilizza il metodo dell'API REST ProcessOpenLineageRunEvent
e mappa le sfaccettature OpenLineage agli attributi dell'API Data Lineage.
Limitazioni
L'API Data Lineage supporta le versioni principali 1 e 2 di OpenLineage.
L'API Data Lineage non supporta quanto segue:
- Qualsiasi versione successiva di OpenLineage con modifiche al formato dei messaggi
DatasetEvent
JobEvent
La dimensione massima di un singolo messaggio è di 5 MB.
La lunghezza di ogni nome completamente qualificato in input e output è limitata a 4000 caratteri.
I link vengono raggruppati per eventi con 100 link. Il numero aggregato massimo di link è 1000.
Dataplex mostra un grafico della cronologia per ogni esecuzione del job, che mostra gli input e le uscite degli eventi della cronologia. Non supporta processi di livello inferiore come le fasi Spark.
Mappatura OpenLineage
Il metodo dell'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 |
Processo.displayName | Job.namespace + ":" + Job.name |
Processo.attributi | Job.facets (vedi Dati archiviati) |
Esegui.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID |
Esegui.displayName | Run.runId |
Corsa.attributi | Run.facets (vedi Dati archiviati) |
Esegui.startTime | eventTime |
Esegui.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 dello spazio dei nomi e del nome) |
LineageEvent.EventLinks.target | output (fqn è la concatenazione dello spazio dei nomi e del 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 Guida introduttiva.
Per importare un evento OpenLineage in Dataplex, 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"}'
Analizza le informazioni di OpenLineage
Per analizzare gli eventi OpenLineage importati, consulta Visualizzare i grafici della struttura in Dataplex UI.
Dati archiviati
L'API Data Lineage non memorizza tutti i dati dei vari aspetti dei messaggi OpenLineage. L'API Data Lineage memorizza i seguenti campi delle sfaccettature:
spark_version
openlineage-spark-version
spark-version
- tutti i
spark.logicalPlan.*
environment-properties
(elemento personalizzato della struttura di Google Cloud)origin.sourcetype
eorigin.name
spark.app.id
spark.app.name
spark.batch.id
spark.batch.uuid
spark.cluster.name
spark.cluster.region
spark.job.id
spark.job.uuid
spark.project.id
spark.query.node.name
spark.session.id
spark.session.uuid
L'API Data Lineage memorizza le seguenti informazioni:
eventTime
run.runId
job.namespace
job.name