OpenLineage è una piattaforma aperta per la raccolta e l'analisi delle informazioni sulla derivazione dei dati. Utilizzando uno standard aperto per i dati sulla provenienza, OpenLineage acquisisce gli eventi sulla provenienza 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'UI 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.
Lunghezza di ogni nome completo in input e output è limitato a 4000 caratteri.
I link sono raggruppati per eventi con 100 link. Il numero aggregato massimo di link è 1000.
Dataplex visualizza un grafico di derivazione per ogni esecuzione di job, che mostra gli input e output di eventi di derivazione. Non supporta processi di livello inferiore come le fasi Spark.
Mappatura di OpenLineage
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 archiviati) |
Esegui.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 |
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 es. projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
LineageEvent.EventLinks.source | (fqn è la concatenazione dei nomi e dello spazio dei nomi) |
LineageEvent.EventLinks.target | (fqn è la concatenazione dei nomi e dello spazio dei nomi) |
LineageEvent.startTime | eventTime |
LineageEvent.endTime | eventTime |
requestId | Definito dal metodo utilizzato dall'utente |
Importare un evento OpenLineage
Se non hai ancora configurato OpenLineage, consulta Come iniziare.
Per importare un evento OpenLineage in Dataplex, chiama il metodo 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 archivia i seguenti campi facet:
spark_version
openlineage-spark-version
spark-version
- tutti e
spark.logicalPlan.*
environment-properties
(facet di derivazione Google Cloud personalizzata)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 archivia le seguenti informazioni:
eventTime
run.runId
job.namespace
job.name