אחזור קישורים של שרשרת מקורות נתונים בכמה Google Cloud אזורים באמצעות גישה של fan-out. אתם משתמשים ב-Data Lineage API כדי לאחזר ולצבור נתוני שושלת מכל האזורים הזמינים.
למה כדאי להשתמש ב-fan-out מצד הלקוח?
הגישה של fan-out מצד הלקוח שימושית כשנכסי הנתונים שלכם מפוזרים במיקומים שונים ואתם צריכים תצוגה מאוחדת של שושלת הנתונים שלהם.
מידע נוסף זמין במאמר מידע על חיפוש שושלת נתונים בכמה אזורים.
פסאודו קוד מפורט
התהליך שולח בקשות מקבילות לנקודת הקצה 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 באותו אזור, אבל מגדירים את הפרמטר
- שם האזור של החנות ב
- אם לא הוחזרו קישורים יחד עם טוקן דף לא ריק
- מוסיפים את
lastRegionלפניnextPageToken(כלומר[region].[receivedNextPageToken]) כדי ליצורnextRegionalPageTokenלטיפול במספור העמודים בבקשות עוקבות.