Obtenha links de linhagem de dados em várias Google Cloud regiões através de uma abordagem de ramificação. Usa a API Data Lineage para obter e agregar dados de linhagem de todas as regiões disponíveis. Isto é útil quando os seus recursos de dados estão distribuídos por diferentes localizações e precisa de uma vista unificada da respetiva linhagem.
Procedimento
O procedimento faz pedidos paralelos ao ponto final projects.locations.searchLinks
em cada região. Recolhe resultados, processa a paginação em várias regiões e agrega os links encontrados. Faça a gestão de um regionalPageToken para garantir uma paginação consistente para chamadas subsequentes, tendo em conta as regiões inacessíveis.
O seguinte pseudocódigo descreve um procedimento que pode seguir usando a API Data Lineage para obter links de linhagem de dados de todas as regiões disponíveis.
- Configuração de entrada:
linksToFetch= 5 (número de links a obter de todas as regiões)regionalPageToken= "" (token da página regional recebido mais recentemente usado para paginação)
- Criar:
- lista de todas as regiões a expandir denominada
regions. - lista de regiões inacessíveis denominada
unreachable. - Uma lista vazia de links encontrados denominada
foundLinks. - uma variável vazia
nextPageTokenenextRegionalPageToken. - uma variável vazia
lastRegion. - uma variável vazia
lastRegionLinksCount.
- lista de todas as regiões a expandir denominada
- Ordenar
regionsalfabeticamente. - Analisar
regionalPageToken- Se estiver vazio, avance para o passo 5
- Se não estiver vazio, então
- analisa
regionalPageTokendividindo-o pelo primeiro ponto em dois segmentos - Filtrar regiões tomando apenas as que estão depois (por ordem alfabética) do primeiro segmento de
regionalPageTokenanalisado. - Armazenar o segundo segmento para o usar em todas as chamadas projects.locations.searchLinks.
- analisa
- Faça uma chamada para projects.locations.searchLinks
em cada região na lista
regionsem paralelo. - Aguarde a conclusão de todos os pedidos.
- Filtre as respostas bem-sucedidas e armazene os nomes das regiões com falhas na lista
unreachable. - Para cada uma das respostas (começando pela primeira região por ordem alfabética)
- se não forem devolvidos links juntamente com um token de página não vazio
- armazenar o nome da região da loja em
lastRegion. - guardar pageToken recebido em
nextPageToken. - Ignorar as respostas restantes.
- armazenar o nome da região da loja em
- caso contrário
- armazenar o nome da região da loja em
lastRegion. - guardar links recebidos em
foundLinks(atélinksToFetch). - guardar pageToken recebido em
nextPageToken. - Armazenar o número de links obtidos da resposta em
lastRegionLinksCount. - se
foundLinksfor inferior alinksToFetch- continuar o pseudocódigo com a próxima resposta recebida por ordem alfabética.
- se
foundLinksfor igual alinksToFetch- Faça outro pedido ao ponto final projects.locations.searchLinks
na mesma região, mas defina o parâmetro
pageSizepara o valor delastRegionLinksCount. - A loja recebeu pageToken em
nextPageToken. - Avançar para o passo 9
- Faça outro pedido ao ponto final projects.locations.searchLinks
na mesma região, mas defina o parâmetro
- armazenar o nome da região da loja em
- se não forem devolvidos links juntamente com um token de página não vazio
- Adicione
nextPageTokencomlastRegion(ou seja,[region].[receivedNextPageToken]) para criarnextRegionalPageTokenpara processar a paginação em chamadas consecutivas.