In diesem Dokument wird beschrieben, wie Sie OpenLineage in Knowledge Catalog (ehemals Dataplex Universal Catalog) einbinden, um die Datenherkunft aus externen Systemen zu importieren und zu visualisieren. Wenn Sie Knowledge Catalog als OpenLineage-Consumer mit der ProcessOpenLineageRunEvent REST API verwenden, können Sie benutzerdefinierte Pipeline-Lineage zusammen mit der integrierten Lineage von Google Cloud -Diensten vereinheitlichen.
Übersicht
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.
Mit der Data Lineage API können Sie OpenLineage-Ereignisse importieren, die dann in der Knowledge Catalog-Weboberfläche zusammen mit Informationen zur Datenherkunft ausGoogle Cloud -Diensten wie BigQuery, Managed Service for Apache Airflow, Cloud Data Fusion und Managed Service for Apache Spark 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 den Attributen der Data Lineage API zu.
Einschränkungen bei der OpenLineage-Integration
Unterstützte Versionen:Die Data Lineage API unterstützt OpenLineage-Hauptversion 1.
API-Aktionen:Der Data Lineage API-Endpunkt
ProcessOpenLineageRunEventfungiert nur als Nutzer von OpenLineage-Nachrichten, nicht als Ersteller. Mit der API können Sie Herkunftsinformationen, die von einem beliebigen OpenLineage-kompatiblen Tool oder System generiert wurden, in Knowledge Catalog senden. Einige Google Cloud Dienste wie Managed Service for Apache Spark und Managed Airflow enthalten integrierte OpenLineage-Erzeuger, die Ereignisse an diesen Endpunkt senden können. So wird die Erfassung von Lineage-Informationen aus diesen Diensten automatisiert.Nicht unterstützte Funktionen:Die Data Lineage API unterstützt Folgendes nicht:
- Alle nachfolgenden OpenLineage-Releases mit Änderungen am Nachrichtenformat
DatasetEventJobEvent
Nachrichtengröße:Die maximale Größe einer einzelnen Nachricht beträgt 5 MB.
Namenslänge:Die Länge jedes vollständig qualifizierten Namens in Ein- und Ausgaben ist auf 4.000 Zeichen begrenzt.
Linkbeschränkungen:Links werden nach Ereignissen gruppiert. Pro Ereignis sind maximal 100 Links zulässig. Die maximale Gesamtzahl der Links auf Tabellenebene beträgt 1.000. Wenn eine Nachricht mehr als 1.500 Links auf Spaltenebene enthält, werden die Informationen auf Spaltenebene übersprungen.
Diagrammbereich:Im Knowledge Catalog wird für jeden Joblauf ein Herkunftsdiagramm angezeigt, in dem die Ein- und Ausgaben von Herkunftsereignissen dargestellt werden. Prozesse auf niedrigerer Ebene wie Spark-Phasen werden nicht unterstützt.
OpenLineage-Facettenattributzuordnung
Informationen zur OpenLineage-Zuordnung finden Sie unter OpenLineage-Zuordnung.
OpenLineage-Ereignis importieren
Wenn Sie OpenLineage noch nicht eingerichtet haben, lesen Sie den Abschnitt Erste Schritte.
Rufen Sie die API-Methode ProcessOpenLineageRunEvent auf, um ein OpenLineage-Ereignis in den Knowledge Catalog zu importieren.
C#
C#
Folgen Sie der Einrichtungsanleitung für C# in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Lineage C# API.
Richten Sie zur Authentifizierung bei Data Lineage die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Go
Folgen Sie der Einrichtungsanleitung für Go in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Lineage Go API.
Richten Sie zur Authentifizierung bei Data Lineage die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Java
Folgen Sie der Einrichtungsanleitung für Java in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Lineage Java API.
Richten Sie zur Authentifizierung bei Data Lineage die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Python
Folgen Sie der Einrichtungsanleitung für Python in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Lineage Python API.
Richten Sie zur Authentifizierung bei Data Lineage die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Ruby
Folgen Sie der Einrichtungsanleitung für Ruby in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Lineage Ruby API.
Richten Sie zur Authentifizierung bei Data Lineage die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
REST
Verwenden Sie zum Importieren eines OpenLineage-Ereignisses die Methode processOpenLineageRunEvent.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID: Projekt-ID in Google Cloud .LOCATION_ID: Der Google Cloud Standort, z. B.us-central1.
HTTP-Methode und URL:
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:processOpenLineageRunEvent
JSON-Text anfordern:
{
"eventTime": "2023-04-04T13:21:16.098Z",
"eventType": "COMPLETE",
"inputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"job": {
"name": "somename",
"namespace": "customnamespace"
},
"outputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"producer": "someproducer",
"run": {
"runId": "somerunid"
},
"schemaURL": "https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"process": "projects/my-project/locations/us-central1/processes/my-process",
"run": "projects/my-project/locations/us-central1/processes/my-process/runs/my-run",
"lineageEvents": [
"projects/my-project/locations/us-central1/processes/my-process/runs/my-run/lineageEvents/my-lineage-event"
]
}
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-Clientbibliotheken für Data Lineage:Google stellt Clientbibliotheken für die programmatische Interaktion mit der Data Lineage API bereit. Eine Installationsanleitung finden Sie unter Clientbibliotheken.
- 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 Abstammungsdiagramme in der Knowledge Catalog-Benutzeroberfläche ansehen.
Gespeicherte OpenLineage-Facetten-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
- Weitere Informationen zur Datenherkunft mit Managed Service for Apache Spark und zur Integration der Hive-Datenherkunft
- Probieren Sie es in einem interaktiven Lab aus: Capture and Explore Data Updates With Data Lineage and OpenLineage