Buscar links de linhagem de várias regiões

Extraia links de linhagem de dados em várias regiões de Google Cloud usando uma abordagem de fanout. Use a API Data Lineage para recuperar e agregar dados de linhagem de todas as regiões disponíveis. Isso é útil quando seus ativos de dados estão distribuídos em locais diferentes e você precisa de uma visão unificada da linhagem deles.

Procedimento

O procedimento faz solicitações paralelas ao endpoint projects.locations.searchLinks em cada região. Você coleta resultados, processa a paginação em todas as regiões e agrega os links encontrados. Gerencie um regionalPageToken para garantir a paginação consistente em chamadas subsequentes, considerando regiões inacessíveis.

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

  1. Configuração de entrada:
    • linksToFetch = 5 (número de links a serem buscados em 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 fanout 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 vazia lastRegion.
    6. uma variável vazia lastRegionLinksCount.
  3. Ordene regions em ordem alfabética.
  4. Analisar regionalPageToken
    1. Se estiver vazio, prossiga para a etapa 5.
    2. Se não estiver vazio, faça o seguinte:
      1. analise regionalPageToken dividindo-o pelo primeiro ponto em dois segmentos
      2. filtre as regiões considerando apenas aquelas que estão depois (em ordem alfabética) do primeiro segmento do regionalPageToken analisado.
      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 da lista regions em paralelo.
  6. Aguarde a conclusão de todas as solicitações.
  7. Filtre as respostas bem-sucedidas e armazene os nomes de 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 for retornado com um token de página não vazio
      1. Armazene o nome da região em lastRegion.
      2. salvar o pageToken recebido em nextPageToken.
      3. ignore as respostas restantes.
    2. caso contrário,
      1. Armazene o nome da região 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. se foundLinks for menor que linksToFetch
        1. continue o pseudocódigo com a próxima resposta recebida em ordem alfabética.
      6. se foundLinks for igual a linksToFetch
        1. faça outra solicitação ao endpoint projects.locations.searchLinks na mesma região, mas defina o parâmetro pageSize com o valor de lastRegionLinksCount.
        2. A loja recebeu pageToken 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.