אחזור קישורים של שושלת הנתונים בכמה Google Cloud אזורים באמצעות גישת fan-out. אתם משתמשים ב-Data Lineage API כדי לאחזר ולצבור נתוני שושלת מכל האזורים הזמינים. האפשרות הזו שימושית אם נכסי הנתונים שלכם מפוזרים במיקומים שונים ואתם צריכים תצוגה מאוחדת של שרשרת המקור שלהם.
התהליך
התהליך שולח בקשות מקבילות לנקודת הקצה projects.locations.searchLinks בכל אזור. אתם אוספים תוצאות, מטפלים בהחלפת דפים באזורים שונים ומצברים את הקישורים שנמצאו. כדי לנהל regionalPageToken ולוודא שהחלוקה לדפים תהיה עקבית בקריאות הבאות, צריך להתחשב באזורים שלא ניתן להגיע אליהם.
הקוד המדומה הבא מתאר תהליך שאפשר לבצע באמצעות Data Lineage API כדי לאחזר קישורי שושלת נתונים מכל האזורים הזמינים.
- הגדרת קלט:
-
linksToFetch= 5 (מספר הקישורים לאחזור מכל האזורים) -
regionalPageToken= "" (אסימון הדף האזורי האחרון שהתקבל, שמשמש להחלפה בין דפים)
-
- יצירה:
- רשימה של כל האזורים ל-fan-out שנקראת
regions. - רשימת האזורים שלא ניתן להגיע אליהם, שנקראת
unreachable. - רשימה ריקה של קישורים שנמצאו בשם
foundLinks. - משתנה ריק
nextPageTokenו-nextRegionalPageToken. - משתנה ריק
lastRegion. - משתנה ריק
lastRegionLinksCount.
- רשימה של כל האזורים ל-fan-out שנקראת
- מיון
regionsלפי סדר אלפביתי. - תנתח את
regionalPageToken- אם הוא ריק, ממשיכים לשלב 5.
- אם הוא לא ריק, אז
- מנתחים את
regionalPageTokenעל ידי פיצול שלו לפי הנקודה הראשונה לשני פלחים - לסנן אזורים על ידי בחירה רק של האזורים שמופיעים אחרי (בסדר אלפביתי) הפלח הראשון מתוך
regionalPageTokenשנותח. - מאחסנים את הפלח השני בצד כדי להשתמש בו בכל הקריאות ל-projects.locations.searchLinks.
- מנתחים את
- מבצעים קריאה ל-projects.locations.searchLinks
בכל אזור ברשימה
regionsבמקביל. - מחכים שכל הבקשות יושלמו.
- מסננים את התשובות שהתקבלו בהצלחה ושומרים את שמות האזורים שנכשלו ברשימה
unreachable. - לכל אחת מהתשובות (מתחילים באזור הראשון בסדר אלפביתי)
- אם לא הוחזרו קישורים יחד עם טוקן דף לא ריק
- שם האזור של החנות ב
lastRegion. - שמירת pageToken שהתקבל ב-
nextPageToken. - להתעלם מהתשובות הנותרות.
- שם האזור של החנות ב
- אחרת
- שם האזור של החנות ב
lastRegion. - שמירת קישורים שהתקבלו ב-
foundLinks(עדlinksToFetch). - שמירת pageToken שהתקבל ב-
nextPageToken. - מאחסן את מספר הקישורים שנלקחו מהתגובה ב-
lastRegionLinksCount. - if
foundLinksis less thanlinksToFetch- להמשיך את הקוד המדומה עם התשובה הבאה שהתקבלה לפי סדר אלפביתי.
- if
foundLinksequalslinksToFetch- שולחים בקשה נוספת לנקודת הקצה projects.locations.searchLinks באותו אזור, אבל מגדירים את הפרמטר
pageSizeלערך שלlastRegionLinksCount. - החנות קיבלה pageToken ב-
nextPageToken. - ממשיכים לשלב 9.
- שולחים בקשה נוספת לנקודת הקצה projects.locations.searchLinks באותו אזור, אבל מגדירים את הפרמטר
- שם האזור של החנות ב
- אם לא הוחזרו קישורים יחד עם טוקן דף לא ריק
- מוסיפים את
nextPageTokenלפניlastRegion(כלומר[region].[receivedNextPageToken]) כדי ליצורnextRegionalPageTokenלטיפול במספור העמודים בשיחות עוקבות.