# מערך שיעור: Analyzer Service📋 מערך מרצה

משך: 2.5 שעות אקדמיות (113 דקות), רובן עבודת צוותים.

מטרת השיעור: החברים האחראים על Analyzer בכל צוות יממשו Streaming Analysis עם Kafka+Pandas.

בסוף השיעור: Analyzer Service עובד — צורך אירועים, מזהה אנומליות בזמן-אמת, ומפרסם ממצאים.

דגש קריטי: זהו שיעור-אינטגרציה בין שני נושאים מרכזיים (Kafka מ-NoSQL, Pandas Anomaly Detection) — הדגישו שאין כלי חדש, רק חיבור.

---

## מהלך השיעור

| חלק בשיעור | משך | הערות ודגשים |
| --- | --- | --- |
| פתיחה וחיבור | 5 דקות | הזכירו Consumer מ-NoSQL, Anomaly Detection מ-Pandas |
| הבעיה: streaming מול batch | 10 דקות | אין "כל הנתונים" מראש |
| הרעיון: Sliding Window | 20 דקות | deque(maxlen), הדגמה |
| שילוב Consumer+Pandas+Producer | 25 דקות | קוד מלא, שלב-שלב |
| בדיקת אינטגרציה עם Collector | 15 דקות | הריצו את שני השירותים יחד |
| עבודת צוותים: מימוש | 38 דקות | חבר האחראי על Analyzer בכל צוות |

---

## דגשים להעברת השיעור

- ודאו שהצוותים מריצים את Collector (מהשיעור הקודם) יחד עם Analyzer בשלב מוקדם — בדיקת אינטגרציה מוקדמת מזהה בעיות Contract לפני שהן "נעולות" בקוד.
- הסבר Sliding Window שווה זמן — זו תפיסה חדשה (זיכרון מוגבל על זרם אינסופי) שלא נגעו בה קודם ביחידת Pandas.
- הזכירו את סף המינימום (`len(df) < 10`) כחיזוק להרגל בריא מיחידת Pandas — לא לחשב סטטיסטיקה על מדגם זעיר.

---

## מושגים

**Streaming Analysis** — עיבוד רציף, לא batch.
**Sliding Window** — חלון נגלל של נתונים אחרונים.
**Publish Findings** — פרסום ממצא ל-Topic חדש.

---

## תרגיל חשיבה

**שאלת פתיחה:** "Analyzer שלכם רץ ברציפות ומקבל אירועים חדשים כל הזמן. אם הייתם שומרים **את כל** ההיסטוריה בזיכרון (בלי Sliding Window), מה קורה אחרי יום שלם של ריצה?"

**מהלך:** הובילו לתובנה: הזיכרון גדל בלי הפסקה — דליפת זיכרון בפועל, לא תיאורטית. Sliding Window (`deque(maxlen=N)`) הוא הפתרון הפשוט ביותר — שומר רק את מה שרלוונטי (התנהגות "אחרונה") ומוותר במודע על היסטוריה רחוקה.

**מה המרצה מראה בסוף:** הריצו Collector+Analyzer יחד עם קלט מכוון — כמה אירועים "רגילים" ואז ערך קיצוני — הראו את הודעת האנומליה שמתפרסמת בזמן אמת ל-`anomaly-detected` (עם Consumer בדיקה שמאזין לה), מיד אחרי שהערך החריג נשלח דרך Collector.
