PracticU

קשרים בין הטבלאות בתוך Qlik Sense - חלק 1

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

קשרים בין הטבלאות בתוך Qlik Sense - חלק 1
השיעור מראה כיצד Qlik Sense יוצר קשרים בין טבלאות, ומדוע צריך לבדוק ולתקן את הקשרים שנוצרו אוטומטית.
קשר אוטומטי לפי שם
Qlik Sense מחבר בין טבלאות באופן אוטומטי לפי שמות שדות זהים. בטבלת orders יש שדה ID שמייצג מספר הזמנה, ובטבלת customers שדה ID שמייצג מספר לקוח. הכלי רואה שם זהה ויוצר ביניהם קשר שגוי.
תיקון באמצעות כינוי (Alias)
1. בטבלת orders נותנים לשדה הלקוח שם מפורש, CustomerID, ולשדה ה-ID שם ברור, OrderID.
2. בטבלת customers נשאר שם השדה ID, כי הוא מזהה הלקוח.
3. שמות כלליים כמו ID מתנגשים בין טבלאות, ולכן עדיף שם שמציין את הישות.
רגישות לאותיות
Qlik Sense רגיש לאותיות באנגלית. CustomerID עם D גדולה ו-CustomerId עם d קטנה לא ייחשבו לאותו שדה. לכן בוחרים כתיב אחד ושומרים עליו בכל הטבלאות.
תיקון אובייקטים
אחרי שינוי שמות השדות, אובייקטים שהתבססו על השם הישן מציגים שגיאה, למשל ספירת ID שנכשלת. צריך לעדכן את הביטוי ידנית, למשל Count(CustomerID), ולבדוק את הפילטרים. השיעור הבא ממשיך עם טבלת order items ועם הבעיה של מפתח סינתטי.
השיעור הבא בקורס: קשרים בין הטבלאות בתוך Qlik Sense - חלק 2

פרקי ההרצאה: קשרים בין הטבלאות בתוך Qlik Sense - חלק 1

  1. 00:00

    מבוא: שתי הטבלאות והקשר שנוצר אוטומטית

  2. 00:41

    הקשר הנכון: Customer ID מול ID

  3. 01:21

    הכרחת הקשר הנכון בעזרת כינוי

  4. 01:59

    כינוי לשדות: ID as customer

  5. 03:06

    שגיאת תחביר: פסיקים כפולים בסקריפט

  6. 03:36

    קשר שלא נוצר בגלל אותיות גדולות וקטנות

  7. 04:11

    בדיקה ב-Data Model Viewer לאחר התיקון

  8. 05:52

    גרפים שהתרוקנו אחרי שינוי שם השדה

תמלול ההרצאה: קשרים בין הטבלאות בתוך Qlik Sense - חלק 1

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

  1. 00:03

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

  2. 00:18

    האם זה הקשר הנכון? התשובה היא לא, כי אם אני הולך לטבלת אורדרס, למדוד בזה את השם הלא נכון, אתה רואה שחסר פה d, לא משנה, טבלת אורדרס, מה מייצג ה-id בטבלת האורדרס?

  3. 00:34

    את ה-id של ההזמנה. אפשר לראות הזמנה אחת, הזמנה מספר 2 וכו'. טבלת קסטומר זה ה-id, הוא ה-id של הלקוח. האם הקשר הוא בין ה-id של הקסטומר ל-id של האורדרס?

  4. 00:46

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

  5. 01:08

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

  6. 01:35

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

  7. 01:57

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

  8. 02:07

    זאת אומרת פה ה-ID הזה הוא בעצם ה-ID של ה-Customer, אז מה שאני אעשה אני אעשה ID as customer customer ID אוקיי זה חלק מ-SQL אתם יודעים כבר את כל זה הרעיון פשוט לתת אליאס לשדה שלא יתנגש לי וגם פה למען הסדר הטוב נקרא לזה Order ID למרות כבר לא התנגשו כי זה לא יותר שם אבל זה תמיד טוב לתת שמות שהם ברורים ID זה שם כללי אז order ID

  9. 02:46

    ובעיקרון זה מספיק כי ה-customer ID עכשיו הזה זהה ל-customer ID הזה תשימו לב רק בשביל ההדגמה נקרא לזה customer ID עם d גדולה אתם רואים שעכשיו זה לא זהים בוא נראה אם זה פתור את הבעיה אני מריץ קודם כל יש לו בעיה זו syntax error משהו עם פסיק נכון יש לו בעצם פעמיים פסיק אוקיי הפסיק פה הפסיקים מופיעים לפני זה אז אני מוחק את זה פה מוחק את זה גם פה והריצה הצליחה אבל בוא

  10. 03:27

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

  11. 03:47

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

  12. 04:07

    די קטנה אז פה נעשה ככה ופה זה כבר קוראים לזה עם כרטום איי די עם די קטנה ועכשיו זה אמור להיות בסדר בואו נשמור בואו נריב בואו נבדוק ב-DataModelViews מה קורה עכשיו אוקיי זה כבר נראה יותר טוב קשר בין Customer ID בטבלת Order וטבלת Customer הופ אבל יש פה בעיה אחרת שלא עשיתי את הסדר הנכון גם בסדר הוא שינה את הסדר שלהם בואו נלך עוד

  13. 04:36

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

  14. 05:35

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

  15. 05:52

    למה? אתם רואים ששני הגרפים בעצם כבר לא מציגים כלום אני בוחר אחד מהם הולך לדאטה אתם רואים שפה באדום קאונט איי די בסדר המדד שבעצם ספר לי לקוחות לא עובד הוא אדום למה כיוון שאין לי כבר שדה איי די נכון לפני ולכן ה-ID ייצג את מספר הלקוח לפני ששיניתי

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

ההרצאה הקודמת: הגדרות בתוך הגרפים של Qlik Sense - חלק 5

ההרצאה הבאה: קשרים בין הטבלאות בתוך Qlik Sense - חלק 2

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

  • תנאי בתוך תנאי
  • יצירת מחלקות - Model Classes - לתיאור הטבלאות שבמסד הנתונים
  • פקודת Select בתוך Select
  • אובייקט בתוך אובייקט ב-PowerShell

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

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