Buscar links de linhagem de várias regiões

O pseudocódigo a seguir descreve um procedimento que pode ser seguido usando a API Data Lineage para buscar links de linhagem de dados em todas as regiões disponíveis.

  1. Configuração de entrada:
    • linksToFetch = 5 (número de links a serem buscados de todas as regiões)
    • regionalPageToken = "" (último token de página regional recebido usado para paginação)
  2. Criar:
    1. lista de todas as regiões para fan-out chamada regions.
    2. lista de regiões inacessíveis chamada unreachable.
    3. uma lista vazia de links encontrados chamada foundLinks.
    4. uma variável vazia nextPageToken e nextRegionalPageToken.
    5. uma variável lastRegion vazia.
    6. uma variável lastRegionLinksCount vazia.
  3. Ordenar regions em ordem alfabética.
  4. Analisar regionalPageToken
    1. Se estiver vazio, prossiga para a etapa 5.
    2. Se não estiver vazio,
      1. Analisar regionalPageToken dividindo-o pelo primeiro ponto em dois segmentos
      2. filtrar regiões, considerando apenas as que estão após (em ordem alfabética) o primeiro segmento da regionalPageToken analisada.
      3. armazene o segundo segmento para usá-lo em todas as chamadas projects.locations.searchLinks.
  5. Faça uma chamada para projects.locations.searchLinks em cada região na lista regions em paralelo.
  6. Aguarde a conclusão de todas as solicitações.
  7. Filtre as respostas bem-sucedidas e armazene os nomes das regiões com falha na lista unreachable.
  8. Para cada uma das respostas (começando pela primeira região em ordem alfabética)
    1. se nenhum link foi retornado com um token de página não vazio
      1. nome da região da loja em lastRegion.
      2. Salvar o pageToken recebido em nextPageToken.
      3. ignore as respostas restantes.
    2. caso contrário
      1. nome da região da loja em lastRegion.
      2. salvar links recebidos em foundLinks (até linksToFetch).
      3. Salvar o pageToken recebido em nextPageToken.
      4. Armazene o número de links usados da resposta em lastRegionLinksCount.
      5. if foundLinks is less than linksToFetch
        1. continue o pseudocódigo com a próxima resposta recebida na ordem alfabética.
      6. if foundLinks equals linksToFetch
        1. Faça outra solicitação para o endpoint projects.locations.searchLinks na mesma região, mas defina o parâmetro pageSize como o valor de lastRegionLinksCount.
        2. Armazenar o pageToken recebido em nextPageToken.
        3. Continue para a etapa 9
  9. Adicione nextPageToken com o lastRegion (ou seja, [region].[receivedNextPageToken]) para criar nextRegionalPageToken e processar a paginação em chamadas consecutivas.