Pesquisar linhagem multirregional usando distribuição de dados do lado do cliente

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

Para mais informações, consulte Sobre a pesquisa de linhagem multirregional.

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 distribuição de dados 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 de 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. salve 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. salve 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. Armazene 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.

A seguir