PracticU

SCD - Slowly Changing Dimension - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס SSIS › SCD - Slowly Changing Dimension - חלק 1
מילון מושגים:
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
סכמה - המבנה הלוגי של מסד נתונים: הגדרת הטבלאות, העמודות, הסוגים והקשרים ביניהם.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
SQL Server - מערכת ניהול מסדי נתונים יחסיים של מיקרוסופט, הנשלטת בשפת T-SQL.
SSIS - רכיב של SQL Server לבניית תהליכי ETL להעברה ולעיבוד של נתונים בין מקורות.

SCD - Slowly Changing Dimension - חלק 1
מה קורה בדאטה וויירהאוס כשנתון במערכת התפעולית משתנה? השיעור מציג את SCD (Slowly Changing Dimension), המתודולוגיה שבה משקפים שינויים ממערכת המקור לטבלאות ה-Dimensions, ואת הסוגים השונים שלה.
סוגי ה-SCD
1. רקע: בסכמת Star Schema יש טבלת Fact במרכז וטבלאות Dimensions סביבה. נתוני ה-Dimensions נשלפים בתדירות שנקבעת לפי דרישות המערכת מהמערכות התפעוליות אל הדאטה וויירהאוס.
2. Type 0: השינויים לא משתקפים בדאטה וויירהאוס. לפי הדובר משתמשים בו בדרך כלל לא.
3. Type 1: דורסים את הערך הישן בערך החדש (overwrite) ולא שומרים היסטוריה. אם לקוח שינה מספר טלפון, אי אפשר לשחזר את המספר הקודם.
4. Type 2: יוצרים רשומה חדשה לכל שינוי. מוסיפים שלוש עמודות תקורה: Current, Start ו-End. הרשומה הפעילה היא זו שה-End שלה NULL (או תאריך רחוק מאוד), ועמודת ה-Current היא בוליאנית (Yes/No או True/False) ורק הרשומה התקפה מקבלת Yes. כך אפשר לשחזר כל מצב עבר, ולשלוף את המצב הנוכחי לפי Current = Yes. בדוגמה, לקוח שעבר מעיר אחת לאחרת מקבל רשומה נוספת, ומפתח ה-Surrogate Key משתנה בין הרשומות.
5. Type 3: מוסיפים עמודה אחת ושומרים רק שתי רמות, למשל Prior ו-Current. אי אפשר לדעת את המצב שלפני המצב הקודם, ולכן זה פחות טוב מ-Type 2 למרות המספר הגבוה יותר.
6. Type 4 ו-Type 6: ב-Type 4 משתמשים בטבלה נפרדת שמחזיקה את ההיסטוריה. הדובר מציג את Type 6 כשילוב עם Type 1, ללא פירוט נוסף.
שימו לב
בדרך כלל לא בוחרים מתודולוגיה אחת לכל המערכת, אלא לפי העמודה: בחלק מהעמודות דורסים (Type 1), באחרות משתמשים ב-Type 2 או 3.
ב-SQL Server 2016 נוספה אפשרות לשמור היסטוריה כבר בדאטאבייס התפעולי באמצעות Temporal Table. את זה ואת התמיכה של SSIS בסוגים השונים יראו בהדגמות הבאות.
אחרי השיעור אפשר להסביר מה ההבדל בין דריסה, רשומה נוספת ועמודה נוספת, ולבחור סוג לפי הצורך בהיסטוריה.
השיעור הבא בקורס: SCD - Slowly Changing Dimension - חלק 2

פרקי ההרצאה: SCD - Slowly Changing Dimension - חלק 1

  1. 00:00

    מהו Slowly Changing Dimension

  2. 00:53

    שיקוף שינויים ב-Data Warehouse

  3. 01:28

    SCD Type 0 ו-Type 1

  4. 02:22

    דריסת מספר טלפון ב-Type 1

  5. 02:59

    Type 2 ושמירת היסטוריה

  6. 03:39

    עמודות Current, Start ו-End

  7. 04:23

    שחזור ההיסטוריה עם Surrogate Key

תמלול ההרצאה: SCD - Slowly Changing Dimension - חלק 1

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

  1. 00:02

    בשיעורנו היום נעסוק בנושא שנקרא Slowly Change Dimension, או בשמו המקוצר SCD. Slowly Change Dimension, היכולת שלנו לנטר שינויים שנעשים בתוך הדאטאבס אופרשיונל ולשקף אותם בתוך הדאטה וייראוס.

  2. 00:23

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

  3. 00:38

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

  4. 00:53

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

  5. 01:11

    Slowly Changing Dimension משמעותו שאנחנו משקפים שינויים הנעשים בתוך מערכת א', כאשר מייבאים ממנה נתונים לתוך מערכת ב' במספר צורות או במספר רמות שונות של שינוי. את הדברים הללו אנחנו יכולים לראות בשקף הנתון שלפנינו.

  6. 01:31

    כאשר אנחנו עובדים ב-slowly changing dimension type 0 המשמעות היא שהשינויים עצמם אינם משתקפים אחורה. זאת אומרת ששינויים בתוך המערכת התפעולית אינם באים לידי ביטוי בתוך המערכת ה-data warehouse.

  7. 01:49

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

  8. 02:00

    לעומת זאת, טייפ מספר 1 overwriting the old value מה שאנחנו עושים ברגע שמגיע נתון אנחנו לא שומרים היסטוריה אלא פשוט דורסים overwrite דורסים את הנתון הישן יחד עם הנתון החדש שהגיע כרגע מגזירת הנתונים ואין לנו מעקב וכתוצאה מהגזירה הזאת אנחנו מאבדים את המידע שהיה לפני כן בואו

  9. 02:24

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

  10. 02:51

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

  11. 03:10

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

  12. 03:28

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

  13. 04:02

    התוקף של אותה רשומה וסוף התוקף הנכונות של הרשומה הנתונה. במידה ו-end נמצא לנו בנ"ל, הוא ערך נ"ל או שהוא מספר גדול מאוד, אז מדובר על רשומה שכרגע היא בתוקף וכרגע זה הנתון הפעיל נכון לעכשיו.

  14. 04:20

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

  15. 04:36

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

לקורס המלא: קורס SSIS אונליין

ההרצאה הקודמת: הסבר על Surrogate Key

ההרצאה הבאה: SCD - Slowly Changing Dimension - חלק 2

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

  • Dimension Resource

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

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