Integrazione con OpenLineage

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 nella UI di Dataplex insieme alle informazioni sulla derivazione dai servizi Google 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 i facet 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 release di OpenLineage successiva con modifiche al formato dei messaggi
    • DatasetEvent
    • JobEvent
  • La dimensione massima di un singolo messaggio è 5 MB.

  • La lunghezza di ogni nome completo negli input e negli output è limitata a 4000 caratteri.

  • I link sono raggruppati per eventi con 100 link. Il numero massimo aggregato di link è 1000.

  • Dataplex visualizza un grafico di derivazione per ogni esecuzione di job, che mostra gli input e gli output degli eventi di derivazione. Non supporta processi di livello inferiore come le fasi di 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
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
Esegui.displayName Run.runId
Esegui.attributes Run.facets (vedi Dati archiviati)
Esegui.startTime eventTime
Run.endTime eventTime
Esegui.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

Importa un evento OpenLineage

Se non hai ancora configurato OpenLineage, consulta la guida introduttiva.

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"}'

Analizzare informazioni da OpenLineage

Per analizzare gli eventi OpenLineage importati, vedi Visualizzare i grafici di derivazione nella UI di Dataplex.

Dati archiviati

L'API Data Lineage non archivia tutti i dati dei facet 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 e origin.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