Star inactiveStar inactiveStar inactiveStar inactiveStar inactive
 

 מאת: תמיר בר-נצר
לאחרונה נתקלתי בשגיאות בכל הנוגע לחיבור SCD-Slowly changing dimension.

הסבר: SCD היא למעשה טבלה המתארת היסטוריה של מאפיין אחד או יותר.

לדוגמא: אם יש לנו טבלת Fact המכילה תאריך, מספר סוכן, וסכום מכירה נוכל לשמור בטבלה נפרדת מאפיינים של סוכן, לדוגמא אזור. במקרה שכזה נשמור טבלה עם תאריך מ, תאריך עד , אזור ישן ואזור חדש. כמובן שברשומה האחרונה נשמור תאריך עד פקטיבי (לדוגמא 1/1/2999).

הטעות הנפוצה היא שישנה נטיה לחבר את הFact ל SCD באמצעות between. כלומר תאריך מהfact יהיה בין תאריך מ ותאריך עד. כך לכל רשומה בfact נוכל לקשר באופן חד ערכי רשומה מהSCD.

scd

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

במילים אחרות, הדרך הנכונה והיעילה לחבר את הfact והSCD הוא באמצעות יצירת מפתח מיוחד המתאים כל רשומה בfact לSCD. לאחר יצירת המפתח, נוכל לבצע חיבור פשוט fact.key=scd.key.

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

הדף שלנו בפייסבוק

מעניין? שתפו דף זה באמצעות הטלפון הנייד

מאמרים

מגמות של ביג דאטה בעולם הביטוח
CA Technologies
SSIS - Buffer Size Optimization
קטגוריה ראשית
בדיקות BI ו-DWH לעומת הבדיקות בתחומים אחרים
קטגוריה ראשית
איסוף דרישות לפרויקטי BI
קטגוריה ראשית
כח המידע במיקוד
קטגוריה ראשית
0

Microsoft

Oracle

IBM

Informatica

Sap

SAS

Qlikview

Cloudera

Machine Learning