
Current = Yes. בדוגמה, לקוח שעבר מעיר אחת לאחרת מקבל רשומה נוספת, ומפתח ה-Surrogate Key משתנה בין הרשומות.הטקסט המלא של הדקות הראשונות בהרצאה «SCD - Slowly Changing Dimension - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בשיעורנו היום נעסוק בנושא שנקרא Slowly Change Dimension, או בשמו המקוצר SCD. Slowly Change Dimension, היכולת שלנו לנטר שינויים שנעשים בתוך הדאטאבס אופרשיונל ולשקף אותם בתוך הדאטה וייראוס.
בדוגמה שלפנינו, סכמה, סטאר סכימה, כפי שראינו בעבר, של דאטה וייראוס, שבאמצע יש לנו את טבלת fact, ומסביבה נמצאים כל טבלאות דיימנשיינס המחוברים לאותה טבלת פאקט.
נתונים אלו של הדיימנשיינס נשלפים מדי יום ביומו או בתדירות שנקבעת על ידי הדרישות המערכת מתוך הדאטאבסים התפעוליים, מתוך שאר מערכות הליבה שמשרתים את החברה, ונשלפים כאן לתוך הדאטה וייראוס.
מה קורה אם אחד הנתונים השתנה? האם גזירת הנתונים, הבאתם לתוך הדאטה וייראוס, כיצד היא משקפת את אותו שינוי? המתודולוגיה שבה אנחנו משתמשים על מנת לשקף את הנתונים הללו בתוך הדאטה וייראוס נקראת Slowly Change Dimension.
Slowly Changing Dimension משמעותו שאנחנו משקפים שינויים הנעשים בתוך מערכת א', כאשר מייבאים ממנה נתונים לתוך מערכת ב' במספר צורות או במספר רמות שונות של שינוי. את הדברים הללו אנחנו יכולים לראות בשקף הנתון שלפנינו.
כאשר אנחנו עובדים ב-slowly changing dimension type 0 המשמעות היא שהשינויים עצמם אינם משתקפים אחורה. זאת אומרת ששינויים בתוך המערכת התפעולית אינם באים לידי ביטוי בתוך המערכת ה-data warehouse.
ה-dimensions שלנו, המידע שמחזיק את אותם אובייקטים, אינם משתנים בכל שינוי. זהו טייפ שבו אנחנו על פי רוב לא נשתמש.
לעומת זאת, טייפ מספר 1 overwriting the old value מה שאנחנו עושים ברגע שמגיע נתון אנחנו לא שומרים היסטוריה אלא פשוט דורסים overwrite דורסים את הנתון הישן יחד עם הנתון החדש שהגיע כרגע מגזירת הנתונים ואין לנו מעקב וכתוצאה מהגזירה הזאת אנחנו מאבדים את המידע שהיה לפני כן בואו
נסתכל רגע בדוגמא בדוגמא שלפנינו בטייפ 1 ברגע שלקוח שלנו התקשר ושינה את מספר הטלפון שלו על פי המתודולוגיה הזאת, מספר הטלפון משתנה וכעת נשמר מספר טלפון חדש, אין לנו שום מידע ואין לנו שום יכולת לשחזר את המספר טלפון הישן, מאחר ואנחנו כאמור דורסים את הנתונים.
זה המצב בטייפ 1. בטייפ מספר 2 אנחנו יוצרים Additional Records, עמודות נוספות בתוך הטבלה, שמטרתן לתת לנו אינדיקציה מהו המידע שרלוונטי כרגע ומהו המידע ההיסטורי, מהו השתנה במהלך הזמן.
טייפ 1 דורס לנו את הנתונים ואילו טייפ מספר 2 יוצר לנו שכבה נוספת, עומק נוסף של הרשומות עצמם על מנת שנוכל לראות את המצב הנוכחי ואת המצב ההיסטוריה שהיה לפי העמודות הנוספות.
נבחן את המצב בטייפ 2 הרי לפנינו בדוגמה הבאה ביצענו שינויים עבור אמי אלברטס ששינה לנו את העיר המגורים שלו מוונקובר שינינו אותה לדורונטו על מנת לשמור היסטוריה של הנתונים כלומר מבנה עם עומק תלת מימן של הטבלה מה שאנחנו יוצרים אנחנו מוסיפים תקורה של שלוש עמודות עמודת קארנט עמודת סטארט ועמודת אנד העמודות סטארט ו-end משקפות כל אחת בהתאם לשמם את תחילת
התוקף של אותה רשומה וסוף התוקף הנכונות של הרשומה הנתונה. במידה ו-end נמצא לנו בנ"ל, הוא ערך נ"ל או שהוא מספר גדול מאוד, אז מדובר על רשומה שכרגע היא בתוקף וכרגע זה הנתון הפעיל נכון לעכשיו.
אם אנחנו רוצים להתחקות אחר ההיסטוריה, אז אנחנו יכולים לראות בהתאם לטווח תאריכים שיש לנו כאן נתונים נוספים. במצב הזה של טייפ 2 יש לנו אפשרות לשחזר כל נתון שקרה בעבר עבור אותו לקוח.
כלומר, עם הזמן נוצר לנו עבור אותו מועמד, עבור אותו לקוח, עבור אותו מפתח. ה-Surgate Key שלנו רק משתנה ומתקדם, יהיו לנו מספר Surgate Key, כלומר מספר מזהים, אבל הם בעצם אותו,