从多个区域提取谱系链接

以下伪代码概述了使用 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 拆分为两个部分来解析 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. if foundLinks is less than linksToFetch
        1. 使用按字母顺序接收的下一个响应继续伪代码。
      6. if foundLinks equals linksToFetch
        1. 向同一区域中的 projects.locations.searchLinks 端点发出另一个请求,但将 pageSize 参数设置为 lastRegionLinksCount 的值。
        2. 商店在 nextPageToken 中收到了 pageToken。
        3. 继续执行第 9 步
  9. nextPageToken 前面附加 lastRegion(即 [region].[receivedNextPageToken]),以创建 nextRegionalPageToken 来处理连续调用中的分页。