Eseguire l'integrazione con OpenLineage

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 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 memorizza le seguenti informazioni:

  • eventTime
  • run.runId
  • job.namespace
  • job.name