הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

חקירת נתונים הפוכה, האם Left Join בא בחשבון?

More
14 years 10 months ago #6952 by נתן
באו אלי בבקשה,
הם צריכים לחקור את הנתונים בטבלת FACT
לתוך זה הם צריכים את הנתונים בטבלת DIM המתחברת אליה
אבל בזמן שזה קורה אנו מצמצמים את הרשומות רק לכאלה המופיעות בטבלת הDIM וכל הרשומות בטבלת הFACT אשר אינן מחוברות לDIM פשוט נעלמות לנו.

יש למישהו אולי איזו הצעה לפתרון של מצב כזה?

אפשר לעשות Left Join בין הטבלאות אבל נראה לי שזה לא הפתרון הנכון, כי הביצועים יפגעו.
מה גם כשבוחנים את הנתונים בטבלת DIM מעוניינים אך ורק ברשומות מטבלת הFACT הרלוונטיות ולא צריך את הכל.

מה דעתכם?

תודה

Please התחברות to join the conversation.

More
14 years 10 months ago - 14 years 10 months ago #6953 by Yoav
הפתרון הנכון והיעיל ביותר הוא תשתיתי:

יישום מנגנון RI אשר משלים רשומות ריקות מול טבלת ה-FACT,פתרון ברמת ה-ETL.

הדרכים האחרות הפחות מומלצות הם שימוש ב:

1.outer join (מעיט ביצועים )
2.לחבר 2 שאילתות ברמת הדוח
3.לנסות לעשות שימוש ב-scalar sub query

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il
Last edit: 14 years 10 months ago by Yoav.

Please התחברות to join the conversation.

More
14 years 10 months ago #6954 by תמיר
נתן,

ברמת העקרון לא יכול להיות מצב כזה. אם נוצר מצב כזה, יש לכם בעיה משמעותית בניתוח של המודל או\ו בגזירת הנתונים.

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


תמיר

Please התחברות to join the conversation.

More
14 years 10 months ago #6955 by נתן
אני מסכים איתך שיש פה משהו בעייתי.
עד היום כל הזמן חקרו את הDIM (טבלת משתמשים) והכל היה טוב ויפה ואפילו מערכת RI פועל בכיוון להשלמה של פרטים בתוכה.
עכשיו לפתע רוצים דווקא לחקור את הנתונים שבתוך הFACT ואיפה שיש משתמשים מחוברים אז רוצים גם לראות אותם.
מערכת הRI פשוט אינה פועלת בשביל השלמת נתונים שכזאת, מדובר בנתונים בתוך טבלת FACT אשר אינם קשורים לשום רשומה מטבלת DIM.

Please התחברות to join the conversation.

More
14 years 10 months ago #6956 by תמיר
בדיוק!

בשלב הבניה של המחסן: ניתוח\פיתוח צריך לעלות על המצב שישנם ערכים שאינם נמצאים בתוך הDim למרות שהם בתוך הFact. לאחר מכן מנתח המערכות צריך להחליט מה עושים במצב כזה? האם להכניס ערך -99999 וערך לא ידוע בDIM וזאת כחלק מלוגיקה עסקית.

RI זהו שלב מאוחר יותר שבמחינה טכנית עושה פעולה דומה, אך לא תרצה להגיע לזה. ד"א בDW הjoins אמורים להיות inner בלבד


תמיר

Please התחברות to join the conversation.

More
14 years 10 months ago #6958 by נתן
כן טוב, לבוא בטענות למנתח המערכת גם אני יכול.
אבל זה לא יעזור לי הרבה עכשיו.
צריך למצוא פתרון.

אני חושב שגם השלמת נתונים לא תיהיה יעילה בכיוון הזה וכיוון שיש לי מיליוני רשומות בטבלת FACT ורק 200,000 בטבלת DIM שלי.
להוסיף עוד מיליוני רשומות רקות בטבלת DIM רק כדי לאפשר לBO לעשות inner join זה נראה לי עוד פחות יעיל.

הבעייתיות פה נמשכת מכיוון שלכל רשומה בטבלת DIM יש רק אחת מתאימה בטבלת הFACT וגם המפתח לה נמצא בטבלת הDIM.

כן, אני יודע שזו לא המערכת האידיאלית אבל אני צריך לעבוד עם זה.

Please התחברות to join the conversation.

More
14 years 10 months ago #6960 by תמיר
לא מדוייק:

עצם העובדה שיש פער גדול של מספרי רשומות לא רלוונטי מאחר והיחס בין הטבלאות הוא 1 לN.

השאלה שאתה צריך לשאול היא כמה ערכים ייחודים נופלים באמצעות הJoin. מנסיון שלי לרוב לא יהיו הרבה כאלה (אלא יש לך מודל ממש מיוחד)


תמיר

Please התחברות to join the conversation.

More
14 years 10 months ago #6961 by נתן
אז כניראה שיש לי מודל ממש מיוחד.
הרשומות המקושרות אחת לשניה בטבלאות הן מקושרות ע"י מפתח של הFACT הנמצא בתוך טבלת הDIM ויש רק רשומה אחת מתאימה בטבלה.

עניין הDIM/FACT זה משהו היסטורי שלא בדיוק משרת את המצב כיום.

Please התחברות to join the conversation.

More
14 years 10 months ago #6963 by תמיר
יש לך בהחלט מודל מיוחד:

זוכר את חוקי Codd??

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

איך שאני רואה (תקן אותי אם אני טוועה) זה בכלל לא dim\fact במובן של DWH, אלא רק במובן סמנטי בלבד.


תמיר

Please התחברות to join the conversation.

More
14 years 10 months ago #6964 by נתן
אני לא מתקן אותך, במובן הזה אתה צודק.

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

לא זוכר את Codd איפה הוא כתוב בספר?

Please התחברות to join the conversation.

More
14 years 10 months ago #6965 by תמיר
זה לא יהיה כתוב בספר מאחר והקורס לא היה קורס בנושא מידול נתונים, אך הזכרתי זאת בכיתה.

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

Please התחברות to join the conversation.

More
14 years 10 months ago #6966 by נתן
אה לא לא, זה לא ככה.
המפתח הוא של הFACT
הFK אליו יושב אצל הDIM
הקטע הוא שיש רק רשומה אחת בטבלת FACT המתאימה לרשומה אחת בטבלת DIM
יש המון רשומות FACT, חלק קטן מהן מתחבר לטבלת DIM
לכל רשומה בטבלת DIM יש רשומה מקושרת בטבלת FACT - הופעל RI לשם כך.

עכשיו הבעיה מגיעה כי פתאם הם רוצים לחקור הפוך את הנתונים.
שמח פה.

Please התחברות to join the conversation.

More
14 years 10 months ago #6967 by תמיר
מעבר למה שאמרתי , אין לי מה להוסיף מאחר ואני לא מכיר את הפרטים.

תלך על הכיוון של RI או outer join, אך ממליץ לך לבחון לעומק את המודל.


תמיר

Please התחברות to join the conversation.

More
14 years 10 months ago #6968 by נתן
זה בדיוק מה שאני עושה.
תודה על זמנך ועל העזרה בסיעור המוחות :)

Please התחברות to join the conversation.

More
14 years 10 months ago #6969 by תמיר

Please התחברות to join the conversation.

More
14 years 10 months ago - 14 years 10 months ago #6970 by Yoav
RI הוא פתרון לגיטימי למקרים מסוג אלו,לא תמיד הוא משתלם בין השאר בגלל מידת ההשלמה שצריך לבצע מטבלת ה-Fact למימד.

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

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

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il
Last edit: 14 years 10 months ago by Yoav.

Please התחברות to join the conversation.

Moderators: Yoav
Time to create page: 0.340 seconds