כיצד להוסיף חגים אל מימד הזמן?

Eliran Azulayלכבוד חג הפסח, טיפ BI לחגים!

סביר שבארגון שלכם ירצו לעשות חיתוכים על נתוני ה-BI על פי חגים.

לצורך העניין: "כל המכירות שנעשו בתקופת החג", או "כמות שעות העבודה שנעשו ע"י עובדים במחלקה X ללא סופי שבוע וחגים". כיצד ניתן לסנן או לחתוך על תקופת החגים? כמובן שבעזרת Attributes רלוונטים במימד הזמן. ההנחה הבסיסית היא שכבר יש לכם מימד זמן והוא מתעדכן מדיי פעם. במידה ואין לכם משהו בסגנון, אני ממליץ להשתמש בפרוצדורה שבונה מימד כזה בצורה אוטומטית: דוגמא עבור Oracle, או  עבור Sql Server.

כעת, בהנחה שיש לכם מימד זמן שכולל נתונים 10 שנים קדימה, כעת ניתן להכניס אליו עמודות חדשות כמו "Is_Holiday" ו-"Holiday_Name". איך עושים את זה? קודם כל צריך מקור נתונים. פיתרון מאוד נוח הוא www.hebcal.com, שיג'נרט (מהמילה Generate) לכם CSV עם כל החגים מתאריך מסוים לתאריך מסוים. המטרה של האתר היא ליצור לוח שנה אל האאוטלוק\אייפון\Google Calander\אחר שלכם, אבל הטריק הוא שאם תבקשו ליצור לוח עבור Outlook 97-2003, האתר יציע לכם לקבל את הלוח כ-CSV, מה שיקל על הבעיה (באג קטן: נראה שהחגים יתקבלו רק באנגלית).

המדריך המקוצר:

1.  נכנסים לאתר ובוחרים לקסטם:

DimTime_1

2. מקסטמים כרצונכם את ההגדרות של לוח השנה ובוחרים Create Calander

DimTime_2

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

DimTime_3

4. במקום ללחוץ על השורה המוצהבת, נלחץ כפתור ימני ואז Copy Link Shortcut (או פקודה אחרת בסגנון, תלוי בדפדפן שלכם) ואז נקבל כתובת שדומה לזו:

http://www.hebcal.com/hebcal/index.cgi/hebcal_2013_2017_eur.csv?dl=1;year=2013;month=x;yt=G;v=1;nh=on;nx=on;mf=on;ss=on;i=off;lg=s;vis=on;c=off;geo=zip;euro=1

ניתן לשחק עם הפרמטרים כרצונכם. הפרמטר הכי חשוב הוא בהתחלה: שנת ההתחלה (בדוגמא: 2003). הקובץ מספק את הנתונים 5 שנים קדימה. כך תוכלו לבנות את מימד הזמן שלכם שנים קדימה.

כמובן שלאחר שיווצר לכם ה CSV אתם צריכים להחליט כיצד תכניסו אותו אל תוך מימד הזמן: ניתן לקסטם את הקוד שיוצר את מימד הזמן שישלוף מטבלה שתיבנה מה CSV הנ"ל, או שניתן לבנות תהליך ETL שלוקח את נתוני CSV ומעדכן את המימד הנוכחי כרצונכם. זה כבר תלוי בכם ובצורת העבודה שלכם.

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

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

חג שמח!

אלירן אזולאי.