PracticU

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

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

קשרים בין הטבלאות בתוך Qlik Sense - חלק 2
השיעור מוסיף את טבלת order items וממשיך לתקן את שמות השדות. בסופו מופיעה טבלה סינתטית שיוצר Qlik Sense מאליו.
שמות השדות ב-order items
1. ID הופך ל-OrderItemID, כדי שלא יתנגש עם ID בטבלאות אחרות.
2. OrderID מקשר להזמנה.
3. ProductID מקשר למוצר.
4. UnitPrice ו-Quantity נשארים כפי שהם.
כתיבת הסקריפט
כל טבלה מסתיימת בנקודה-פסיק, כדי שהכלי יידע להפריד בין הטבלאות. פסיק לפני FROM יוצר שגיאת syntax. המרצה ממליץ לכתוב כל שדה בשורה נפרדת, עם הפסיק אחרי השדה, וליישר את הקוד כדי לשמור על סדר.
מוצר ומחיר
טבלת products מכילה גם ProductID וגם UnitPrice. מחיר הקטלוג משתנה לאורך הזמן, ולכן המחיר בשורת ההזמנה צריך להישמר כפי שהיה בזמן ההזמנה.
טבלה סינתטית
כששתי טבלאות חולקות שני שדות, כמו ProductID ו-UnitPrice, Qlik Sense יוצר טבלה סינתטית (Synthetic Key) כדי לקשר ביניהן. זו אזהרה שהקשר אינו נכון, ויש לתקן אותו. הטיפול בכך מוסבר בשיעור הבא.
השיעור הבא בקורס: קשרים בין הטבלאות בתוך Qlik Sense - חלק 3

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

  1. 00:00

    טעינת Order Items ושינוי שמות שדות

  2. 01:01

    הרצת הסקריפט ובדיקת הקשרים

  3. 02:12

    הוספת טבלת המוצרים Products

  4. 02:44

    סידור הקוד בסקריפט לקריאות

  5. 04:40

    שינוי שם השדה ל-Product ID

  6. 05:22

    תיקון שגיאת פסיק בסקריפט

  7. 06:08

    טבלה סינתטית ב-Data Model Viewer

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

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

  1. 00:02

    אז בוא נמשיך עם טבלת order item, ניתן לה שם, order item, נמחק את ה-top thousand trolls, אוקיי, ואנחנו כבר יודעים, אגב, שימו לב שצריך לשים נקודה פסיק בסוף כל טבלה, כדי שהוא ידע להפריד ביניהם, גם פה אנחנו כמובן צריכים להפריד בין,

  2. 00:24

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

  3. 00:32

    אז גם פה אנחנו קודם כל ניתן ל-id שם order item, אמרנו זה משהו מומלץ לעשות כשיש שדות עם שם כללי אז בעצם לתת להם שם יותר משמעותי שנדע לאיזה תוואי הם שייכים.

  4. 00:49

    אז ID הפך ל-Order Item ID, Order ID. עכשיו תשימו לב שכבר Order ID אכן תואם לשם שאנחנו נתנו כבר. בסדר? אז הקשר הזה אמור להיווצר בסדר גמור. Product ID, Unit Price ו-Quantity.

  5. 01:07

    זה השדות החדשים שיגיעו לנו. כמובן שאני מזכיר כל עוד אני לא מריץ הדאטה עדיין לא מגיעה ואם אני אנסה עכשיו לבנות גרף עם שדה product ID הוא לא יכיר בכלל את השדה כי לא הרצתי אז בואו נריץ והוא סיים בואו נראה את הטבלאות שנוצרו כרגיל אז הנה יש לנו כבר שלוש טבלאות customer ו-orders שהיה לנו והטבלה

  6. 01:38

    השלישית ה-order items בואו נראה אם הוא יכין לצרה נכון את הקשר נראה שכן זאת אומרת ב-order item ID כבר ב-order items השדה order ID מקשר לי לטבלת orders בשדה order ID ולצורך ההדגמה השורת הזמנה הזאת שורה מספר אחת שקשורה להזמנה מספר אחת אכן מקושרת אצלו להזמנה מספר אחת בוא נמשיך נביא

  7. 02:04

    כבר את כל חמש הטבלאות שלנו אז היה לנו customer order order item נביא עכשיו את product קשור לorder item כי בעצם כל שורת הזמנה היא בעצם קשורה למוצר מסוים אז בוא נביא את טבלת המוצרים product ונדביק נקרא לזה פרודקט, אגב אני ממליץ ככה אני גם נוהג לעשות גם סדר באיך שכותבים את הקוד, זאת אומרת שלא יהיו רווחים מיותרים והכל יהיה מיושר אותו דבר כמובן שאין לזה

  8. 02:57

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

  9. 03:26

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

  10. 03:44

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

  11. 03:57

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

  12. 05:01

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

  13. 05:58

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

  14. 06:33

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

  15. 06:46

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

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

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

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

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

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

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

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