In OpenLineage einbinden

OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Data Lineage-Informationen. Mit einem offenen Standard für Lineage-Daten erfasst OpenLineage Lineage-Ereignisse aus Datenpipeline-Komponenten, die eine OpenLineage API verwenden, um Ausführungen, Jobs und Datasets zu melden.

Über die Data Lineage API können Sie OpenLineage-Ereignisse importieren, um sie in der Dataplex-UI zusammen mit den Herkunftsinformationen aus Google Cloud-Diensten wie BigQuery, Cloud Composer, Cloud Data Fusion und Dataproc anzuzeigen.

Verwenden Sie zum Importieren von OpenLineage-Ereignissen, die die OpenLineage-Spezifikation verwenden, die REST API-Methode ProcessOpenLineageRunEvent und ordnen Sie OpenLineage-Attribute den Data Lineage API-Attributen zu.

Beschränkungen

  • Die Data Lineage API unterstützt die OpenLineage-Hauptversionen 1 und 2.

  • Folgendes wird von der Data Lineage API nicht unterstützt:

    • Jeder nachfolgende OpenLineage-Release mit geändertem Nachrichtenformat
    • DatasetEvent
    • JobEvent
  • Eine einzelne Nachricht darf maximal 5 MB groß sein.

  • Die Länge der voll qualifizierten Namen in Ein- und Ausgaben ist auf 4.000 Zeichen begrenzt.

  • Links werden nach Ereignissen mit 100 Links gruppiert. Die maximale Gesamtzahl an Links beträgt 1.000.

  • Dataplex zeigt für jede Jobausführung ein Lineage-Diagramm an, in dem die Ein- und Ausgaben von Lineage-Ereignissen angezeigt werden. Untergeordnete Prozesse wie Spark-Phasen werden nicht unterstützt.

OpenLineage-Zuordnung

Die REST API-Methode ProcessOpenLineageRunEvent ordnet Data Lineage-Attributen OpenLineage-Attributen so zu:

Data Lineage API-Attribute OpenLineage-Attribute
Process.name projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME
Prozess.displayName Job.namespace + ":" + Job.name
Prozess.attributes Job.facets (siehe Gespeicherte Daten)
Run.name (Ausführen) projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID
Run.displayName Run.runId
Run.attributes Run.facets (siehe Gespeicherte Daten)
Run.startTime (Ausführen) eventTime
Run.endTime (Ausführen). 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 (z.B. projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333)
LineageEvent.EventLinks.source. Eingaben (fqn ist die Verkettung von Namespace und Namen)
LineageEvent.EventLinks.target Ausgaben (fqn ist Namespace- und Namensverkettung)
LineageEvent.startTime eventTime
LineageEvent.endTime eventTime
requestId Durch die Methode definiert

OpenLineage-Ereignis importieren

Wenn Sie OpenLineage noch nicht eingerichtet haben, finden Sie weitere Informationen unter Erste Schritte.

Rufen Sie die REST API-Methode ProcessOpenLineageRunEvent auf, um ein OpenLineage-Ereignis in Dataplex zu importieren:

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

Informationen aus OpenLineage analysieren

Informationen zum Analysieren der importierten OpenLineage-Ereignisse finden Sie unter Lineage-Diagramme in der Dataplex-UI ansehen.

Gespeicherte Daten

Die Data Lineage API speichert nicht alle Attributdaten aus den OpenLineage-Nachrichten. Die Data Lineage API speichert die folgenden Attributfelder:

  • spark_version
    • openlineage-spark-version
    • spark-version
  • alle spark.logicalPlan.*
  • environment-properties (benutzerdefiniertes Google Cloud-Herkunftsattribut)
    • origin.sourcetype und 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

Die Data Lineage API speichert die folgenden Informationen:

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