פרויקט מסכם — Pipeline: Postgres + Mongo → דוח יומי
הגדרת הפרויקט
זהו הפרויקט המסכם של יחידת Python ו-Pandas כולה: צנרת ETL אמיתית שצריכה לשאוב נתונים משני מקורות שונים לגמרי — Postgres (SQL, מיחידת EF Core) ו-MongoDB (Document DB, מיחידת NoSQL) — לאחד ולעבד אותם עם Pandas, לכתוב דוח יומי ל-CSV, ולזהות אנומליות (חריגות סטטיסטיות) שדורשות תשומת לב מיידית. אין כאן כלי טכני חדש — כל שכבה (Extract/Transform/Load, ניקוי, קיבוץ, logging) כבר נלמדה בנפרד ביחידה; המשימה כאן היא חיבור מלא לצנרת אחת עובדת, על נתונים משני עולמות שונים (SQL מובנה + NoSQL גמיש) שמתאחדים דרך Pandas כמכנה משותף.
מה צריך להיות מוכן בסוף
דרישות:
- Extract מ-Postgres (הזמנות) ומ-MongoDB (אירועי משתמש), עם logging על כמות הרשומות שנשלפו מכל מקור
- Transform: ניקוי נתונים חסרים, קיבוץ לפי מוצר, וזיהוי אנומליה — ערך שחורג מ-2 סטיות תקן מהממוצע מסומן לבדיקה, לא “מתוקן” אוטומטית
- Load: דוח CSV יומי (שם הקובץ כולל תאריך) + רישום
warningבלוג על כל אנומליה שזוהתה - עטיפת כל התהליך ב-
try/exceptעםlogging.errorעל כל כישלון, כך שריצה עתידית (מתוזמנת) לא נחסמת
קריטריוני הצלחה:
• הרצת ה-Pipeline המלא מייצרת קובץ CSV עם סיכום נכון של הנתונים משני המקורות
• הזרקת נתון קיצוני מכוונת גורמת לו להיות מסומן כאנומליה, עם warning מתאים בלוג
• כישלון מכוון באחד המקורות (למשל Mongo לא זמין) נתפס ומתועד כ-error, בלי לקרוס את כל התוכנית
• הרצה חוזרת באותו יום כותבת לאותו קובץ דוח (לפי תאריך), ולא יוצרת קבצים כפולים