Multiregionale Lineage mit clientseitigem Fan-Out suchen

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.

  1. 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)
  2. Erstellen:
    1. Liste aller Regionen für die Verteilung mit dem Namen regions.
    2. Liste der nicht erreichbaren Regionen mit dem Namen unreachable.
    3. eine leere Liste gefundener Links namens foundLinks.
    4. eine leere Variable nextPageToken und nextRegionalPageToken.
    5. eine leere Variable lastRegion.
    6. eine leere Variable lastRegionLinksCount.
  3. regions alphabetisch sortieren.
  4. regionalPageToken parsen
    1. Wenn es leer ist, fahre mit Schritt 5 fort.
    2. Wenn er nicht leer ist, dann
      1. regionalPageToken parsen, indem es am ersten Punkt in zwei Segmente aufgeteilt wird
      2. Regionen herausfiltern, indem nur die Regionen berücksichtigt werden, die (in alphabetischer Reihenfolge) nach dem ersten Segment aus dem geparsten regionalPageToken liegen.
      3. Speichern Sie das zweite Segment, um es in allen projects.locations.searchLinks-Aufrufen zu verwenden.
  5. Rufen Sie projects.locations.searchLinks in jeder Region in der Liste regions parallel auf.
  6. Warten Sie, bis alle Anfragen abgeschlossen sind.
  7. Filtern Sie erfolgreiche Antworten heraus und speichern Sie die Namen der fehlgeschlagenen Regionen in der Liste unreachable.
  8. Für jede der Antworten (beginnend mit der ersten Region in alphabetischer Reihenfolge)
    1. wenn keine Links zusammen mit einem nicht leeren Seitentoken zurückgegeben wurden
      1. Speichern Sie den Namen der Region in lastRegion.
      2. Speichern Sie das empfangene pageToken in nextPageToken.
      3. ignorieren Sie die verbleibenden Antworten.
    2. Andernfalls:
      1. Speichern Sie den Namen der Region in lastRegion.
      2. empfangene Links in foundLinks speichern (bis zu linksToFetch).
      3. Speichern Sie das empfangene pageToken in nextPageToken.
      4. Speichere die Anzahl der aus der Antwort übernommenen Links in lastRegionLinksCount.
      5. wenn foundLinks kleiner als linksToFetch ist
        1. Setzen Sie den Pseudocode mit der nächsten empfangenen Antwort in alphabetischer Reihenfolge fort.
      6. wenn foundLinks gleich linksToFetch ist
        1. Stellen Sie eine weitere Anfrage an den Endpunkt projects.locations.searchLinks in derselben Region, aber setzen Sie den Parameter pageSize auf den Wert von lastRegionLinksCount.
        2. Speichern Sie das empfangene pageToken in nextPageToken.
        3. Weiter mit Schritt 9
  9. Stellen Sie nextPageToken den lastRegion (d.h. [region].[receivedNextPageToken]) voran, um nextRegionalPageToken zu erstellen und die Paginierung in aufeinanderfolgenden Aufrufen zu verarbeiten.

Nächste Schritte