# מערך שיעור: פרויקט מסכם — ETL Pipeline📋 מערך מרצה

הקשר: פרויקט-שיא ליחידת Python/Pandas כולה (7 שיעורים) — כמו שני הפרויקטים המסכמים הקודמים בקורס (Naive Bayes, EF Core), אין כלי חדש כאן, רק חיבור.

מטרת הפרויקט: הסטודנטים יבנו צנרת ETL מלאה שמאחדת Postgres+MongoDB, עם Anomaly Detection ולוגים.

---

## דגשים להנחיה

- הכנת סביבה מראש (Postgres+MongoDB זמינים, עם נתוני דמה) קריטית — בלי זה, זמן העבודה "נבלע" בבעיות תשתית במקום למידה.
- Anomaly Detection שווה דיון קצר על מגבלותיו (הזכירו את מה שכתוב בדף הפרויקט) — לא להציג את זה כפתרון "מושלם", רק ככלי ראשוני שימושי.
- לפני העבודה העצמאית, סבב-חזרה קצר על השיעורים החשובים במיוחד כאן (Extract/Load מיחידת ה-IO, groupby/agg מ-Transform) יכול לחסוך הרבה תקיעות.

---

## איך להעריך הצלחה

בדקו שהצנרת המלאה רצה מקצה לקצה ומייצרת קובץ CSV עם סיכום נכון משני המקורות. הזריקו נתון קיצוני מכוון ווודאו שהוא מסומן כאנומליה עם `warning` מתאים בלוג. נתקו זמנית את אחד המקורות (למשל עצרו את MongoDB) ווודאו שהכישלון נתפס ומתועד כ-`error`, בלי להפיל את כל התהליך.

---

## טעויות נפוצות של סטודנטים

- מזהים אנומליה ו"מתקנים" אותה אוטומטית בקוד, במקום לסמן אותה לבדיקה אנושית.
- שוכחים `try`/`except` סביב כל ה-Pipeline, כך שכישלון בשלב אחד (למשל Mongo לא זמין) מפיל את הכל בלי לוג ברור.
- מחשבים סטיית תקן על מדגם קטן מדי (פחות מכמה עשרות נקודות) — לא אמין סטטיסטית.

---

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

**שאלת פתיחה:** "עברתם 7 שיעורים ביחידה הזו. איזה כלי (merge, groupby, fillna, requests, to_sql, logging) הרגשתם הכי שימושי, ולמה?"

**מהלך:** תנו לסטודנטים לשקף בקול — זו הזדמנות אבחונית טובה לפני המעבר ליחידת Elasticsearch, ומראה להם עצמם כמה כלים שונים כבר צברו בכלי-עבודה אחד.

**מה המרצה מראה בסוף:** עברו יחד, שלב-שלב, על ה-Pipeline המלא שנבנה — כל פונקציה (`extract`/`transform`/`load`) ומאיזה שיעור ספציפי היא מגיעה — סיכום ויזואלי שממחיש שהפרויקט הוא חיבור, לא נושא חדש.
