PracticU

Qlik Join - חלק 3

בלי כתוביותעם כתוביות
PracticU › קורס BI - ניתוח מסדי נתונים - Qlik Sense › Qlik Join - חלק 3
מילון מושגים:
Qlik - פלטפורמה לניתוח נתונים ולהצגתם בלוחות מחוונים אינטראקטיביים (Business Intelligence).
Join - פעולת SQL שמשלבת שורות משתי טבלאות או יותר על בסיס קשר ביניהן.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.

Qlik Join - חלק 3
בשיעור הזה רואים מה קורה כשמחברים שתי טבלאות בלי שדה מקשר, ואיך מחברים לפי שני שדות יחד.
חיבור בלי שדה מקשר
1. Left Join לפי שדה אחד: טבלת customers מחוברת לטבלת orders לפי Customer ID, כך שכל לקוח מקבל את נתוני ההזמנה שלו.
2. מכפלה קרטזית: בלי שדה מקשר, כל שורה בטבלה אחת מתחברת לכל שורה בטבלה השנייה. בדוגמה 8,099 לקוחות התכפלו לשורות רבות מאוד.
חיבור לפי שני שדות
1. הדוגמה: הנחה משתנה לפי לקוח ולפי שנה, ולכן הטבלה הידנית מכילה Customer ID ושנה.
2. חיבור ישיר: Qlik לא יודע לחבר לפי שני שדות בין טבלאות נפרדות. הוא יוצר מפתח סינתטי, ולכן עדיף לחבר את הטבלה ישירות לטבלת ההזמנות לפי שני השדות המשותפים.
לפני כל חיבור צריך לבדוק איזה שדה מזהה כל רשומה, ואם יש שני שדות משותפים הם חייבים להופיע בשתי הטבלאות.
השיעור הבא בקורס: Qlik Join - חלק 4

פרקי ההרצאה: Qlik Join - חלק 3

  1. 00:00

    חזרה על Left Join ושדה מקשר

  2. 00:59

    מה קורה בלי שדה מקשר

  3. 01:36

    הדגמת מכפלה קרטזית בטבלאות

  4. 02:48

    החזרת השדה המקשר לטבלה

  5. 03:31

    Join לפי שני שדות: לקוח ושנה

  6. 04:08

    הוספת Customer ID לטבלת ההנחות

  7. 05:26

    טבלת Discounts באינליין

תמלול ההרצאה: Qlik Join - חלק 3

הטקסט המלא של הדקות הראשונות בהרצאה «Qlik Join - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שוב שלום, אנחנו ממשיכים בנושא הג'וינים, החיבור בין שתי טבלאות לטבלה אחת, התאחד אותם לטבלה אחת, אז ראינו left join שבעצם מחבר שמאלה, זאת אומרת אני על בסיס טבלה מסוימת אני מחבר אליה עוד טבלה, הן מתאחדות לטבלה אחת, והזכרנו שבעצם צריך שיהיה שדה אחד שיקשר בין שתי הטבלאות.

  2. 00:25

    בואו נחזור לסקריפט, נזכר בזה, למשל היה לנו טבלת orders ואחר כך אישרנו אותה לעצמה כדי להביא לכל לקוח, סליחה, אישרנו מטבלת קסטומרס כדי להביא לכל לקוח בעצם את ההזמנה הראשונה שלו מטבלת אורדרס.

  3. 00:45

    אז עשינו left join, בעצם יצרנו שני השדות האלו בטבלת קסטומרס על בסיס קסטומר ריידי. חייב שיהיה בעצם שדה אחד מקשר בין קסטומרס לאורדרס, זה הקסטומר ריידי שיש לנו גם פה ויש לנו גם פה באורדרס קסטומר ריידי.

  4. 01:04

    מה היה קורה אם לא היינו יוצרים שדה מקשר? בואו נעשה את הבדיקה הזאת, נעשה פה comment ונמשיך להריץ, אני יכול כבר לעצור פה, נשים פה exit script כדי לעשות את הבדיקה, אין לי צורך להמשיך מעבר לזה, גם כדי לחסוך זמן אני יכול לשים את כל האקסטרקט ב-comment אחד ארוך, יש לי להזכירכם, הכל פה בעצם נכתב ל-QVD

  5. 01:30

    ובטרנספורמה אני קורא מה-QVD, אז אני כרגע בשביל הבדיקה מדלג על שלב האקסטרקט, מושך את זה ישירות מה-QVD שנוצר הקצה הקודמת. אז בוא נראה מה קורה כשאני מייצר join אבל שוכח לשים את השדה המקשר ביניהם.

  6. 01:48

    אוקיי, שימו לב מה קרה עכשיו. כמובן, עצרתי את זה בזמן עכשיו, בואו נשים לב כמה רשומות יש לנו בטבלת קסטומר. יש לנו 8099 רשומות, ואם אני אסתכל אני בעצם אראה שאותו קסטומר עדי חוזר לעצמו שוב ושוב ושוב ושוב ושוב והחברות המקורית לא הייתה 8099 שהייתה הרבה פחות.

  7. 02:18

    אז מה בעצם נוצר פה? נוצר מה שנקרא מכפלה קרטזית. מכפלה קרטזית זה אומר שבעצם המנוע פה ייחד בין כל השורות בטבלה א' לכל השורות בטבלה ב'.

  8. 02:30

    במקרה הזה מכיוון שהבאתי מ-orders ל-customers, הוא בעצם חיבר את כל ההזמנות עם כל הלקוחות. הוא לא יתחשב בלקוח, מספר הלקוח הספציפי, כשרק את ההזמנה שלו, הוא חיבר את כל ההזמנות עם כל הלקוחות וכמובן זה מה שנקרא מכפלה קרטזית וכמובן זה יוצר הרבה הרבה מאוד שורות.

  9. 02:48

    אז עשיתי את זה כדי להדגים לכם מה קורה כשבעצם שוכחים לשים את השדה המקשר. אז בואו נחזיר אותו. עכשיו טבלת קאסטומרס בעצם כוללת את המספר המקורי של השירות 91. זה היה המספר.

  10. 03:06

    ובואו נוריד את ה-exit script כדי להריץ מלא ונחזור למצב הראשוני. אגב אפשר לחבר לא רק על בסיס שדה אחד ג'וין גם יותר שניים שלושה ויותר במידת הצורך. אם אני חוזר רגע לירדי שלי פה בעצם סליחה לא לפה כמו שאמרנו שבעצם חיברנו לפי Customer ID. אבל יכול להיות מצב שאני רוצה לחבר לפי שני שדות, בואו נניח שהסנאריו הוא שאני רוצה לתת לנהל טבלה של הנחות ללקוח,

  11. 03:39

    אוקיי? אבל ההנחה היא משתנה לפי שנה, זאת אומרת לקוח, לכל לקוח לכל שנה אני מנהל אחוז הנחה מסוים. אם אני מסתכל פה על טבלת orders היא כוללת גם את Customer ID וגם את ה-Order Ear.

  12. 03:53

    נניח שאני רוצה ליצור טבלה, ניצור טבלה אינליין, טבלה ידנית שמנהלת כמו שאמרתי לכל לקוח לכל שנה את ההזמנה שלו, בואו נגיד ניקח שני לקוחות לדוגמה, 85 ו-79, ובואו נוודא שיש להם, נראה שיש להם שנים מקבילות, כדי שלא סתם נייצר נתונים.

  13. 04:15

    אני אלך לרצוגה רגע. איפה ה-Customer ID שלנו? אין לנו, אז בואו נוסיף Customer ID. אפילו גם נביא אותו למעלה, שיהיה לנו נוח לעבוד איתו. אז בואו נראה אם 85, ואיזה שנים יש לו, 2012 ו-13, זה בסדר. בואו נראה את 79.

  14. 05:04

    כמו יש לו ל-2012 ו-2013 וגם ל-2014, זה בסדר. אז בואו נעשה לכל אחד מהם ל-2012 ו-2013 אחוז הנחה.

  15. 05:12

    אז אני אלך ל-Transform נניח, נניח שנשים את זה פה, אני ארד למטה. אגב, לפעמים יוצרים בין מקטעים, יוצרים מין שורת הערה כזאת שבו התיכון, לא משנה, אני בדרך כלל שם את זה בין כל שני מקטעים עיקריים, כמו שאתם רואים פה, אבל זה באמת עניין של נוחות.

  16. 05:38

    ואני אצור עכשיו טבלה חדשה שנקרא לה Discounts. ונעשה לואוד כוכבית אינליין ככה אנחנו כותבים בגוף הטקסט אותה סוגריים מרובעים שדה אחד של יהיה customer ID כמובן חייב לדייק לכתוב את זה בדיוק באותו אופן אז בוא נראה

לקורס המלא: קורס BI אונליין עם Qlik Sense

ההרצאה הקודמת: Qlik Join - חלק 2

ההרצאה הבאה: Qlik Join - חלק 4

הרצאות קשורות מקורסים אחרים

  • פקודת Select עם Join
  • שליפת קטגוריה עם כל המוצרים שלה - MongoDB Join

קורסים נוספים במסלול

  • קורס DBA אפליקטיבי - שפת SQL למתחילים
  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס Power BI