Mit dem clientseitigen Fan-out in Knowledge Catalog (ehemals Dataplex Universal Catalog) können Sie die Data Lineage API verwenden, um Datenherkunftslinks über mehrere Google Cloud -Regionen hinweg abzurufen und zu aggregieren. Durch die parallele Abfrage regionaler Endpunkte können Sie eine einheitliche Herkunftsansicht erstellen, wenn sich Ihre Daten-Assets an verschiedenen Standorten befinden.
Vorteile des clientseitigen Fan-Outs
Der clientseitige Fan-Out-Ansatz ist nützlich, wenn Ihre Daten-Assets über verschiedene Standorte verteilt sind und Sie regionale Abfragen auf dem Client orchestrieren möchten. Mit diesem Ansatz können Sie Herkunftsdaten aus allen verfügbaren Regionen abrufen und aggregieren, wenn Sie die Herkunft über einen einzelnen Hop in einer bekannten Gruppe von Regionen verfolgen oder die Kompatibilität mit vorhandenen projects.locations.searchLinks-Workflows aufrechterhalten möchten.
Weitere Informationen finden Sie unter Multiregionale Herkunftssuche.
Schritt-für-Schritt-Pseudocode
Das Verfahren sendet parallele Anfragen an den projects.locations.searchLinks-Endpunkt in jeder Region. Sie erfassen die Ergebnisse, verwalten die Paginierung über Regionen hinweg und aggregieren die gefundenen Links. Verwalten Sie ein regionalPageToken, um eine einheitliche Paginierung für nachfolgende Aufrufe zu gewährleisten. So werden nicht erreichbare Regionen berücksichtigt.
Der folgende Pseudocode beschreibt ein Verfahren, mit dem Sie mithilfe der Data Lineage API Datenherkunftslinks aus allen verfügbaren Regionen abrufen können.
- Eingabeeinrichtung:
linksToFetch= 5 (Anzahl der Links, die aus allen Regionen abgerufen werden sollen)regionalPageToken= "" (zuletzt empfangenes regionales Seitentoken, das für die Paginierung verwendet wird)
- Erstellen:
- Liste aller Regionen für die Verteilung mit dem Namen
regions. - Liste der nicht erreichbaren Regionen mit dem Namen
unreachable. - eine leere Liste gefundener Links namens
foundLinks. - eine leere Variable
nextPageTokenundnextRegionalPageToken. - eine leere Variable
lastRegion. - eine leere Variable
lastRegionLinksCount.
- Liste aller Regionen für die Verteilung mit dem Namen
regionsalphabetisch sortieren.regionalPageTokenparsen- Wenn es leer ist, fahre mit Schritt 5 fort.
- Wenn er 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 (in alphabetischer Reihenfolge) nach dem ersten Segment aus dem geparsten
regionalPageTokenliegen. - 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.
- Filtern Sie erfolgreiche Antworten heraus und speichern Sie die Namen der fehlgeschlagenen Regionen in der Liste
unreachable. - 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 Region in
lastRegion. - Speichern Sie das empfangene pageToken in
nextPageToken. - ignorieren Sie die verbleibenden Antworten.
- Speichern Sie den Namen der Region in
- Andernfalls:
- Speichern Sie den Namen der Region 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- Setzen Sie den Pseudocode mit der nächsten empfangenen Antwort in alphabetischer Reihenfolge fort.
- wenn
foundLinksgleichlinksToFetchist- Stellen Sie eine weitere Anfrage an den Endpunkt projects.locations.searchLinks in derselben Region, aber setzen Sie den Parameter
pageSizeauf den Wert vonlastRegionLinksCount. - Speichern Sie das empfangene pageToken in
nextPageToken. - Weiter mit Schritt 9
- Stellen Sie eine weitere Anfrage an den Endpunkt projects.locations.searchLinks in derselben Region, aber setzen Sie den Parameter
- Speichern Sie den Namen der Region in
- wenn keine Links zusammen mit einem nicht leeren Seitentoken zurückgegeben wurden
- Stellen Sie
nextPageTokendenlastRegion(d.h.[region].[receivedNextPageToken]) voran, umnextRegionalPageTokenzu erstellen und die Paginierung in aufeinanderfolgenden Aufrufen zu verarbeiten.