Datenherkunftsinformationen über mehrere Google Cloud Regionen hinweg mit einem Fan-Out-Ansatz abrufen. Mit der Data Lineage API können Sie Lineage-Daten aus allen verfügbaren Regionen abrufen und zusammenfassen. Das ist nützlich, wenn Ihre Daten-Assets an verschiedenen Orten verteilt sind und Sie eine einheitliche Ansicht ihres Lineage benötigen.
Prozedur
Bei der Prozedur werden parallele Anfragen an den projects.locations.searchLinks-Endpunkt in jeder Region gesendet. Sie sammeln Ergebnisse, verarbeiten die Paginierung über Regionen hinweg und fassen die gefundenen Links zusammen. Verwalten Sie ein regionalPageToken, um eine konsistente Paginierung für nachfolgende Aufrufe zu gewährleisten und nicht erreichbare Regionen zu berücksichtigen.
Der folgende Pseudocode beschreibt eine Vorgehensweise, mit der Sie mit der Data Lineage API Datenherkunftsinformationen aus allen verfügbaren Regionen abrufen können.
- Eingabe einrichten:
linksToFetch= 5 (Anzahl der Links, die aus allen Regionen abgerufen werden sollen)regionalPageToken= „“ (das zuletzt empfangene regionale Seitentoken, das für die Paginierung verwendet wurde)
- Erstellen:
- Eine Liste aller Regionen, an die die Anfrage weitergeleitet werden soll, mit dem Namen
regions. - Liste der nicht erreichbaren Regionen mit dem Namen
unreachable. - eine leere Liste der gefundenen Links mit dem Namen
foundLinks. - eine leere Variable
nextPageTokenundnextRegionalPageToken. - eine leere Variable
lastRegion. - eine leere Variable
lastRegionLinksCount.
- Eine Liste aller Regionen, an die die Anfrage weitergeleitet werden soll, mit dem Namen
- Sortiere
regionsalphabetisch. - Analysiere
regionalPageToken- Wenn sie leer ist, fahre mit Schritt 5 fort.
- Wenn sie nicht leer ist, dann
regionalPageTokenparsen, indem es am ersten Punkt in zwei Segmente aufgeteilt wird- Regionen herausfiltern, indem nur die Regionen berücksichtigt werden, die nach dem ersten Segment aus dem geparsten
regionalPageTokenkommen (in alphabetischer Reihenfolge). - Speichern Sie das zweite Segment, um es in allen projects.locations.searchLinks-Aufrufen zu verwenden.
- Rufen Sie projects.locations.searchLinks in jeder Region in der Liste
regionsparallel auf. - Warten Sie, bis alle Anfragen abgeschlossen sind.
- Erfolgreiche Antworten herausfiltern und fehlgeschlagene Regionsnamen in der Liste
unreachablespeichern. - Für jede der Antworten (beginnend mit der ersten Region in alphabetischer Reihenfolge):
- wenn keine Links zusammen mit einem nicht leeren Seitentoken zurückgegeben wurden
- Speichern Sie den Namen der Geschäftsregion in
lastRegion. - Speichern Sie das empfangene pageToken in
nextPageToken. - Ignorieren Sie die verbleibenden Antworten.
- Speichern Sie den Namen der Geschäftsregion in
- andernfalls
- Speichern Sie den Namen der Geschäftsregion in
lastRegion. - empfangene Links in
foundLinksspeichern (bis zulinksToFetch). - Speichern Sie das empfangene pageToken in
nextPageToken. - Speichere die Anzahl der aus der Antwort übernommenen Links in
lastRegionLinksCount. - wenn
foundLinkskleiner alslinksToFetchist- Setze den Pseudocode mit der nächsten empfangenen Antwort in alphabetischer Reihenfolge fort.
- wenn
foundLinksgleichlinksToFetch- Stellen Sie eine weitere Anfrage an den Endpunkt projects.locations.searchLinks in derselben Region, legen Sie den Parameter
pageSizeaber auf den Wert vonlastRegionLinksCountfest. - Speichern Sie das empfangene pageToken in
nextPageToken. - Fahren Sie mit Schritt 9 fort.
- Stellen Sie eine weitere Anfrage an den Endpunkt projects.locations.searchLinks in derselben Region, legen Sie den Parameter
- Speichern Sie den Namen der Geschäftsregion in
- wenn keine Links zusammen mit einem nicht leeren Seitentoken zurückgegeben wurden
- Stellen Sie
nextPageTokendaslastRegion(d.h.[region].[receivedNextPageToken]) voran, umnextRegionalPageTokenzu erstellen, damit die Paginierung in aufeinanderfolgenden Aufrufen verarbeitet werden kann.