Mit der searchLineageStreaming API können Sie die mehrstufige, überregionale Datenherkunft abrufen und ein einheitliches Diagramm als Echtzeitstream erhalten. Sie können Tools erstellen, die breite, tiefe oder projektübergreifende Datenarchitekturen ohne Zeitüberschreitungen bei Anfragen durchlaufen. Weitere Informationen finden Sie unter Multiregionale Herkunftssuche.
Hauptmerkmale
Die searchLineageStreaming API bietet folgende Funktionen:
Breitensuche: Durchläuft das Herkunftsdiagramm Ebene für Ebene vorgelagert oder nachgelagert von einer definierten Gruppe von Stammentitäten und berechnet die Tiefe jedes verbundenen Assets genau.
Streamingantwort: Liefert in Echtzeit aufgeteilte Antworten mit Untergraphen und Herkunftslinks, sobald das Back-End-System sie erkennt. Im Gegensatz zu Standard-APIs für die Herkunftssuche, bei denen es bei großen Diagrammen mit mehreren Projekten zu Zeitüberschreitungen kommen kann, werden durch Streaming Zeitüberschreitungen bei Anfragen in breiten oder tiefen Diagrammen verhindert.
Standort- und projektübergreifende Traversierung: Obwohl Sie im Anfragepfad nur ein Abrechnungsprojekt angeben, erkennt und traversiert die API automatisch Herkunftsverknüpfungen über mehrere Google Cloud -Projekte und geografische Standorte hinweg, sofern Sie die erforderlichen Berechtigungen haben.
Detaillierte Herkunft auf Spaltenebene: Unterstützt die Suche nach Abhängigkeiten auf Spaltenebene zwischen Assets.
Platzhaltersuchen: Ermöglicht das Abrufen der gesamten Herkunft auf Spaltenebene für eine bestimmte Entität, indem Sie den voll qualifizierten Namen (FQN) mit
*versehen.Pipeline-Statistiken: Ruft optional Metadaten zu den Transformationspipelines (Prozessen) ab, die die Herkunftslinks erstellt haben.
Hinweis
Bevor Sie Anfragen an die API senden, müssen die folgenden Sicherheits- und Umgebungsvoraussetzungen erfüllt sein:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Data Lineage Viewer (roles/datalineage.viewer) für die Projekte zuzuweisen, in denen die Datenherkunftslinks und -prozesse gespeichert sind, um die Berechtigungen zu erhalten, die Sie zum Suchen nach Datenherkunftslinks benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Suchen nach Datenherkunftslinks erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um nach Datenherkunftslinks zu suchen:
-
Herkunft auf Entitätsebene suchen:
datalineage.events.getfür das Projekt, in dem der Link gespeichert ist -
Herkunft auf Spaltenebene suchen:
datalineage.events.getFieldsfür das Projekt, in dem der Link gespeichert ist -
So rufen Sie die vollständigen Details des Pipelineprozesses ab:
datalineage.processes.getfür das Projekt, in dem der Prozess gespeichert ist
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Ressourcenbereich
Wenn Sie Ihre API-Anfrage konfigurieren, müssen Sie zwischen der Ressource, die für die administrative Abrechnung verwendet wird, und den tatsächlichen Standorten, die von der API gescannt werden, unterscheiden:
Übergeordneter Abrechnungspfad: Der
parent-Pfad in der URL-Anfrage muss das Formatprojects/project/locations/locationhaben. Dieses spezifische Projekt-Standort-Paar wird ausschließlich zur Auswertung von Abrechnungskontingenten und API-Ratenbegrenzungen verwendet.Zielregionen: Definieren Sie im
locations-Array im Anfragetext explizit die Regionen, die das Backend scannen soll.
Authentifizierung einrichten
Initialisieren Sie eine Umgebungsvariable mit einem Zugriffstoken von Google Cloud , um Ihre curl-Befehle zu authentifizieren:
export ACCESS_TOKEN=$(gcloud auth print-access-token)
Beispiele für die Verwendung
In den folgenden Beispielen wird der Endpunkt datalineage.googleapis.com verwendet.
Mehrstufige, projektübergreifende Herkunft suchen
Wenn Sie eine detaillierte Herkunftssuche durchführen möchten, die mehrere Tiefen des Graphen durchläuft und verschiedene Google Cloud -Projekte scannt, definieren Sie die folgenden Variablen:
Legen Sie für
limits.maxDepthdie gewünschte Durchsuchungstiefe fest (akzeptiert Werte von1bis100).Füllen Sie das Array
locationsmit den Zielregionen, auf die das Backend verweisen soll (z. B.["us", "us-east1"]).
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.
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.
Node.js
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Node.js in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der API-Referenzdokumentation für Node.js 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 die Methode searchLineageStreaming, um nach der Datenherkunft zu suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID: Ihre Google Cloud Projekt-ID, die für die administrative Abrechnung und Kontingentbewertung verwendet wird.LOCATION_ID: der Google Cloud -Standort, z. B.us-central1.SOURCE_PROJECT_ID: die Google Cloud Projekt-ID, in der sich die Quelltabelle befindet.DATASET_ID: die BigQuery-Dataset-ID.TABLE_ID: die BigQuery-Tabelle-ID.
HTTP-Methode und URL:
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:searchLineageStreaming
JSON-Text anfordern:
{
"parent": "projects/PROJECT_ID/locations/LOCATION_ID",
"locations": [
"LOCATION_ID",
"us-east1",
"us-central1"
],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:SOURCE_PROJECT_ID.DATASET_ID.TABLE_ID"
}
]
}
},
"direction": "DOWNSTREAM",
"limits": {
"maxDepth": 10,
"maxResults": 5000
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"links": [
{
"source": {
"fullyQualifiedName": "bigquery:project-prod.dataset.source_table"
},
"target": {
"fullyQualifiedName": "bigquery:project-prod.dataset.target_table"
},
"depth": 1,
"location": "us"
}
]
}
Nach mehreren geografischen Standorten suchen
Sie können den Scan des Herkunftsdiagramms einschränken oder erweitern, indem Sie die geografischen Regionen ändern, die im wiederholten Arrayfeld locations übergeben werden.
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.
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.
Node.js
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Java in der Data Lineage-Kurzanleitung zur Verwendung von Clientbibliotheken.
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
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID: Ihre Google Cloud Projekt-ID, die für die administrative Abrechnung und Kontingentbewertung verwendet wird.LOCATION_ID: der Google Cloud -Standort, z. B.us-central1.SOURCE_PROJECT_ID: die Google Cloud Projekt-ID, in der sich die Quelltabelle befindet.DATASET_ID: die BigQuery-Dataset-ID.TABLE_ID: die BigQuery-Tabelle-ID.
HTTP-Methode und URL:
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:searchLineageStreaming
JSON-Text anfordern:
{
"parent": "projects/PROJECT_ID/locations/LOCATION_ID",
"locations": [
"LOCATION_ID",
"us-east1",
"us-central1"
],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:SOURCE_PROJECT_ID.DATASET_ID.TABLE_ID"
}
]
}
},
"direction": "DOWNSTREAM",
"limits": {
"maxDepth": 10,
"maxResults": 5000
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"links": [
{
"source": {
"fullyQualifiedName": "bigquery:project-prod.dataset.source_table"
},
"target": {
"fullyQualifiedName": "bigquery:project-prod.dataset.target_table"
},
"depth": 1,
"location": "us"
}
]
}
Prozessnamen für Herkunftslinks abrufen
Standardmäßig werden Prozessinformationen von der API weggelassen (maxProcessPerLink ist standardmäßig auf 0 festgelegt). Wenn Sie die Ressourcennamen der Pipelines abrufen möchten, die Ihre Datenlinks erstellt haben, konfigurieren Sie limits.maxProcessPerLink auf eine positive Ganzzahl ungleich null.
Beispiel:
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.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
BILLING_PROJECT_ID: das Google Cloud-Projekt, das für die administrative Abrechnung und Kontingentbewertung verwendet wird. Geben Sie eine Projektnummer oder Projekt-ID an.LOCATION_ID: der Google Cloud -Standort, an dem die Herkunftssuche durchgeführt wird.FULLY_QUALIFIED_NAME: der voll qualifizierte Name (FQN) der Zielentität im Formatbigquery:PROJECT_ID.DATASET_ID.TABLE_ID.
HTTP-Methode und URL:
POST https://datalineage.googleapis.com/v1/projects/BILLING_PROJECT_ID/locations/LOCATION_ID:searchLineageStreaming
JSON-Text anfordern:
{
"parent": "projects/BILLING_PROJECT_ID/locations/LOCATION_ID",
"locations": [
"LOCATION_ID"
],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "FULLY_QUALIFIED_NAME"
}
]
}
},
"direction": "UPSTREAM",
"limits": {
"maxProcessPerLink": 5
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Antwortverhalten: Der resultierende Stream füllt das Feld links[].processes mit Prozessnachrichten, die nur den absoluten Systemressourcennamen enthalten (z. B. projects/my-project/locations/us/processes/my-process).
Vollständige Prozessdetails mithilfe einer FieldMask abrufen
Wenn Sie vollständige strukturelle Metadaten zu einer Pipeline (z. B. displayName, System-attributes oder Ausführungs-origin) anstelle des Ressourcennamens benötigen, müssen Sie eine API-FieldMask verwenden:
Geben Sie für
limits.maxProcessPerLinkeinen Wert ungleich null an.Hängen Sie den Suchparameter
fieldsan den URL-Pfad an und geben Sielinks.processes.processzusammen mit anderen erforderlichen Feldern an.
Beispiel:
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-X POST "https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming?fields=links.processes.process,links.source,links.target,links.depth" \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.target_table"
}]
}
},
"direction": "UPSTREAM",
"limits": {
"maxProcessPerLink": 5
}
}'
Sowohl die Lineage auf Tabellen- als auch auf Spaltenebene durchsuchen
Sie können in einer einzigen Anfrage sowohl nach der Herkunft auf Tabellenebene (Asset-Ebene) als auch auf Spaltenebene (Feldebenen) suchen, indem Sie mehrere Entitäten in der Liste rootCriteria.entities.entities angeben:
Lassen Sie für die Herkunft auf Tabellenebene das Array
fieldweg.Geben Sie für die Herkunft auf Spaltenebene eine einzelne Spalte im Array
fieldan.
Beispiel:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:my-project.dataset.table_a"
},
{
"fullyQualifiedName": "bigquery:my-project.dataset.table_b",
"field": ["email"]
}
]
}
},
"direction": "DOWNSTREAM"
}'
Platzhalter für die Herkunft auf Spaltenebene verwenden
Wenn Sie nach allen verfügbaren Herkunftsinformationen auf Spaltenebene für eine bestimmte Tabelle suchen möchten, ohne jede Spalte einzeln aufzulisten, verwenden Sie das Platzhalterzeichen * als einzigen Wert im Array field.
Beispiel:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table",
"field": ["*"]
}]
}
},
"direction": "DOWNSTREAM"
}'
Lineage-Ergebnisse filtern
Sie können die Suchergebnisse für die Herkunft mithilfe des Blocks filters im Anfragetext verfeinern.
Nach Abhängigkeitstyp filtern
Wenn Sie die Ergebnisse auf bestimmte Abhängigkeitstypen beschränken möchten, z. B. direkte Kopien (EXACT_COPY) oder Transformationen wie Filtern und Gruppieren (OTHER), verwenden Sie den Filter dependencyTypes.
Beispiel:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table"
}]
}
},
"direction": "DOWNSTREAM",
"filters": {
"dependencyTypes": ["EXACT_COPY"]
}
}'
Herkunft auf Spaltenebene ausschließen (Suche nur in Tabellen)
Wenn Sie dafür sorgen möchten, dass die Suche nur die Herkunft auf Tabellenebene zurückgibt und die Herkunft auf Spaltenebene vollständig ausschließt, setzen Sie den Filter entitySet auf ENTITIES.
Beispiel:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table"
}]
}
},
"direction": "DOWNSTREAM",
"filters": {
"entitySet": "ENTITIES"
}
}'
Nach Zeitraum filtern
Sie können die Suchergebnisse für die Herkunft auf ein bestimmtes Zeitintervall beschränken.
Wenn Sie beispielsweise nach Herkunftsdaten suchen möchten, die nach einem bestimmten Zeitstempel erstellt wurden, verwenden Sie die folgende Anfrage:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table"
}]
}
},
"direction": "DOWNSTREAM",
"filters": {
"timeRange": {
"startTime": "2026-01-01T00:00:00Z"
}
}
}'
Fehlerbehebung: Nicht erreichbare Standorte und unvollständige Diagramme verarbeiten
Da die Streaming API gleichzeitig eine verteilte Gruppe von Projekten und Standorten scannt, können einige Remote-Regionen während der Ausführung vorübergehend nicht verfügbar, nicht kommunikativ oder falsch konfiguriert sein.
Symptom: Das zurückgegebene Layout des Herkunftsdiagramms ist unvollständig oder es fehlen erwartete regionale Hops.
Diagnose: Zum Schutz der Datenintegrität füllt der
searchLineageStreamingResponse-Stream ein dediziertesunreachable-Feld (wiederholter String) mit problematischen Standorten im Formatprojects/PROJECT_NUMBER/locations/LOCATION(z. B.projects/123456789/locations/us-east1).Best Practice: Erstellen Sie Ihre Clientanwendungen immer so, dass das Feld
unreachablegeprüft wird, um die Vollständigkeit der Daten zu bestätigen, bevor der Graph verarbeitet wird.