On this page
מערך שיעור: Stream Processing מתקדם
משך: 2.5 שעות אקדמיות (113 דקות).
מטרת השיעור: הסטודנטים יבינו Tumbling/Sliding Windows לפי זמן, ויטפלו ב-Late Events עם Watermark.
בסוף השיעור הסטודנטים צריכים: להסביר את ההבדל בין Event Time ל-Processing Time, ליישם Tumbling Window עם Pandas, ולהגדיר Watermark סביר לתרחיש נתון.
דגש קריטי: ההבדל Event Time מול Processing Time הוא שורש כל הנושא — ודאו שהוא מובן היטב לפני שעוברים ל-Watermarks.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הזכירו deque(maxlen) מהפרויקט הקודם — “לפי כמות, לא זמן” |
| הבעיה: חלון לפי זמן דורש גישה אחרת | 15 דקות | “כמה אירועים בכל דקה” |
| Tumbling Window | 20 דקות | חלונות קבועים, groupby+floor |
| Sliding Window (זמן) | 15 דקות | חופף, השוואה ל-Tumbling |
| Event Time מול Processing Time | 15 דקות | שורש בעיית Late Events |
| Late Events + Watermark | 25 דקות | פשרה מודעת, קישרו ל-TTL |
| תרגול מודרך | 18 דקות | תרגיל 1+2 |
דגשים להעברת השיעור
- הבדילו בבירור מ-
deque(maxlen)מהפרויקט הקודם — שם זה היה “N אחרונים לפי כמות”, כאן זה “לפי זמן” — שני מושגים שונים שנשמעים דומים. - Event Time מול Processing Time דורש דוגמה קונקרטית מרשת לא-אמינה (הודעה שנשלחה ב-10:00 אבל הגיעה ב-10:00:05 עקב עומס) — לא רק הגדרה מופשטת.
- קשרו Watermark ל-TTL על Redis מיחידה קודמת — אותו סוג החלטה: “פשרה סבירה, לא דיוק מוחלט”.
מושגים
Tumbling Window — חלונות קבועים, לא-חופפים. Sliding Window (זמן) — חלון נע, יכול לחפוף. Late Event — אירוע שמגיע אחרי סגירת החלון שלו. Watermark — גבול זמן סביר לסגירת חלון.
תרגיל חשיבה
שאלת פתיחה: “אם Watermark שלכם קצר מדי (למשל 1 שנייה), מה קורה עם הרבה Late Events שנדחים? ואם הוא ארוך מדי (למשל שעה)?”
מהלך: הובילו לתובנה על שני קצוות הפשרה: Watermark קצר מדי = הרבה אירועים אמיתיים נדחים בטעות (רשת קצת איטית = כבר “מאוחר מדי”); Watermark ארוך מדי = חלונות “נשארים פתוחים” זמן רב, מעכבים דוחות ותובנות בזמן-אמת. אין תשובה “נכונה” גלובלית — תלוי בטבע התעבורה והדרישה העסקית.
מה המרצה מראה בסוף: הריצו סימולציה עם כמה אירועים “מאוחרים” בדרגות שונות (שנייה אחת, 30 שניות, 5 דקות באיחור) מול Watermark של 30 שניות — הראו אילו מתקבלים ואילו נדחים, ואיך זה משתנה אם ה-Watermark משתנה ל-5 דקות.