使用擴散傳遞功能,跨多個 Google Cloud 區域擷取資料歷程連結。您可以使用 Data Lineage API,從所有可用區域擷取及匯總歷程資料。
為何要使用用戶端擴散傳遞功能?
如果資料資產分散在不同位置,且您需要統一檢視資料沿襲,客戶端扇出方法就非常實用。
詳情請參閱「關於多區域歷程搜尋」。
逐步虛擬程式碼
程序會向每個區域的 projects.locations.searchLinks 端點發出平行要求。您會收集結果、處理跨區域的分頁,並彙整找到的連結。為確保後續呼叫的分頁行為一致,請管理 regionalPageToken。這包括無法連線的區域。
下列虛擬程式碼概述了可使用 Data Lineage API 執行的程序,從所有可用區域擷取資料歷程連結。
- 輸入設定:
linksToFetch= 5 (要從所有區域擷取的連結數量)regionalPageToken= "" (用於分頁的最後接收區域頁面權杖)
- 建立:
- 要擴散傳遞功能呼叫的所有區域清單
regions。 - 無法連線的區域清單 (稱為
unreachable)。 - 名為
foundLinks的空白連結清單。 - 空白變數
nextPageToken和nextRegionalPageToken。 - 空白變數
lastRegion。 - 空白變數
lastRegionLinksCount。
- 要擴散傳遞功能呼叫的所有區域清單
- 依英文字母排序
regions。 - 剖析
regionalPageToken- 如果為空白,請繼續執行步驟 5
- 如果不是空白,則
- 剖析
regionalPageToken,方法是依第一個點將其分割為兩個區段 - 只保留剖析
regionalPageToken後的第一個區隔 (依字母順序),篩除其他區隔。 - 將第二個區段儲存起來,以便在所有 projects.locations.searchLinks 呼叫中使用。
- 剖析
- 在
regions清單中,對每個區域的 projects.locations.searchLinks 進行平行呼叫。 - 等待所有要求完成。
- 篩除成功的回應,並將失敗的區域名稱儲存在
unreachable清單中。 - 針對每個回應 (從第一個區域開始,依字母順序排列)
- 如果沒有傳回任何連結,但網頁權杖不為空
lastRegion中的商店區域名稱。- 將收到的 pageToken 儲存到
nextPageToken。 - 忽略其餘回覆。
- 否則
lastRegion中的商店區域名稱。- 在「已儲存」
foundLinks中儲存收到的連結 (最多linksToFetch個)。 - 將收到的 pageToken 儲存到
nextPageToken。 - 將回應中擷取的連結數量儲存在
lastRegionLinksCount中。 - 如果
foundLinks小於linksToFetch- 按照字母順序,使用下一個收到的回覆繼續撰寫虛擬程式碼。
- 如果
foundLinks等於linksToFetch- 在相同區域中向 projects.locations.searchLinks 端點提出另一項要求,但將
pageSize參數設為lastRegionLinksCount的值。 - 商店在
nextPageToken中收到 pageToken。 - 繼續執行步驟 9
- 在相同區域中向 projects.locations.searchLinks 端點提出另一項要求,但將
- 如果沒有傳回任何連結,但網頁權杖不為空
- 在
nextPageToken前加上lastRegion(即[region].[receivedNextPageToken]),建立nextRegionalPageToken,以便處理後續呼叫中的分頁。
後續步驟
進一步瞭解多區域歷程搜尋。
瞭解如何使用伺服器端自動化功能搜尋多區域沿襲。
進一步瞭解資料歷程。