Obtener enlaces de linaje de varias regiones

El siguiente pseudocódigo describe un procedimiento que puedes seguir con la API Data Lineage para obtener enlaces de linaje de datos de todas las regiones disponibles.

  1. Configuración de entrada:
    • linksToFetch = 5 (número de enlaces que se van a obtener de todas las regiones)
    • regionalPageToken = "" (token de la última página regional recibida que se usa para la paginación)
  2. Crear:
    1. lista de todas las regiones a las que se va a enviar la información, llamada regions.
    2. Lista de regiones a las que no se puede acceder, llamada unreachable.
    3. una lista vacía de enlaces encontrados llamada foundLinks.
    4. una variable vacía nextPageToken y nextRegionalPageToken.
    5. una variable vacía lastRegion.
    6. una variable vacía lastRegionLinksCount.
  3. Ordena regions alfabéticamente.
  4. Analizar regionalPageToken
    1. Si está vacío, ve al paso 5.
    2. Si no está vacío, entonces
      1. analiza regionalPageToken dividiéndolo por el primer punto en dos segmentos
      2. Filtrar las regiones tomando solo las que están después (en orden alfabético) del primer segmento de regionalPageToken analizado.
      3. Almacena el segundo segmento aparte para usarlo en todas las llamadas a projects.locations.searchLinks.
  5. Llama a projects.locations.searchLinks en paralelo en cada región de la lista regions.
  6. Espera a que se completen todas las solicitudes.
  7. Filtra las respuestas correctas y almacena los nombres de las regiones fallidas en la lista unreachable.
  8. En cada una de las respuestas (empezando por la primera región en orden alfabético), haz lo siguiente:
    1. si no se ha devuelto ningún enlace junto con un token de página no vacío
      1. almacena el nombre de la región en lastRegion.
      2. Guarda el valor de pageToken recibido en nextPageToken.
      3. Ignora el resto de las respuestas.
    2. de lo contrario
      1. almacena el nombre de la región en lastRegion.
      2. guardar los enlaces recibidos en foundLinks (hasta linksToFetch).
      3. Guarda el valor de pageToken recibido en nextPageToken.
      4. Almacena el número de enlaces obtenidos de la respuesta en lastRegionLinksCount.
      5. si foundLinks es menor que linksToFetch
        1. continúa el pseudocódigo con la siguiente respuesta recibida en orden alfabético.
      6. si foundLinks es igual a linksToFetch
        1. hacer otra solicitud al endpoint projects.locations.searchLinks en la misma región, pero asigna al parámetro pageSize el valor de lastRegionLinksCount.
        2. La tienda ha recibido pageToken en nextPageToken.
        3. Ve al paso 9.
  9. Antepón nextPageToken con lastRegion (es decir, [region].[receivedNextPageToken]) para crear nextRegionalPageToken y gestionar la paginación en llamadas consecutivas.