פתרון בעיות שקשורות למשימות סטרימינג שמתעכבות

בצינורות להזרמת נתונים, פריט שמתעכב מוגדר כפריט עבודה עם המאפיינים הבאים:

  • היא מונעת את התקדמות סימן המים למשך זמן משמעותי (בסדר גודל של דקות).
  • העיבוד נמשך זמן רב יחסית לפריטי עבודה אחרים באותו שלב.

אם יש קבצים שמועלים באיחור, הם מעכבים את הוספת סימן המים ומוסיפים זמן אחזור לעבודה. אם השהייה מקובלת לתרחיש השימוש שלכם, לא צריך לבצע פעולה כלשהי. אם רוצים להקטין את זמן האחזור של משימה, כדאי להתחיל בטיפול בפריטים שנותרו מאחור.

איך רואים את הנתונים של צופים שהצטרפו באיחור לשידור במסוף Google Cloud

אחרי שמתחילים משימה ב-Dataflow, אפשר להשתמש במסוף Google Cloud כדי לראות את כל המשימות שמתעכבות.

אפשר לראות את המשתתפים שמתקשים להצטרף לשידור בתצוגת התקדמות השלב או בתצוגת תהליך העבודה של השלב.

צפייה בסטודנטים שלא עומדים בקצב לפי התקדמות בשלב

כדי לראות את המשתמשים שלא התקדמו בשלבים:

  1. נכנסים לדף Jobs של Dataflow במסוף Google Cloud .

    מעבר לדף Jobs

  2. לוחצים על שם המשימה.

  3. בדף Job details, לוחצים על הכרטיסייה Execution details.

  4. ברשימה Graph view, בוחרים באפשרות Stage progress. בתרשים ההתקדמות מוצגים סכומים מצטברים של כל המשתמשים שהצטרפו באיחור בכל שלב.

    צילום מסך של תצוגת ההתקדמות בשלב.

  5. כדי לראות את הפרטים של שלב מסוים, מעבירים את העכבר מעל העמודה של השלב. בחלונית הפרטים יש קישור ליומני העובדים. לחיצה על הקישור הזה תפתח את Cloud Logging בהיקף של העובד וטווח הזמן שבו זוהה ה-straggler.

    צילום מסך של כרטיס הפרטים של המשתמשים שמשלימים את ההמרה אחרי 30 יום.

הצגת פריטים שחורגים מהזמן המוקצב לפי שלב בתהליך העבודה

כדי לראות את הפריטים שנותרו מאחור לפי שלב בתהליך העבודה:

  1. נכנסים לדף Jobs של Dataflow במסוף Google Cloud .

    עוברים אל משימות.

  2. לוחצים על שם המשימה.

  3. בדף פרטי העבודה, לוחצים על הכרטיסייה פרטי הביצוע.

  4. ברשימה Graph view בוחרים באפשרות Stage workflow. בתרשים של תהליך העבודה של השלב מוצגים שלבי הביצוע של המשימה, שמיוצגים כתרשים של תהליך העבודה.

    צילום מסך של תצוגת זרימת העבודה של השלב.

פתרון בעיות שקשורות לסטרימינג של נתונים

אם מזוהה פעולה שמתעכבת, המשמעות היא שפעולה בצינור העיבוד פועלת במשך זמן ארוך באופן חריג.

כדי לפתור את הבעיה, קודם בודקים אם תובנות לגבי Dataflow מצביעות על בעיות כלשהן.

אם עדיין לא הצלחתם לזהות את הסיבה, כדאי לבדוק את יומני העובדים של השלב שבו דווח על העיכוב. כדי לראות את יומני העובדים הרלוונטיים, אפשר לעיין בפרטים על עובדים שנותרו מאחור בהתקדמות השלב. אחר כך לוחצים על הקישור של העובד או העובדת. הקישור הזה פותח את Cloud Logging, עם היקף שמוגדר לעובד ולטווח הזמן שבו זוהה העיכוב. חפשו בעיות שיכולות להאט את השלב, כמו:

  • באגים בקוד DoFn או תקלה DoFns. חפשו את עקבות המחסנית ביומנים, ליד חותמת הזמן שבה זוהה הנתון החריג.
  • שיחות לשירותים חיצוניים שלוקח הרבה זמן להשלים. כדי לצמצם את הבעיה, מבצעים קבוצות של קריאות לשירותים חיצוניים ומגדירים פסק זמן ב-RPC.
  • מגבלות המכסה במאגרי נתונים. אם צינור עיבוד הנתונים מוציא נתונים לשירות, יכול להיות שתוכלו להגדיל את המכסה. Google Cloudמידע נוסף זמין במאמרי העזרה בנושא מכסות ב-Cloud. כדאי גם לעיין במסמכי התיעוד של השירות הספציפי כדי לקבל מידע על אסטרטגיות אופטימיזציה, וגם במסמכי התיעוד של I/O Connector.
  • DoFns שמבצעות פעולות קריאה או כתיבה גדולות במצב מתמשך. מומלץ לבצע ארגון הקוד מחדש (Refactoring) של הקוד כדי לבצע קריאות או כתיבות קטנות יותר במצב מתמשך.

אפשר גם להשתמש בחלונית מידע צדדי כדי למצוא את השלבים הכי איטיים בשלב. יכול להיות שאחד מהשלבים האלה גורם לבעיה. לוחצים על שם השלב כדי לראות את יומני העובדים של השלב הזה.

אחרי שתזהו את הסיבה, תצטרכו לעדכן את צינור הנתונים עם קוד חדש ולעקוב אחרי התוצאה.

המאמרים הבאים