האמת רצינו לצאת בפוסט דרמטי שאומר שסוף סוף יש שכבה סמנטית בטאבלו. אז לא, זו לא שכבה סמנטית, וההודעה קצת פחות דרמטית, אבל בהחלט שינוי כיוון משמעותי שיביא איתו כנראה עוד הרבה בהמשך. בדקנו את ה-relations החדשים שיש בגרסת טאבלו 2020.2, שם קוד Noodle. שימו לב שהגרסה עדיין בבטא. אלו המסקנות.
טאבלו במשך שנים עמדה מאחורי התפיסה שאין צורך בשכבה סמנטית. המוצר שהתחיל מכלי תחקור למשתמשי קצה והפך עם השנים להיות הכלי הטוב בעולם לתחקור נתונים, עמד מול כל כלי האנטרפרייז, עם מודלים מורכבים מאד של מידע וטען שאין בכך צורך. הגישה הזו אילצה אותנו לא מעט פעמים לעקם את הפתרון כדי להתאים למגבלה, כי מצד אחד זהו באמת כלי התחקור הכי טוב שיש, מצד שני במודלים מורכבים מצאנו את עצמנו מייצרים Data Sources שונים ומחברים את המידע ב-Data Blending ברמת הדוח, וזהו כמובן חסרון מכיוון שנדרש לעשות זאת בכל דוח שמציג נתונים ברמות גרנולריות שונה.
אז מהו בכל זאת השינוי הגדול? נוספה רמה של קשרים בין מה שנקרא בגרסאות קודמות data sources. בגרסאות קודמות, כל data source היה מכיל join בין טבלאות פיזיות כך שהייתה נוצרת טבלה אחת משוטחת. וכל טבלה שלא יכלה להתחבר עם Join כלשהו באותו data source חייבה יצירה של data source חדש. לעומת זאת בפיצ'ר החדש - אפשר לחבר בין מספר טבלאות לוגיות. כל טבלה לוגית מכילה קשרים של join בין טבלאות פיזיות. כל data source יכול היה לכיל מספר טבלאות לוגיות שלא מתחברות ב-join אחת עם השניה אלא באמצעות Noodle - קשר יחיד לרבים, יחיד ליחיד או רבים לרבים. הבשורה היא שטאבלו לא משטח את כל הקשרים לטבלה אחת גדולה אלא טוען כל טבלה לוגית בנפרד ועדיין אפשר ליצור אינטרקציה בין טבלאות לוגיות אלה.
ולא פחות חשוב, ניתן לחבר שני מדדים בגרנולריות שונה וטאבלו לא יכפיל את הרשומות. למשל במצב של שורת חשבונית ופריטים בחשבונית. בגרסאות קודמות, אם היינו שמים את טבלת חשבונית וטבלת פריטים בחשבונית באותו data source, אז הגרנולריות של חשבונית הייתה נשברת לפי פריטים ושורות החשבונית היו משתכפלות. לעומת זאת, במודל החדש, ה- Noodle מאפשר חיבור בין שתי הטבלאות כך שנשמרת הגרנולריות של כל אחת ואז הנתונים לא משוכפלים, מכאן שאפשר לחבר שתי טבלאות fact עם מימד אחד משותף ועדיין לשמור על הגרנולריות של כל אחד מה-facts.
מה אי אפשר עדיין?
אי אפשר לחבר שתי טבלאות fact עם יותר ממימד אחד משותף. כלומר אם יש מספר מימדים המשותפים לשני facts, לא נוכל לחבר אותם האחד לשני דרך המימדים אלא נצטרך ליצור מכל המימדים המשותפים מימד אחד ורק אז נוכל לחבר אותו עם הfacts.
איך זה משפיע עליכם?
- בכל פעם ששיטחתם את המידע לטבלה אחת גדולה, ניתן לחזור למודל רגיל ופשוט יותר
- בכל מקום שהשתמשתם בפונקציית LOD בעקבות גרנולריות שונה בין טבלאות, מומלץ לעבור למודל החדש. LOD היא פונקציה מאד יקרה בהיבט של ביצועים.
- אם יש לכם מספר facts שלהם מימד אחד משותף תוכלו לשים את כולם באותו data source ולחבר אותם עם המימד המשותף. שימו לב רק שאפשר כרגע לחבר מימד אחד בלבד כך שאם יש לכם מספר מימדים משותפים תצטרכו ליצור מהם מימד אחד או לחילופין ליצור מספר data sources כמו שהיה עד כה.
- ניתן לייצר מעתה קשרים בין טבלאות עם many to many, רק שימו לב שאתם מבינים מה אתם עושים ומציגים מספרים נכונים.
צפו בסרטון הבא ותתחילו לבחון איך לאמץ את השינוי אצלכם, זה בהחלט יכול לשפר לכם ביצועים גם בפרויקטים קיימים
מוזמנים לקרוא עוד בפוסט הבא
קדימה טאבלו, נשאר רק להוסיף טעינה אינקרמנטלית :-)