יום ראשון, 14 בפברואר 2016

289 Fogcast 22 Graph Databases

פרק נוסף של רברסים פלטפורמה, והפעם פרק מס' 289, ופוגקאסט מס' 22, שבו מתארח ליאור שיאון. בפוגקאסט אנחנו מתעמקים בנושא אחד ומעמיקים בו. היום, ערב השנה האזרחית החדשה,  אנחנו נדבר על בסיסי נתונים של גרפים (Graph Databases), נושא שיצא לנו להתעסק איתו באופן אישי בחודשים האחרונים.
זה שאנחנו בפרק פוגקאסט לא אומר שאנחנו לא בבלוג, בטוויטר, בפייסבוק וב-RSS. ואנחנו עדיין מחלקים כוסות שוות לכל מי ששווה לחלק לו. כל מה שאתם צריכים לעשות זה פשוט להשתתף בדיונים בפייסבוק בצורה מעניינת ומחכימה, ואנחנו נבחר את המשתתף שיזכה בכוס.

אנחנו מתחילים:
  • ב-Yodas מעניינים אותנו גרפים של קשרים מקצועיים, מי עבד עם מי על איזה פרויקטים, Github היא מקור מצוין לידע הזה. (1:50)
  • במתמטיקה יש מושג שנקרא מספר ארדש, על שם מתמטיקאי הונגרי מאוד פופולרי שכתב הרבה מאמרים. לארדש עצמו קיבל את המספר 0, למי שכתב איתו מאמר את המספר 1, למי שכתב איתם מס' 2 וכו'. וזה בעצם בונה גרף של קשרים של מתמטיקאים. (2:45)
  • בקטע יותר משעשע גם בעולם הקולנוע יש מקביל: קווין בייקון.לא ברור למה דווקא הוא נבחר. אז לעולם הקוד הפתוח בחרנו את לינוס טורבלדס וניסינו לחשב את זה. (4:15)
  • המגבלה של Github ל-API שלהם היא 5,000 קריאות והיה קשה לבנות מזה את הגרף. אז מצאתי את GithubArchive שעוקב אחרי כל האירועים שקורים ב-Github ומאפשר לנתח אותו בלי מגבלה. (7:25)
  • Graph Database מאפשר להפעיל אלגוריתמים ישירות בבסיס הנתונים, ולחסוך קריאות לשרת. Neo4J הוא בסיס נתונים כזה, וגם כולל את השפה Cipher שמאוד נוחה לעבודה מולו, ובנוסף כלי שאילתות שמייצר גרפים יפים. (10:08)
  • Graphub זאת התוצאה של הפרויקט, אתם יכולים לראות מה המרחק שלכם מטורבלדס ואושיות Github אחרות. עדיין יש מה לעשות כדי להבין את המשקלים בין הקשרים הללו. (12:17)
  • בסיסי נתונים אחרים שיש אלו: Titan, יש לו מנוע אחסון מודולרי ואז אפשר לשים אותו מעל MySQL או DynamoDB. גוגל משתמשים פנימית ב-Pregel ואפשר לקרוא עליו מאמר (PDF), אבל הוא לא שוחרר בקוד פתוח. פרויקט חדש יחסית הוא Cayley שמבוסס GO וגם גמיש במנועי האחסון שלו. (18:04)
  • מבחינת בשלות Neo4J עדיף, אבל צריך לראות אם הוא מתאים לאלגוריתם שלך. מבחינת הביצועים יש שאילתות שהביצועים שלהן טובים, אבל יש דברים שעובדים טוב רק דרך ה-REST API ועדיין לא בשלים. (19:58)
  • אפשר לבצע גם שאילתה ב-Neo4J ולקבל תשובה ב-D3 ואז אפשר לעשות שאילתה ולקבל גרף בסוף. (22:20)
  • ה-Logs של Github עדיין לא מושלמים, ולכן צריך להשלים אותו במידע באמצעות ה-API. בגלל זה לפעמים צריך לעשות רפרש ולקבל נתונים מעודכנים יותר. (23:40)
  • כרגע נראה שלהרבה אנשים יש קשר מס' 2, ואני עדיין בודק את זה. מצד אחד הגרף של Github כנראה מאוד קשיר, ועדיין צריך לקחת בחשבון את העוצמות בין הקשרים. (28:36)
  • אם אתם רוצים לעשות מודל לגרף עם שאילתות פשוטות אפשר לעשות את זה עם כל בסיס נתונים, אבל Graph Database יעזור לכם בשביל להריץ אלגוריתמים בגרפים. (34:15)

את הקובץ ב-MP3 אפשר להוריד בקליק ימני מכאן, ותודה לרועי שלומי על התקציר של הפרק ולגיא מנחם על העריכה הקולית. ותודה ל-Outbrain על החסות והתמיכה הכספית.

אין תגובות:

פרסום תגובה