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
ProcessOpenLineageRunEventfungiert 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
DatasetEventJobEvent
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
GcpLineageTransportkann 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_versionopenlineage-spark-versionspark-version
- Alle
spark.logicalPlan.* environment-properties(benutzerdefiniertes Google Cloud Abstammungsattribut)origin.sourcetypeundorigin.namespark.app.idspark.app.namespark.batch.idspark.batch.uuidspark.cluster.namespark.cluster.regionspark.job.idspark.job.uuidspark.project.idspark.query.node.namespark.session.idspark.session.uuid
In der Data Lineage API werden die folgenden Informationen gespeichert:
eventTimerun.runIdjob.namespacejob.name
Nächste Schritte
- Sehen Sie sich die Integrationen von Dataproc Serverless und Dataproc Hive an.
- Probieren Sie es in einem interaktiven Lab aus: Capture and Explore Data Updates With Data Lineage and OpenLineage