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

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

  1. 入力の設定:
    • linksToFetch = 5(すべてのリージョンから取得するリンクの数)
    • regionalPageToken = ""(ページ分割に使用される最後に受信したリージョン ページ トークン)
  2. 作成:
    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. 先頭に lastRegion(例: [region].[receivedNextPageToken])とともに nextPageToken を追加して nextRegionalPageToken を作成し、連続した呼び出しでページネーションを処理します。