Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Peter J. Hass Joseph M. Hellerstein IBM Research Division Computer Science Division University of California Presented By: Michal Ozery.

Similar presentations


Presentation on theme: "1 Peter J. Hass Joseph M. Hellerstein IBM Research Division Computer Science Division University of California Presented By: Michal Ozery."— Presentation transcript:

1

2 1 Peter J. Hass Joseph M. Hellerstein IBM Research Division Computer Science Division University of California Presented By: Michal Ozery

3 2 אלגוריתמי Ripple Join: 4 בסיס נתונים רלציוני 4 שאילתא על מספר טבלאות מספר טבלאות 4 חישוב פונקציות קיבוץ על התוצאה (SUM, COUNT, AVG,..) 4 עיבוד Online

4 3 מוטיבציה : / מערכות תומכות החלטה בסביבה אינטראקטיבית. / שאילתות על טבלאות גדולות מאוד. / המטרה לרוב היא לקבל “ תמונה גדולה ” ולוא דווקא תשובה מדויקת.

5 4 השוואה בין אלגוריתמי Join רגילים לאלגוריתמי Ripple Join: V תוצאה : קירוב סביר לתשובה : [X-h, X+h] ( אינטרוול וודאות ) בהסתברות p ( נתונה מראש ). V פלט : עדכוני תשובות במהלך הריצה. ( הקטנת אינטרוול הוודאות ) V מטרה : הקטנת זמן הריצה של השאילתא עד לקבלת תשובה מקורבת. V תוצאה : התשובה המדויקת של ערך השאילתא. V פלט - בסיום הריצה. V מטרה : הקטנת זמן הריצה הכולל של השאילתא. Ripple JoinJoin רגיל

6 5 השוואה בין אלגוריתמי Join רגילים לאלגוריתמי Ripple Join ( המשך ) V זמן ריצה - אינו תלוי בגודל רלציות הבסיס. V אופן החישוב משתנה באופן אדפטיבי, בהתאם לתכונות הסטטיסטיות של הנתונים. ( תוחלת, שונות, …) V זמן ריצה - תלוי בגודל רלציות הבסיס. V אופן החישוב (plan) נקבע מראש. Join רגיל Ripple Join

7 6 הנחה : איברי הרלציות (tupples) מעובדים בסדר אקראי : ההסתברות לבחור K איברים מסוימים מתוך K רלציות שווה ל - ( התפלגות אחידה )

8 7 אלגוריתמים קודמים : אלגוריתם Nested Loops. ( דוגמא לחישוב COUNT) for I 1 = 1 to |R 1 | for I 2 = 1 to |R 2 | …. for I K = 1 to |R K | sum += Join_Condition(R 1 [I 1 ],... R K [I K ]) לאחר כל דגימה מ - R 1 - מעדכנים את התוצאה ואת אינטרוול הוודאות.

9 8 חסרונות השימוש ב - Nested Loops: ( א ) 6 בכל שלב דגימה צריך לסרוק את כל R ==> הזמן בין העדכונים עלול להיות ארוך ! 6 ייתכן כי אורך האינטרוול לא יקטן “ מספיק ” בכל שלב דגימה. דוגמא : אם הפונקציה שמחושבת על ה -Join מושפעת בעיקר מאברי S. נניח R, S שתי רלציות. |R| > |S|. בד ” כ S יבחר כלולאה החיצונית.

10 9 חסרונות השימוש ב - Nested Loops: ( ב )

11 10 Ripple Join - הגרסה ה ” קלאסית ”: R ו - S שתי רלציות. בכל שלב דוגמים גם מ - S וגם מ -R ומחשבים את ערך השאילתא עם כל הדגימות הקודמות. ==> אופן סריקת המכפלה הקרטזית הוא כ ” גלים ריבועיים ”. ( פירוש שני : Rectangles of Increasing Perimeter Length)

12 11 יחסי דגימה שונים :  חידוש עיקרי במאמר - קצבי דגימה שונים יספקו אורך אינטרוול קטן יותר ! ( מתכנסים מהר יותר לתוצאה ) לכל רלציה R i יתאים יחס דגימה. Q אלגוריתם Nested Loops מקיים :, לכל i > 1. לאחר n שלבים - סך כל הדגימות מרלציה R i יהיה.

13 12 ווריאציות של Ripple Join: 4 Block Ripple Join: יחידות הדגימה הן בלוקים ולא איברים בודדים. ( חסכון ב - I/O). 4 Hash Ripple Join - כל הערכים שדגמנו עד כה נשמרים בטבלאות Hash בזיכרון. (equi-join) 4 Index Ripple Join: אם ב - R i יש אינדקס על תכונות ה - Join - מאפשר סריקה של כל הטבלה בזמן קצר יחסית. ==> נבחר. ( שקול ל - Nested Loops עם Index.)

14 13 אינטרוול וודאות d קונסרבטיבי - מכיל את X בהסתברות => p. d “Large Sample” - מכיל את X בהסתברות ~ p. מבוסס על משפט הגבול המרכזי (Central Limit Theorem).

15 14 אינטרוול וודאות - המשך CLT - אם ישנם n משתנים ב ” ת שווי התפלגות אזי התפלגות סכומם מתכנסת להתפלגות נורמלית. כלומר, אם X i ב ” ת בעלי תוחלת E ושונות נגדיר : אזי - ומתקיים :

16 15 Ripple Join עבור COUNT ( א ) נגדיר פונקציה כלהלן אם מתקיים תנאי ה - Join. אחרת. נגדיר משתנה מקרי X = f. מהגדרת f ומההתפלגות האחידה של המרחב נובע ש - הוא תוצאת השאילתא. בסיום כל שלב דגימה אנו ננסה לקרב את E f ע ” י חישוב התוחלת על המדגם שבידינו. נקרא לקירוב זה T n.

17 16 Ripple Join עבור COUNT ( ב ) גודל בלוק יחסי דגימה מכאן : נגדיר : משפט : T n מתפלג נורמלית עם תוחלת E f ושונות ( נגדיר את בהמשך.)

18 17 Ripple Join עבור COUNT ( ג ) נותר רק למצוא את השונות של T n. כאשר הוא השונות של המ ” מ ( תוחלת מותנה ) בעיה : כדי לחשב את עלינו לעבור על כל ה - Join. פתרון : נקרב את ע ” י חישוב השונות של הערכים : כאשר E - ביחס לנתוני הדגימות עד כה

19 18 Ripple Join עבור COUNT ( ד ) את ניתן לעדכן בכל שלב דגימה כאשר דוגמים מהרלציה R k איבר חדש. כמה זה עולה לנו ? סיבוכיות I/O = סיבוכיות מקום = לכל רלציה צריך לשמור את ערכי ==> נשמור אותם בצורה דלילה ( רק אלו ששונים מ - 0 ). לכן סה ” כ :

20 19 Ripple Join עבור פונקציות אחרות : SUM - זהה לחישוב COUNT => החלפת f ב - AVG -. הקירוב הוא משפט : מתפלג נורמלית עם תוחלת ושונות

21 20 קביעת יחסי הדגימה ( א ) המשתמש בוחר קצב עדכון => צריך למצוא יחסי דגימה שיתנו אינטרוול קצר ביותר תחת ההגבלה של עמידה בקצב העדכון שנבחר. קצב עדכון מקסימלי. קצב עדכון מינימלי ` השפעה על גודל אינטרוול הוודאות ( יחס דגימה גדול => אינטרוול קצר ) ` השפעה על קצב עדכון ( מספר פעולות I/O) ( יחס דגימה גדול => קצב עדכון איטי

22 21 קביעת יחסי הדגימה ( ב ) למעשה לפנינו בעיית אופטימיזציה : מצא מינימום ל - תחת האילוצים הבאים : שלם, המשתמש בוחר ערך q בין 0 ( מינימום עדכונים ) ל - 1 ( מקסימום עדכונים )

23 22 קביעת יחסי הדגימה ( ג ) מכיוון שערך הקירוב ל - מתעדכן בכל שלב ==> יחסי הדגימה האופטימליים ישתנו אף הם ==> אופן חישוב השאילתא אדפטיבי ביחס לתכונות הסטטיסטיות של הנתונים. (!) יש ל ” סנכרן ” את מלבן הדגימה ( השלמה לכפולות המתאימות ):

24 23 ביצועים : 4 בסיס נתונים PostgreSQL. 4 שתי טבלאות : student - רשומה לכל תלמיד ( 60,300) enroll - רשומה לכל השתתפות תלמיד בקורס (1,547,606) SELECT student.honors_code, AVG(last.grade) FROM enroll, student WHERE enroll.sid = student.sid GROUP BY student.honors_code

25 24 השוואת קצב התכנסות האינטרוול האלגוריתם שנבחר ע ” י ה - Optimizer רץ כ - 446 שניות !

26 25 קצב עדכון תוצאות.

27 26 קביעת סדרי דגימה מתאימים ( א ). SELECT ONLINE AVG(later.grade) FROM enroll first, enroll later WHERE first.sid = later.sid ANDfirst.crseid = later.crseid ANDlater.passfail = ‘t’ AND first.year < later.year Hash Ripple Join הורץ עם שלושה סדרי גודל שונים.

28 27 קביעת סדרי דגימה מתאימים ( ב ). האלגוריתם שה - Optimizer בחר רץ כ - 25 דקות !

29 28 סוף דבר. סקרנו משפחת אלגוריתמים בשם Ripple Joins: 4 מתן תשובה מקורבת לחישוב שאילתות קיבוץ על מספר טבלאות. 4 מתן הערכה לשגיאה. 4 ללא תלות בגודל הטבלאות. 4 חישוב אינטראקטיבי ( המשתמש שולט על קצב עדכון התשובות )


Download ppt "1 Peter J. Hass Joseph M. Hellerstein IBM Research Division Computer Science Division University of California Presented By: Michal Ozery."

Similar presentations


Ads by Google