使用客户端扇出搜索多区域沿袭

借助 Knowledge Catalog(以前称为 Dataplex Universal Catalog)中的客户端扇出功能,您可以使用 Data Lineage API 检索和汇总多个 Google Cloud 区域的数据沿袭链接。当数据资产跨越不同位置时,并行查询区域端点有助于您构建统一的沿袭视图。

为什么要使用客户端扇出?

当您的数据资产分布在不同位置,并且您希望在客户端上编排区域查询时,客户端扇出方法非常有用。在跨一组已知区域跟踪单跃点沿袭或保持与现有 projects.locations.searchLinks 工作流的兼容性时,您可以使用此方法从所有可用区域提取和汇总沿袭数据。

如需了解详情,请参阅多区域沿袭搜索简介。

分步伪代码

该过程会向每个区域中的 projects.locations.searchLinks 端点发出并行请求。您需要收集结果、处理跨区域的分页,并汇总找到的链接。为确保后续调用的分页一致,请管理 regionalPageToken。这会考虑无法访问的区域。

以下伪代码概述了您可以使用 Data Lineage API 从所有可用区域提取数据沿袭链接的过程。

  1. 输入设置:
    • linksToFetch = 5(要从所有区域提取的链接的数量)
    • regionalPageToken = ""(用于分页的上次收到的区域页面令牌)
  2. 创建:
    1. 要扇出的所有区域的列表,名为 regions。
    2. 无法访问的区域列表,名为 unreachable。
    3. 发现的空链接列表,名为 foundLinks。
    4. 空变量 nextPageToken 和 nextRegionalPageToken。
    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. 将收到的 pageToken 存储在 nextPageToken 中。
        3. 继续执行第 9 步
  9. 在 nextPageToken 前面加上 lastRegion(即 [region].[receivedNextPageToken]),以创建 nextRegionalPageToken,从而在连续调用中处理分页。

后续步骤