משך: 1.5 שעות אקדמיות (68 דקות).

מטרת השיעור: הסטודנטים יבנו Aggregations עם Bucket ו-Metric מקונן, כזיהוי לרעיון החוזר מ-3 טכנולוגיות קודמות.

בסוף השיעור הסטודנטים צריכים: לבנות terms Aggregation, לקנן Metric בתוכו, ולשלב עם query לסינון מקדים.

דגש קריטי: זו הפעם הרביעית שאותו רעיון (GroupBy) מופיע בקורס — הדגישו את זה במפורש כ"רגע איסוף" ולא נושא נפרד.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותשאלו: “כמה מוצרים בכל קטגוריה — זה match/term/range?”
הרעיון: terms Aggregation20 דקותBucket, size:0
Metric מקונן20 דקותavg בתוך terms
query + aggs יחד13 דקותסינון מקדים
השוואה ל-3 הטכנולוגיות הקודמות5 דקותLINQ/Mongo/Pandas — טבלת סיכום
תרגול מודרך5 דקותתרגיל 1+2

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

  • זהו רגע טבעי לעצור ולבנות עם הכיתה טבלת השוואה של ארבע הטכנולוגיות (LINQ GroupBy, MongoDB $group, Pandas groupby+agg, Elasticsearch terms+metric) — מחזק מאוד את ההבנה שזו אותה בעיה, ארבע שפות.
  • “size”:0 הוא פרט טכני קטן שקל לשכוח — הדגישו את הסיבה (לא רק “צריך לכתוב את זה”) כדי שיזכרו.
  • Bucket מול Metric שווה הבחנה מפורשת על הלוח — זה מונח שחוזר בתיעוד הרשמי ובראיונות עבודה.

מושגים

Aggregation — חישוב סטטיסטי על תוצאות. terms — Bucket, קיבוץ לפי ערך. avg/sum — Metric, חישוב בתוך Bucket.


תרגיל חשיבה

שאלת פתיחה: “עברתם על אותו רעיון (GroupBy) ב-4 טכנולוגיות שונות בקורס הזה. מה השתנה בין כל אחת, ומה נשאר זהה?”

מהלך: בנו יחד טבלה על הלוח: LINQ (GroupBy+Sum/Count), MongoDB ($group), Pandas (groupby+agg), Elasticsearch (terms+Metric). הובילו לתובנה המסכמת של כל הקורס עד כאן: הבעיות העסקיות חוזרות על עצמן בכל טכנולוגיה — מי שמבין את הרעיון (לא רק syntax) לומד טכנולוגיה חדשה הרבה יותר מהר.

מה המרצה מראה בסוף: אם יש זמן, הריצו את אותה שאלה בדיוק (“כמה מוצרים/הזמנות בכל קטגוריה, וממוצע מחיר”) בשתיים מהטכנולוגיות זו לצד זו (למשל Pandas groupby+agg מול Elasticsearch terms+avg) — הראו שהתוצאה הסופית זהה במהות, רק הדרך שונה.