In OpenLineage einbinden

OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Informationen zur Datenherkunft. OpenLineage verwendet einen offenen Standard für Herkunftsdaten und erfasst Herkunftsereignisse von 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, die dann in der Weboberfläche des Dataplex Universal Catalog zusammen mit Herkunftsinformationen ausGoogle 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-Facets Data Lineage API-Attributen zu.

Beschränkungen

  • Die Data Lineage API unterstützt OpenLineage-Hauptversion 1.

  • Der Data Lineage API-Endpunkt ProcessOpenLineageRunEvent fungiert nur als Consumer von OpenLineage-Nachrichten, nicht als Producer. Mit der API können Sie Herkunftsinformationen, die von einem beliebigen OpenLineage-kompatiblen Tool oder System generiert wurden, an Dataplex Universal Catalog senden. Einige Google Cloud -Dienste wie Dataproc und Cloud Composer enthalten integrierte OpenLineage-Erzeuger, die Ereignisse an diesen Endpunkt senden können. So wird die Erfassung der Herkunft aus diesen Diensten automatisiert.

  • Die Data Lineage API unterstützt Folgendes nicht:

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

  • Die Länge jedes vollqualifizierten Namens in Ein- und Ausgaben ist auf 4.000 Zeichen begrenzt.

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

  • In Dataplex Universal Catalog wird für jeden Joblauf ein Lineage-Diagramm angezeigt, in dem die Ein- und Ausgaben von Lineage-Ereignissen dargestellt werden. Prozesse auf niedrigerer Ebene 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
Process.name projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME
Process.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 Name)
LineageEvent.EventLinks.target Ausgaben (fqn ist die Verkettung von Namespace und Name)
LineageEvent.startTime eventTime
LineageEvent.endTime eventTime
requestId Wird vom Methodenbenutzer definiert.

OpenLineage-Ereignis importieren

Wenn Sie OpenLineage noch nicht eingerichtet haben, finden Sie hier Informationen zu den ersten Schritten.

Rufen Sie die REST API-Methode ProcessOpenLineageRunEvent auf, um ein OpenLineage-Ereignis in Dataplex Universal Catalog 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"}'

Tools zum Senden von OpenLineage-Nachrichten

Um das Senden von Ereignissen an die Data Lineage API zu vereinfachen, können Sie verschiedene Tools und Bibliotheken verwenden:

  • Google Cloud Java Producer Library:Google stellt eine Open-Source-Java-Bibliothek zur Verfügung, mit der Sie OpenLineage-Ereignisse erstellen und an die Data Lineage API senden können. Weitere Informationen finden Sie im Blogpost Producer java library for Data Lineage is now open source. Die Bibliothek ist auf GitHub und Maven verfügbar.
  • OpenLineage-GCP-Transport:Für Java-basierte OpenLineage-Producer ist ein dedizierter GcpLineage-Transport verfügbar. Sie vereinfacht die Integration in die Data Lineage API, da weniger Code zum Senden von Ereignissen an die Data Lineage API erforderlich ist. Die GcpLineageTransport kann als Ereignissenke für jeden vorhandenen OpenLineage-Producer wie Airflow, Spark und Flink konfiguriert werden. Weitere Informationen und Beispiele finden Sie unter GcpLineage.

Informationen aus OpenLineage analysieren

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

Gespeicherte Daten

In der Data Lineage API werden nicht alle Facettendaten aus den OpenLineage-Nachrichten gespeichert. In der Data Lineage API werden die folgenden Facettenfelder gespeichert:

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

In der Data Lineage API werden die folgenden Informationen gespeichert:

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

Nächste Schritte