使用用戶端扇出功能搜尋多區域沿襲

使用擴散傳遞功能,跨多個 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. 剖析 regionalPageToken,方法是依第一個點將其分割為兩個區段
      2. 只保留剖析 regionalPageToken 後的第一個區隔 (依字母順序),篩除其他區隔。
      3. 將第二個區段儲存起來,以便在所有 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. 如果 foundLinks 小於 linksToFetch
        1. 按照字母順序,使用下一個收到的回覆繼續撰寫虛擬程式碼。
      6. 如果 foundLinks 等於 linksToFetch
        1. 在相同區域中向 projects.locations.searchLinks 端點提出另一項要求,但將 pageSize 參數設為 lastRegionLinksCount 的值。
        2. 商店在 nextPageToken 中收到 pageToken。
        3. 繼續執行步驟 9
  9. nextPageToken 前加上 lastRegion (即 [region].[receivedNextPageToken]),建立 nextRegionalPageToken,以便處理後續呼叫中的分頁。

後續步驟