In OpenLineage einbinden

OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Datenherkunftsinformationen. OpenLineage verwendet einen offenen Standard für Herkunftsdaten und erfasst so Herkunftsereignisse aus Datenpipelinekomponenten, die eine OpenLineage API verwenden, um Berichte zu Ausführungen, Jobs und Datasets zu erstellen.

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

Wenn Sie OpenLineage-Ereignisse importieren möchten, die die OpenLineage-Spezifikation verwenden, verwenden Sie 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.

  • Die Data Lineage API unterstützt Folgendes nicht:

    • Jeder nachfolgende OpenLineage-Release mit Änderungen des Nachrichtenformats
    • DatasetEvent
    • JobEvent
  • Eine einzelne Nachricht darf maximal 5 MB groß sein.

  • Die Länge jedes Fully Qualified Name in Ein- und Ausgaben ist auf 4.000 Zeichen begrenzt.

  • Links werden nach Ereignissen mit 100 Links gruppiert. Insgesamt sind maximal 1.000 Links zulässig.

  • Dataplex zeigt für jede Jobausführung ein Herkunftsdiagramm mit den Ein- und Ausgaben von Herkunftsereignissen an. Untergeordnete Prozesse wie Spark-Phasen werden nicht unterstützt.

OpenLineage-Zuordnung

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

Data Lineage API-Attribute OpenLineage-Attribute
Prozess.name projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME
Prozess.displayName Job.namespace + ":" + Job.name
Process.attributes Job.facets (siehe Gespeicherte Daten)
Run.name 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 eventTime
Run.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 (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 die Verkettung von Namespace und Namen)
LineageEvent.startTime eventTime
LineageEvent.endTime eventTime
requestId Wird vom Methodennutzer definiert

OpenLineage-Ereignis importieren

Wenn Sie OpenLineage noch nicht eingerichtet haben, lesen Sie die 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 Herkunftsdiagramme in der Dataplex-UI ansehen.

Gespeicherte Daten

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

  • 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