Mit der Datenherkunft in Knowledge Catalog (früher Dataplex Universal Catalog) können Sie OpenLineage-Ereignisse importieren, um Datenbewegungen aus externen Systemen zu verfolgen und zu visualisieren. Sie können die Herkunft benutzerdefinierter Pipelines mit der integrierten Herkunft vonGoogle Cloud -Diensten in einem einzigen Herkunftsdiagramm zusammenfassen.
Ü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 Datenpipeline-Komponenten, die eine OpenLineage API verwenden, um Berichte zu Ausführungen, Jobs und Datasets zu erstellen.
Knowledge Catalog fungiert über die Data Lineage API als OpenLineage-Consumer. Sie können OpenLineage-Ereignisse aus externen Systemen und benutzerdefinierten Pipelines importieren, um sie in der Knowledge Catalog-Weboberfläche zusammen mit integrierten Herkunftsinformationen aus Google Cloud -Diensten wie BigQuery, Managed Service for Apache Airflow, Cloud Data Fusion und Managed Service for Apache Spark anzuzeigen.
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.
Einschränkungen der OpenLineage-Integration
Unterstützte Versionen: Die Data Lineage API unterstützt die OpenLineage-Hauptversionen 1 und 2.
API-Aktionen: 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 OpenLineage-kompatiblen Tool oder System generiert wurden, an Knowledge Catalog senden. Einige Google Cloud Dienste wie Managed Service for Apache Spark und Managed Airflow enthalten integrierte OpenLineage-Produzenten, die Ereignisse an diesen Endpunkt senden können, um die Erfassung der Datenherkunft von diesen Diensten zu automatisieren.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 voll qualifizierten Namens in Ein- und Ausgaben ist auf 4.000 Zeichen beschränkt.
Herkunft auf Spaltenebene: Der Endpunkt
ProcessOpenLineageRunEventmaterialisiert Herkunftskanten auf Tabellenebene nur für benutzerdefinierte OpenLineage-Ereignisse. Datenflussdiagramme auf Spaltenebene werden nur für BigQuery-SQL-Transformationen und Managed Service for Apache Spark-Jobs generiert. Benutzerdefinierte Facetten auf Spaltenebene werden in der Console nicht gerendert.Linklimits: Links werden nach Ereignissen gruppiert, wobei maximal 100 Links pro Ereignis zulässig sind. Die maximale Gesamtzahl der Links auf Tabellenebene beträgt 1.000. Bei unterstützten automatisierten Engines, die Herkunftsinformationen auf Spaltenebene erfassen,werden die Informationen auf Spaltenebene übersprungen, wenn eine Nachricht mehr als 1.500 Links auf Spaltenebene enthält.
Diagrammumfang: Der Knowledge Catalog zeigt für jeden Joblauf ein Herkunftsdiagramm an, das die Ein- und Ausgaben von Herkunftsereignissen darstellt. 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.
Wenn Sie ein OpenLineage-Ereignis in Knowledge Catalog importieren möchten, rufen Sie die API-Methode ProcessOpenLineageRunEvent auf.
C#
C#
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für C# in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der API-Referenzdokumentation für C# zu Data Lineage.
Richten Sie zur Authentifizierung bei der Datenherkunft Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Go
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Go in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der API-Referenzdokumentation für Go zu Data Lineage.
Richten Sie zur Authentifizierung bei der Datenherkunft Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Java in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der API-Referenzdokumentation für Java zu Data Lineage.
Richten Sie zur Authentifizierung bei der Datenherkunft Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der API-Referenzdokumentation für Python zu Data Lineage.
Richten Sie zur Authentifizierung bei der Datenherkunft Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Ruby
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Ruby in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der API-Referenzdokumentation für Ruby zu Data Lineage.
Richten Sie zur Authentifizierung bei der Datenherkunft 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 bereit, um programmatisch mit der Data Lineage API zu interagieren. Eine Installationsanleitung finden Sie unter Clientbibliotheken.
- Google Cloud Java Producer Library: Google stellt eine Open-Source-Java-Bibliothek bereit, 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-Produzenten ist ein dedizierter GcpLineage Transport verfügbar. Sie vereinfacht die Einbindung in die Data Lineage API, da der Code, der zum Senden von Ereignissen an die Data Lineage API erforderlich ist, minimiert wird.
GcpLineageTransportkann als Ereignissenke für alle vorhandenen OpenLineage-Produzenten 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 Herkunftsdiagramme in der Knowledge Catalog-Benutzeroberfläche ansehen.
Gespeicherte OpenLineage-Facet-Daten
Die Data Lineage API speichert nicht alle Facettendaten aus den OpenLineage-Nachrichten. In der Data Lineage API werden die folgenden Facettenfelder gespeichert:
spark_versionopenlineage-spark-versionspark-version
- alle
spark.logicalPlan.* environment-properties(benutzerdefinierte Google Cloud Herkunftsfacette)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
Die Data Lineage API speichert die folgenden Informationen:
eventTimerun.runIdjob.namespacejob.name
Nächste Schritte
- Weitere Informationen zur Integration der Datenherkunft mit Managed Service for Apache Spark und der Hive-Datenherkunft.
- In einem interaktiven Lab ausprobieren: Datenaktualisierungen mit Data Lineage und OpenLineage erfassen und untersuchen