En el siguiente pseudocódigo, se describe un procedimiento que puedes seguir mediante la API de linaje de datos para recuperar vínculos de linaje de datos de todas las regiones disponibles.
- Configuración de entrada:
linksToFetch
= 5 (cantidad de vínculos para recuperar de todas las regiones)regionalPageToken
= "" (último token de página regional recibido que se usó para la paginación)- Crea:
- lista de todas las regiones del fan-out denominada
regions
. - lista de regiones inaccesibles, llamadas
unreachable
. - una lista vacía de vínculos encontrados llamados
foundLinks
. - una variable vacía
nextPageToken
ynextRegionalPageToken
. - una variable vacía
lastRegion
. - una variable vacía
lastRegionLinksCount
.
- lista de todas las regiones del fan-out denominada
- Ordene
regions
alfabéticamente. - Analizar
regionalPageToken
- Si está vacío, continúa con el paso 4.
- Si no está vacío, haga lo siguiente:
- Analiza
regionalPageToken
dividiéndolo por el primer punto en dos segmentos. - Para filtrar regiones, toma solo las que están después (en orden alfabético) del primer segmento del
regionalPageToken
analizado. - Almacenar el segundo segmento para usarlo en todas las llamadas a projects.locations.searchLinks
- Analiza
- Realiza una llamada a projects.locations.searchLinks en cada región de la lista
regions
en paralelo. - Espera a que se completen todas las solicitudes.
- Filtra las respuestas correctas y almacena los nombres de las regiones con errores en la lista
unreachable
. - Para cada una de las respuestas (que comienzan con la primera región en orden alfabético)
- si no se mostraron vínculos junto con un token de página que no esté vacío
- almacenar el nombre de la región en
lastRegion
. - guardar pageToken recibido en
nextPageToken
. - ignorar las respuestas restantes.
- almacenar el nombre de la región en
- de lo contrario
- almacenar el nombre de la región en
lastRegion
. - guardar vínculos recibidos en
foundLinks
(hastalinksToFetch
). - guardar pageToken recibido en
nextPageToken
. - almacenar la cantidad de vínculos obtenidos de la respuesta en
lastRegionLinksCount
. - si
foundLinks
es menor quelinksToFetch
- Continúe el pseudocódigo con la siguiente respuesta recibida en orden alfabético.
- si
foundLinks
es igual alinksToFetch
- Realiza otra solicitud al extremo projects.locations.searchLinks en la misma región, pero configura el parámetro
pageSize
en el valor delastRegionLinksCount
. - almacenar pageToken en
nextPageToken
. - continuar con el paso 8
- Realiza otra solicitud al extremo projects.locations.searchLinks en la misma región, pero configura el parámetro
- almacenar el nombre de la región en
- si no se mostraron vínculos junto con un token de página que no esté vacío
- Antepón el valor de nextPageToken con el
lastRegion
(es decir, "[region].[receivedNextPageToken]") para crearnextRegionalPageToken
a fin de controlar la paginación en las llamadas consecutivas.