יום ראשון, 31 בינואר 2010

057 - לא רק אס קיו אל חלק 2 וקסנדרה- nosql+cassandra


פרק המשך בנושא nosql, שוב הקלטנו ללא אורחים.
  • תזכורת ותקציר הפרק הקודם
  • מה זה NRW? וכיצד הוא מגדיר את רמת ה- consistency
  • איך המערכת יודעת איזה פריט נכתב אחרון ומהי בעיית snapshot במערכות מבוזרות
  • ביצועי הקריאה והכתיבה של Cassandra
  • ה- Data Model של Cassandra (תשכחו את מה שאתם יודעים על בסיסי נתונים)
  • איך מדברים עם Cassandra ופרוטוקול Thrift
  • קצת Cassandra internals, על GossipConsistence hashing ו- Bloom filter
חומר נוסף מתוך הבלוג של רן: חלק ראשון (רקע תיאורטי)חלק שני (Cassandra)


הקובץ נמצא כאן
האזנה נעימה ותודה לגיא על התקצור

8 תגובות:

אנונימי אמר/ה...

כרגיל היה מאוד מעניין.
יש דרישה לעוד

שימי

Or Yanay אמר/ה...

כרגיל פוסט מעניין שמלמד המון.

האם מנסיונכם ניתן לבצע על גבי קסנדרה שליפות סבוכות יותר מאשר שליפה ע"פ מפתח ידוע?
לדוגמא, האם ניתן לשאול שאלות כמו כמה רשומות עם מאפיין X נכנסו בחודש Y?
עבור מערכת המיועדת לסדרי גודל גדולים ייתכן ולמידע הסטטיסטי ישנו ערך רב פרט לשימוש האפליקטיבי (והמידע שמור בקסנדרה ממילא).

Ori אמר/ה...

אור ידידי - טוב לגלות שאתה בין מאזינינו :-)

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

למרות האמור לעי"ל - נראה לי שבסטטיסטיקות עסקינן. לא לזה נועדה קסנדרה - במקרה הזה אני ממליץ לך על HADOOP עם HIVE או כל שפת שאילתות M/R אחרת.

בהצלחה.

אורי

yonatan אמר/ה...
תגובה זו הוסרה על ידי המחבר.
yonatan אמר/ה...

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

אבל, לפעמים (כמו במקרה שלי) יש צורך לבצע join - לשלוף נתונים מ(לפחות) שתי "משפחות עמודות".
אני אאלץ לבצע join "ידני" -- כלומר להריץ שאילתא על "משפחת עמודות א'" שתוצאתה היא רשימה של מפתחות ל"משפחת עמודות ב'", ואז לבצע שוב שאילתא בכדי לשלוף את הנתונים ממשפחה ב'.

השאלה שלי היא, האם שימוש כזה הוא סביר ? או שהוא שימוש שגוי בטכנולוגיה?
האם שימוש כזה עדיין יתן לי ביצועים טובים ?

תודה על פוסט מעניין - יונתן

Ran Tavory אמר/ה...

Hi Yonatan, yes, certainly denormalization is a very common technique in cassandra and similar systems and is definitely not abuse, the systems were designed for such usage.
For example, cassandra's writes are much much faster than its reads (10x) so it's quite alright to write your data over and over again

MichZem אמר/ה...
תגובה זו הוסרה על ידי המחבר.
MichZem אמר/ה...

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

האם מישהו יודע על קורסים בנושא הניתנים בארץ ?

הוסף רשומת תגובה