クライアントサイドのファンアウトを使用してマルチリージョン リネージを検索する

ファンアウト アプローチを使用して、複数の Google Cloud リージョンにまたがるデータリネージ リンクを取得します。Data Lineage API を使用して、使用可能なすべてのリージョンからリネージデータを取得して集計します。

クライアントサイド ファンアウトを使用する理由

クライアントサイド ファンアウト アプローチは、データアセットがさまざまな場所に分散していて、そのリネージの全体像が必要な場合に便利です。

詳細については、 マルチリージョン リネージ検索についてをご覧ください。

ステップバイステップの擬似コード

この手順では、各リージョンの projects.locations.searchLinks エンドポイントに並列リクエストを行います。結果を収集し、リージョン間のページネーションを処理して、見つかったリンクを集計します。以降の呼び出しで一貫したページネーションを確保するため、regionalPageToken を管理します。これにより、到達不能なリージョンが考慮されます。

次の擬似コードは、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 を作成し、連続した呼び出しでページネーションを処理します。

次のステップ

  • マルチリージョン リネージ検索について学習する

  • サーバーサイドの自動化を使用してマルチリージョン リネージを 検索する方法を学習する

  • データリネージの詳細について確認する