מערך שיעור: פרויקט מסכם — 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) ומאיזה שיעור ספציפי היא מגיעה — סיכום ויזואלי שממחיש שהפרויקט הוא חיבור, לא נושא חדש.