
הטקסט המלא של הדקות הראשונות בהרצאה «בניית מודל» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
פעם הקודמת סיימנו בעצם את משיכת כלל הטבלאות למערכת שלנו, למודל, וידאנו שהקשרים תקינים, ובעצם אנחנו יכולים להתחיל ולבנות את המודל.
משהו שאפשר למשל לעשות שלא יכולנו קודם, זה לספור למשל לכל מוצר, שזה טבלת הפרודקטס, כמה לקוחות קנו אותו. אז בואו נעשה גרף כזה, נביא גרף עמודות, בר, זה קצת יותר מקום, וה-dimension שלנו, המימד, זה בעצם product name,
זה את שם המוצר, אוקיי והמז'ר זה לספור את הלקוחות עוד פעם אני רוצה דוח שמראה לי כל מוצר כמה לקוחות קנו אותו אז אני אספור את קסטומר איידי קסטומר איידי וקאונט אוקיי בוא ניתן לזה כותרת number of customers for each product ולמשל אני יכול לראות פה לכאורה של המוצר הזה יש 54 אבל אם אני אביא בשביל הבדיקה טבלה ובוא נביא לטבלה נניח את טבלת
אני רוצה להביא קצת נתונים על הלקוחות, אני מביא את Customer ID ואת Customer Name, אין לי Name שלי, סליחה, Last Name ו-First Name ונגיד גם מאיזה מדינה הוא, בסדר? זה משהו שעוד לא עשינו טבלה אבל אורייקט מאוד מאוד פשוט, אפשר לראות כל מיני נתונים בצורה טבלאית.
עכשיו אני רוצה לבדוק את הצמיע הזה, בעצם ראינו שפה יש 54 לקוחות שקנו את המוצר הזה, בואו ננחץ, אז אתם זוכרים שלחיצה מתוך אגף גב כן מבצעת סינון כמו סינון מהצד, אני בעצם בחור רק על המוצר הזה לכאורה יש לי 54 לקוחות שקנו אותו אבל בוא נעשה ייצוא של הטבלה הזאת לאקסל עכשיו אני מזכיר מכיוון שבעצם סיננתי על המוצר הזה כל המערכת כל המסך וגם הכתבים האחרים
שהיו מסוננים על המוצר הזה ולכן גם הטבלה הזאת כמובן צריכה לשקף את אותם לקוחות שקנו את אותו מוצר שלחצתי אז אם אני אעשה קליק ימני אקספורט אקספורט דאטה הוא בעצם מייצג את זה לאקסל ועם האקסל שלי ושימו לב שיש לי פה רק 44 לקוחות בעייתי לא הרי פה ראינו עוד פעם אני חוזר 54 לקוחות ספרתי customer ID
ראו 54 לקוחות למה אני רואה בטבלה רק 44 לקוחות אז זה משהו מאוד חשוב שאנחנו לימד היום כשאנחנו סופרים אנחנו מפעילים פונקציית קאונט כמעט תמיד אנחנו נעשה קאונט דיסטינקט מה הכוונה לספור רק את הייחודים למה בעצם יש פה 54, למעשה יש 44 לקוחות,
זאת אומרת שיש לקוחות שרכשו כמה פעמים את אותו מוצר, אוקיי? אז בואו נחזור רגע לדאטה מודל view שלנו, נבין את זה קצת יותר טוב.
קשר בין קסטומר ל-order items למעשה, ששם יש את המוצר, עובר דרך טבלת orders, בסדר? לקוח מופיע בהזמנות, ובהזמנות יש מוצרים. עכשיו, מאוד יכול להיות, וזה מה שקורה פה, שלקוח מסוים רכש בהזמנות שונות את אותו מוצר כמה פעמים, אוקיי?
פה קצת קשה לראות את זה כי זה בעצם אין לי את כל הנתונים אבל זה המצב זאת אומרת אותו לקוח יכול לרכוש כמו שאמרנו הזמנות שונות עם אותו מוצר שוב ושוב וזאת הסיבה ואני חוזר לפה שפה מופיעים לי 44 לקוחות כי אלו 44 לקוחות הייחודיים שקנו את המוצר הזה רק הם מופיעים 54 פעמים בהזמנות שונות ולכן כדי לנטרל את הבעיה הזאת כדי לספור רק פעם אחת ללקוח אני אערוך את הביטוי הזה
במקום count ID אני אכנס לפה אני אלך לנוסחה אחרי ה-account, אחרי הסוגריים ולפני ה-customer ID אני מוסיף את המילה Distinct.
בדרך כלל אתם אמורים כבר להכיר מרמת ה-SQL, וגם ב-SQL יש את המילה Distinct, אבל פה זה לא SQL, זה ביטוי פנימי של ה-Click Sense.
היא אומרת תספור את ה-customer ID אבל באופן ייחודי, זאת אומרת אם הלקוח מופיע כמה פעמים, תספור אותו אך ורק פעם אחת. והנה עכשיו אתם רואים שזה צנח וזה 43. 43 הוא 44 כי אני ספרתי גם את שורת הכותרת.
המספר הנכון הוא 43 לקוחות וזה אכן מה שמופיע למעלה לבין הטבלה למטה זה משהו שתזכרו תמיד שאתם סופרים תעשו count distinct ולא count כי count בעצם עלול לייצר לכם כפילויות.
אז אחרי שהבנו את זה אנחנו נחזור קצת לעוד עבודה על הסקריפט אנחנו כמובן נחזור לתצוגות ונראה עוד מגוון אפשרויות של נוסחאות ושל סיכומים שאפשר לעשות אבל בוא נחזור לסקריפט שלנו.
מה בעצם יש לנו בסקריפט היה לנו גיליון ברירת מחדל קוראים לו main עם כל מיני פונקציות ויותר בכל הגדרות אולי נחזור לזה בהמשך ואת הטאב שלנו שקראנו לו שבעצם הביא חמש טבלאות, זאת אומרת התחבר לדאטאבייס קודם כל, זה הביא פשוט חמש טבלאות כמו שהן,
השינוי היחיד שעשינו זה לתת למספר שדות אליאס, זאת אומרת כינוי אחר כדי שלא יתנגשו לנו וכדי לוודא שהקשרים שנוצרים הם הקשרים שאנחנו אכן נמצאים.
אבל כשאנחנו יוצרים מוצר בי-איי או מודל בי-איי כמו שצריך אנחנו לא עובדים ככה, אנחנו לא טוענים ישירות מהדאטאבייס והופ מתחילים לעבוד על התצוגה, זה לא best practice, הדרך הנוכחונה יותר לעבוד הוא לחלק את זה למספר שלבים או למספר שכבות ולמעשה לשלב הראשון אנחנו נקרא אקסטרקט.
מי ששמע את המושג ETL, מושג מאוד חשוב ב-BI, זה בעצם אומר שיש לנו שלושה שלבים בתאנה של נתונים. אקסטרקט זה השלב הראשוני שבו אנחנו טוענים נתונים בצורה גולמית פחות או יותר מהדאטאבייס.
טרנספורם זה ה-T, זה השלב שבו אנחנו מעבדים את הנתונים האלו, מעבדים בעין, זאת אומרת עושים כל מיני מניפולציות ושינויים על נתונים, כל מיני קשרים שאנחנו רוצים לבצע בתוך הסקריפט עצמו נגיע לזה אם זה כל מיני נוסחאות שאנחנו רוצים להפעיל אם זה כל מיני עלייסים שהדבר הנכון הוא לשים את זה בטרנספורם ולא בשלב
האקסטרקט ואנחנו נתקן את זה ועוד כל מיני דברים והשלב האחרון והוא שוב שלב אפשר להגיד רשות שלב הלואוד זה בעצם כשכל המודל הזה מיועד לשרת מודלים אחרים אז הלואוד בעצם מעתיק רק