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.
- 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)
- Criar:
- lista de todas as regiões para fanout chamada
regions. - lista de regiões inacessíveis chamada
unreachable. - uma lista vazia de links encontrados chamada
foundLinks. - uma variável vazia
nextPageTokenenextRegionalPageToken. - uma variável vazia
lastRegion. - uma variável vazia
lastRegionLinksCount.
- lista de todas as regiões para fanout chamada
- Ordene
regionsem ordem alfabética. - Analisar
regionalPageToken- Se estiver vazio, prossiga para a etapa 5.
- Se não estiver vazio, faça o seguinte:
- analise
regionalPageTokendividindo-o pelo primeiro ponto em dois segmentos - filtre as regiões considerando apenas aquelas que estão depois (em ordem alfabética) do primeiro segmento do
regionalPageTokenanalisado. - Armazene o segundo segmento para usá-lo em todas as chamadas projects.locations.searchLinks.
- analise
- Faça uma chamada para projects.locations.searchLinks
em cada região da lista
regionsem paralelo. - Aguarde a conclusão de todas as solicitações.
- Filtre as respostas bem-sucedidas e armazene os nomes de regiões com falha na lista
unreachable. - Para cada uma das respostas (começando pela primeira região em ordem alfabética)
- se nenhum link for retornado com um token de página não vazio
- Armazene o nome da região em
lastRegion. - salvar o pageToken recebido em
nextPageToken. - ignore as respostas restantes.
- Armazene o nome da região em
- caso contrário,
- Armazene o nome da região em
lastRegion. - salvar links recebidos em
foundLinks(atélinksToFetch). - salvar o pageToken recebido em
nextPageToken. - Armazene o número de links usados da resposta em
lastRegionLinksCount. - se
foundLinksfor menor quelinksToFetch- continue o pseudocódigo com a próxima resposta recebida em ordem alfabética.
- se
foundLinksfor igual alinksToFetch- faça outra solicitação ao endpoint projects.locations.searchLinks
na mesma região, mas defina o parâmetro
pageSizecom o valor delastRegionLinksCount. - A loja recebeu pageToken em
nextPageToken. - continue para a etapa 9
- faça outra solicitação ao endpoint projects.locations.searchLinks
na mesma região, mas defina o parâmetro
- Armazene o nome da região em
- se nenhum link for retornado com um token de página não vazio
- Adicione
nextPageTokencom olastRegion(ou seja,[region].[receivedNextPageToken]) para criarnextRegionalPageTokene processar a paginação em chamadas consecutivas.