Récupérez les liens de traçabilité des données dans plusieurs régions Google Cloud à l'aide d'une approche de distribution ramifiée. Vous utilisez l'API Data Lineage pour récupérer et agréger les données de traçabilité de toutes les régions disponibles.
Pourquoi utiliser le fan-out côté client ?
L'approche de distribution ramifiée côté client est utile lorsque vos composants de données sont répartis à différents endroits et que vous avez besoin d'une vue unifiée de leur lignée.
Pour en savoir plus, consultez À propos de la recherche de traçabilité multirégionale.
Pseudo-code pas à pas
La procédure effectue des requêtes parallèles au point de terminaison projects.locations.searchLinks dans chaque région. Vous collectez les résultats, gérez la pagination dans les régions et agrégez les liens trouvés. Pour assurer une pagination cohérente pour les appels suivants, gérez un regionalPageToken. Cela tient compte des régions inaccessibles.
Le pseudo-code suivant décrit une procédure que vous pouvez suivre à l'aide de l'API Data Lineage pour extraire les liens de traçabilité des données de toutes les régions disponibles.
- Configurez les entrées suivantes :
linksToFetch= 5 (nombre de liens à récupérer dans toutes les régions)regionalPageToken= "" (dernier jeton de page régionale reçu utilisé pour la pagination)
- Créez les éléments suivantes :
- une liste de toutes les régions à distribuer de manière ramifiée, appelée
regions. - une liste des régions inaccessibles, appelée
unreachable. - une liste vide de liens trouvés, appelée
foundLinks. - une variable vide
nextPageTokenetnextRegionalPageToken. - une variable vide
lastRegion. - une variable vide
lastRegionLinksCount.
- une liste de toutes les régions à distribuer de manière ramifiée, appelée
- Trier les
regionspar ordre alphabétique - Analysez le champ
regionalPageToken.- S'il est vide, passez à l'étape 5.
- S'il n'est pas vide,
- Analysez le champ
regionalPageTokenen le divisant au niveau du premier point en deux segments. - Filtrez les régions en ne conservant que celles qui suivent (par ordre alphabétique) le premier segment obtenu de l'analyse de
regionalPageToken. - Stockez le deuxième segment à part pour l'utiliser dans tous les appels à projects.locations.searchLinks.
- Analysez le champ
- Appelez projects.locations.searchLinks dans chaque région de la liste
regionsen parallèle. - Attendez que toutes les demandes soient traitées.
- Filtrez les réponses réussies et stockez les noms de régions ayant échoué dans la liste
unreachable. - Pour chacune des réponses (en commençant par la première région par ordre alphabétique)
- Si aucun lien n'a été renvoyé avec un jeton de page non vide
- Stockez le nom de la région dans
lastRegion. - Enregistrez le champ pageToken reçu dans
nextPageToken. - Ignorez les autres réponses.
- Stockez le nom de la région dans
- Sinon
- Stockez le nom de la région dans
lastRegion. - Enregistrez les liens reçus dans
foundLinks(jusqu'àlinksToFetch). - Enregistrez le champ pageToken reçu dans
nextPageToken. - Stockez le nombre de liens utilisés à partir de la réponse dans
lastRegionLinksCount. - Si la valeur de
foundLinksest inférieure à celle delinksToFetch- Continuez le pseudo-code avec la prochaine réponse reçue dans l'ordre alphabétique.
- Si la valeur de
foundLinksest égale à celle delinksToFetch- Effectuez une autre requête au point de terminaison projects.locations.searchLinks dans la même région, mais définissez le paramètre
pageSizesur la valeur delastRegionLinksCount. - Stockez le champ pageToken reçu dans
nextPageToken. - Passez à l'étape 9
- Effectuez une autre requête au point de terminaison projects.locations.searchLinks dans la même région, mais définissez le paramètre
- Stockez le nom de la région dans
- Si aucun lien n'a été renvoyé avec un jeton de page non vide
- Ajoutez
lastRegion(c'est-à-dire[region].[receivedNextPageToken]) ànextPageTokenpour créernextRegionalPageTokenafin de gérer la pagination lors des appels consécutifs.
Étapes suivantes
En savoir plus sur la recherche de traçabilité multirégionale
Découvrez comment rechercher le lineage multirégion à l'aide de l'automatisation côté serveur.
En savoir plus sur la traçabilité des données