Obtener enlaces de linaje de datos de varias Google Cloud regiones mediante un enfoque de difusión. Usa la API Data Lineage para recuperar y agregar datos de linaje de todas las regiones disponibles. Esto resulta útil cuando tus recursos de datos están distribuidos en diferentes ubicaciones y necesitas una vista unificada de su linaje.
Procedimiento
El procedimiento envía solicitudes paralelas al endpoint projects.locations.searchLinks
de cada región. Recoges los resultados, gestionas la paginación en las regiones y agregas los enlaces encontrados. Gestiona un regionalPageToken para asegurar una paginación coherente en las llamadas posteriores, teniendo en cuenta las regiones a las que no se puede acceder.
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.
- 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)
- Crear:
- lista de todas las regiones a las que se va a enviar la información, llamada
regions. - Lista de regiones a las que no se puede acceder, llamada
unreachable. - una lista vacía de enlaces encontrados llamada
foundLinks. - una variable vacía
nextPageTokenynextRegionalPageToken. - una variable vacía
lastRegion. - una variable vacía
lastRegionLinksCount.
- lista de todas las regiones a las que se va a enviar la información, llamada
- Ordena
regionsalfabéticamente. - Analizar
regionalPageToken- Si está vacío, ve al paso 5.
- Si no está vacío, entonces
- analiza
regionalPageTokendividiéndolo por el primer punto en dos segmentos - Filtrar las regiones tomando solo las que están después (en orden alfabético) del primer segmento de
regionalPageTokenanalizado. - Almacena el segundo segmento aparte para usarlo en todas las llamadas a projects.locations.searchLinks.
- analiza
- Llama a projects.locations.searchLinks
en paralelo en cada región de la lista
regions. - Espera a que se completen todas las solicitudes.
- Filtra las respuestas correctas y almacena los nombres de las regiones fallidas en la lista
unreachable. - Para cada una de las respuestas (empezando por la primera región en orden alfabético), haz lo siguiente:
- si no se ha devuelto ningún enlace junto con un token de página no vacío
- almacena el nombre de la región en
lastRegion. - Guarda el valor de pageToken recibido en
nextPageToken. - ignora el resto de las respuestas.
- almacena el nombre de la región en
- de lo contrario
- almacena el nombre de la región en
lastRegion. - guardar los enlaces recibidos en
foundLinks(hastalinksToFetch). - Guarda el valor de pageToken recibido en
nextPageToken. - Almacena el número de enlaces obtenidos de la respuesta en
lastRegionLinksCount. - si
foundLinkses menor quelinksToFetch- continúa el pseudocódigo con la siguiente respuesta recibida en orden alfabético.
- si
foundLinkses igual alinksToFetch- hacer otra solicitud al endpoint projects.locations.searchLinks
en la misma región, pero asignar al parámetro
pageSizeel valor delastRegionLinksCount. - Almacena pageToken en
nextPageToken. - Ve al paso 9.
- hacer otra solicitud al endpoint projects.locations.searchLinks
en la misma región, pero asignar al parámetro
- almacena el nombre de la región en
- si no se ha devuelto ningún enlace junto con un token de página no vacío
- Antepón
nextPageTokenconlastRegion(es decir,[region].[receivedNextPageToken]) para crearnextRegionalPageTokeny gestionar la paginación en llamadas consecutivas.