En el siguiente pseudocódigo, se describe un procedimiento que puedes seguir con la API de Data Lineage para recuperar vínculos de linaje de datos de todas las regiones disponibles.
- Configuración de entrada:
linksToFetch
= 5 (cantidad de vínculos que se recuperarán de todas las regiones)regionalPageToken
= "" (el último token de página regional recibido que se usa para la paginación)
- Crear:
- lista de todas las regiones para el fan-out llamada
regions
. - lista de regiones inaccesibles llamada
unreachable
. - una lista vacía de vínculos encontrados llamada
foundLinks
. - una variable vacía
nextPageToken
ynextRegionalPageToken
. - una variable vacía
lastRegion
. - una variable vacía
lastRegionLinksCount
.
- lista de todas las regiones para el fan-out llamada
- Ordena
regions
alfabéticamente. - Analiza
regionalPageToken
- Si está vacío, continúa con el paso 5.
- Si no está vacío, haz lo siguiente:
- Analiza
regionalPageToken
dividiéndolo por el primer punto en dos segmentos. - Filtra las regiones tomando solo las que están después (en orden alfabético) del primer segmento del
regionalPageToken
analizado. - Almacena 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 (comenzando por la primera región en orden alfabético), haz lo siguiente:
- si no se devolvieron vínculos junto con un token de página no vacío
- Almacena el nombre de la región en
lastRegion
. - guarda el pageToken recibido en
nextPageToken
. - Ignora las respuestas restantes.
- Almacena el nombre de la región en
- otherwise
- Almacena el nombre de la región en
lastRegion
. - guardar los vínculos recibidos en
foundLinks
(hastalinksToFetch
). - guarda el pageToken recibido en
nextPageToken
. - Almacena la cantidad de vínculos tomados de la respuesta en
lastRegionLinksCount
. - si
foundLinks
es menor quelinksToFetch
- continúa 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 establece el parámetro
pageSize
en el valor delastRegionLinksCount
. - store recibió el pageToken en
nextPageToken
. - continúa con el paso 9
- Realiza otra solicitud al extremo projects.locations.searchLinks en la misma región, pero establece el parámetro
- Almacena el nombre de la región en
- si no se devolvieron vínculos junto con un token de página no vacío
- Agrega
nextPageToken
al principio conlastRegion
(es decir,[region].[receivedNextPageToken]
) para crearnextRegionalPageToken
y controlar la paginación en llamadas consecutivas.