複数のリージョンからリネージのリンクを取得する

次の擬似コードは、Data Lineage API を使用して使用可能なすべてのリージョンからデータリネージ リンクを取得する手順の概要を示しています。

  1. 入力の設定:
    • linksToFetch = 5(すべてのリージョンから取得するリンクの数)
    • regionalPageToken = ""(ページ分割に使用される最後に受信したリージョン ページ トークン)
  2. Create:
    1. regions と呼ばれるファンアウトするすべてのリージョンのリスト。
    2. unreachable と呼ばれる到達不能なリージョンのリスト。
    3. foundLinks と呼ばれる見つかったリンクの空のリスト。
    4. 空の変数 nextPageTokennextRegionalPageToken
    5. 空の変数 lastRegion
    6. 空の変数 lastRegionLinksCount
  3. regions をアルファベット順に並べ替えます。
  4. regionalPageToken を解析します
    1. 空の場合は、ステップ 5 に進みます。
    2. 空でない場合は、以下を行います。
      1. 最初のドットで 2 つのセグメントに分割し、regionalPageToken を解析します。
      2. 解析された regionalPageToken の最初のセグメントの後(アルファベット順)のリージョンのみを取得して、リージョンをフィルタで除外します。
      3. 2 番目のセグメントはすべての projects.locations.searchLinks 呼び出しで使用するために保存しておきます。
  5. regions リスト内の各リージョンで projects.locations.searchLinks を並行して呼び出します。
  6. すべてのリクエストが完了するまで待ちます。
  7. 成功したレスポンスを除外し、失敗したリージョン名を unreachable リストに保存します。
  8. 各レスポンスについて(最初のリージョンからアルファベット順に)次の操作を行います。
    1. 空ではないページトークンとともにリンクが返されなかった場合
      1. リージョン名を lastRegion に保存します。
      2. 受信した pageToken を nextPageToken に保存します。
      3. 残りのレスポンスを無視します。
    2. それ以外の場合
      1. リージョン名を lastRegion に保存します。
      2. 受信したリンクを foundLinks に保存します(最大 linksToFetch)。
      3. 受信した pageToken を nextPageToken に保存します。
      4. lastRegionLinksCount のレスポンスから取得したリンクの数を保存します。
      5. foundLinkslinksToFetch より小さい場合
        1. 擬似コードを、アルファベット順で次に受信したレスポンスで続行します。
      6. foundLinkslinksToFetch と等しい場合
        1. 同じリージョンの projects.locations.searchLinks エンドポイントに別のリクエストを送信します。ただし、pageSize パラメータを lastRegionLinksCount の値に設定します。
        2. nextPageToken に受信した pageToken を保存します。
        3. ステップ 9 に進みます
  9. nextPageToken の前に lastRegion[region].[receivedNextPageToken])を追加して nextRegionalPageToken を作成し、連続した呼び出しでページ分けを処理します。