OpenLineage einbinden

OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Informationen zur Datenableitung. OpenLineage verwendet einen offenen Standard für Lineage-Daten und erfasst Lineage-Ereignisse aus Datenpipeline-Komponenten, 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, die dann in der Dataplex-Weboberfläche zusammen mit Informationen zur Herkunft aus Google Cloud-Diensten wie BigQuery, Cloud Composer, Cloud Data Fusion und Dataproc angezeigt werden.

Wenn Sie OpenLineage-Ereignisse importieren möchten, die die OpenLineage-Spezifikation verwenden, verwenden Sie die REST API-Methode ProcessOpenLineageRunEvent und ordnen Sie OpenLineage-Facetten Data Lineage API-Attributen zu.

Beschränkungen

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

  • Die Data Lineage API unterstützt Folgendes nicht:

    • Jede nachfolgende OpenLineage-Version mit Änderungen am Nachrichtenformat
    • DatasetEvent
    • JobEvent
  • Die maximale Größe einer einzelnen Nachricht beträgt 5 MB.

  • Die Länge jedes vollqualifizierten Namens in Eingaben und Ausgaben ist auf 4.000 Zeichen beschränkt.

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

  • In Dataplex wird für jeden Jobausführung ein Herkunftsdiagramm mit den Eingaben und Ausgaben von Herkunftsereignissen angezeigt. Es werden keine Prozesse auf niedrigerer Ebene wie Spark-Phasen unterstützt.

OpenLineage-Zuordnung

Die REST API-Methode ProcessOpenLineageRunEventordnet OpenLineage-Attribute den Data Lineage API-Attributen folgendermaßen 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
Process.attributes Job.facets (siehe Gespeicherte Daten)
Ausführen.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
Lauf.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/de/processes/1234/runs/4321/lineageEvents/111-222-333)
LineageEvent.EventLinks.source inputs (fqn ist die Koncatenation von Namespace und Name)
LineageEvent.EventLinks.target Ausgaben (fqn ist eine Kombination aus Namespace und Name)
LineageEvent.startTime eventTime
LineageEvent.endTime eventTime
requestId Wird vom Nutzer der Methode definiert

OpenLineage-Ereignis importieren

Wenn Sie OpenLineage noch nicht eingerichtet haben, lesen Sie den Hilfeartikel Einstieg.

Wenn Sie ein OpenLineage-Ereignis in Dataplex importieren möchten, rufen Sie die REST API-Methode ProcessOpenLineageRunEvent auf:

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 zur Analyse der importierten OpenLineage-Ereignisse finden Sie unter Abstammungsdiagramme in der Dataplex-Benutzeroberfläche ansehen.

Gespeicherte Daten

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

  • spark_version
    • openlineage-spark-version
    • spark-version
  • Alle spark.logicalPlan.*
  • environment-properties (benutzerdefinierte Google Cloud-Abstammungsfacette)
    • 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