借助 Knowledge Catalog(以前称为 Dataplex Universal Catalog)中的客户端扇出功能,您可以使用 Data Lineage API 检索和汇总多个 Google Cloud 区域的数据沿袭链接。当数据资产跨越不同位置时,并行查询区域端点有助于您构建统一的沿袭视图。
为什么要使用客户端扇出?
当您的数据资产分布在不同位置,并且您希望在客户端上编排区域查询时,客户端扇出方法非常有用。在跨一组已知区域跟踪单跃点沿袭或保持与现有 projects.locations.searchLinks 工作流的兼容性时,您可以使用此方法从所有可用区域提取和汇总沿袭数据。
如需了解详情,请参阅多区域沿袭搜索简介。
分步伪代码
该过程会向每个区域中的 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的值。 - 将收到的 pageToken 存储在
nextPageToken中。 - 继续执行第 9 步
- 向同一区域中的 projects.locations.searchLinks 端点发出另一个请求,但将
- 将区域名称存储在
- 如果未返回任何链接,但返回了非空页面令牌
- 在
nextPageToken前面加上lastRegion(即[region].[receivedNextPageToken]),以创建nextRegionalPageToken,从而在连续调用中处理分页。
后续步骤
详细了解多区域沿袭搜索。
了解如何使用服务器端自动化功能搜索多区域沿袭。
详细了解数据沿袭。