Hadoop ו-MongoDB – חברים ולא אויבים
מאת: קובי ליף, מנהל ערוצים ב-EMEA וישראל, MongoDB
המונח Big Data רחב מאוד, עם תת-מחלקות עבור צרכים שונים של לקוחות. התיאור הנפוץ ביותר של Big Data מדבר על ארבעה V – באנגלית: Volume ,Velocity ,Variety ,Veracity, ובעברית, ארבעה מ': ממדים, מהירות, מגוון, מהימנות.
'ממדים' מייצגים טרה-בייטים עד אקסה-בייטים של נתונים סטטיים. 'מהירות' מדברת על הזרמת נתונים הדורשת מילי-שניות עד שניות של זמן תגובה, ואלה נתונים בתנועה. 'מגוון' פירושו נתונים במבני צורה רבים: מובנים (structured), לא-מובנים (unstuctured), טקסטים, מרחביים, ומולטימדיה.
'מהימנות' מתייחסת לנתונים שיש לגביהם ספק הנובע מחוסר קונסיסטנטיות, חוסר שלמות וערפול.
Hadoop הינה אוסף של כלים בקוד פתוח, המיועדים לסייע לטיפול בנפחים גדולים במיוחד של מידע, והגרסה המסחרית הראשונה של אינטרנט ברמת מחשוב-על עבור הקהילה המדעית, שהייתה ידועה כ-HPC (מחשוב עתיר ביצועים). ל-Hadoop יש ביצועים טובים, והיא זמינה מבחינה כספית בהיקפי אינטרנט גדולים. ואכן, מקורה היה בחברות כמו יאהו בשנות ה- 90, ובהמשך גוגל (Google), פייסבוק (Facebook) וטוויטר (Twitter).
בקהילה המדעית שימש HPC עבור מטאורולוגיה, חישובים מתמטיים והנדסה.
Hadoop משמשת יותר עבור גילוי והתאמת תבניות התנהגות (patterns). הטכנולוגיה התשתיתית דומה – אשכולות (קלאסטרים), עיבוד מקבילי, ומערכת קבצים מבוזרת. Hadoop מטפלת בהיבט ה'ממדים" של Hadoop, בעיקר עבור ניתוח אנליטי ב-offline. מוצרי NoSQL, כמו MongoDB, מטפלים בהיבט ה'מגוון': איך לייצג ביעילות טיפוסי נתונים שונים עם סקלאביליות קריאה/כתיבה עצומה, וזמינות גבוהה עבור מערכות טרנזקציות בזמן אמת.
MongoDB מיועדת למענה מידי למערכות זמן אמת, מנועי המלצות וכו', בעוד Hadoop משמשת לניתוחים עתיים (על פני זמן), לזיהוי מאפיינים וקווי מגמה.
פתרונות RDBMS אינם מתאימים לצורך זה, לאור קשיחות הסכימה והעדר פתרונות scale-out זולים. לכן Hadoop ו-NoSQL משלימות באופיין ואינן מתחרות.
בין אם הנתונים במסד נתונים NoSQL או ב-RDBMS, אשכולות Hadoop נדרשים למטרות אנליטיות ב-batch (בשימוש במערכת הקבצים המבוזרת ואלגוריתם מחשוב MapReduce).
מספר פתרונות Hadoop, כמו Impala של Cloudera או Hotonworks Stinger, מציגים ממשק SQL עתיר ביצועים עבור עיבוד קל של שאילתות.
העלות הנמוכה והיעילות הגבוהה של Hadoop, גרמו לפופולאריות שלה. לדוגמה, בענקית הקמעונות Sears, עיבוד לניתוח קמפיינים שיווקיים למועדון הלקוחות, נמשך שישה שבועות במיינפריימים ושרתי Teradata ו-SAS.
את העיבוד החדש הרץ על Hadoop ניתן להשלים כל שבוע. מערכות Hadoop עם 200 טרה-בייט עולות כשליש מפלטפורמות רלציוניות של 200 טרה-בייט. עלויות מיינפריים הופחתו ביותר מחצי מיליון דולר בשנה, עם ביצועים טובים פי 50-100 במשימות batch.
כמות הנתונים של Sears ב-Hadoop הינה כיום 2 פטה-בייט. Sears משתמשת ב-Datameer, מעין גיליון אלקטרוני התומך בחקר נתונים וויזואליזציה ישירות ב-Hadoop, והחברה מפתחת דו"חות אינטראקטיביים תוך שלושה ימים, במקום 6-12 שבועות קודם.
מוצרי NoSQL כמו MongoDB פופולריים בקהילת המפתחים. MongoDB מתמזגת בשקיפות עם שפות תכנות מודרניות כ-JavaScript, ,Ruby ו- Python, וכך מאפשרת קידוד מהיר.
מודל הנתונים העשיר של NoSQL מטפל במגוון סוגי נתונים, עם יכולות אינדוקס מלאות ותשאול אד-הוק, התרחבות אופקית על שרתי קומודיטי ועיבוד עתיר מקביליות, בדומה לארכיטקטורה המבוזרת של Hadoop. עם זאת, NoSQL צריך לטפל בהיבטים התפעוליים של מסדי נתונים בפרודקשן הרצים באתר הארגון או בענן, בעוד בעקרון Hadoop פועלת offline batch לניתוח אנליטי.
NoSQL משמש IT בארגונים גדולים לבניית "מערכות של מעורבות" (engagement), המתמקדות בשימוש בטכנולוגיה מודרנית ובאינטרנט כדי לתקשר טוב יותר פנימית וחיצונית. מערכת מעורבות כזאת פותחה בחברת הביטוח הגדולה MetLife, במטרה לספק מבט 360 מעלות על הלקוח (ממבט ממוקד-פוליסה למבט ממוקד-לקוח), אשר המידע עבורו היה ב-70 מערכות רשומות ישנות.
עתה מקבל כל סוכן של MetLife תמונה מלאה של פעילויות לקוח במכשיר נייד, בכל זמן ומכל מקום. המערכת פותחה והוטמעה ב- 3 חודשים עם MongoDB. ההטמעה המהירה הודות למודל הנתונים הגמיש של MongoDB, גידול ליניארי דרך ארכיטקטורת Sharding (אחסון רשומות נתונים במספר מכונות – מענה MongoDB לדרישות גידול בנתונים), קידוד מהיר, ופיתוח איטרטיבי בשימוש ב-JSON.
NoSQL ו- Hadoop חיות בדו-קיום, כאשר MongoDB מספקת שכבת ניהול נתונים מידיים ומאפשרת גישה לשאילתות, כתיבות ושליפות רבות; בעוד Hadoop משמשת כמאגר ניתוחי באופיו. תוספות עתידיות ל- Hadoop כמו YARN ו-Tez יאפשרו טעינת נתונים ותשאול בזמן אמת, אך לא פתרון צרכי מערכות פרודקשן למשימות קריטיות (התחום של NoSQL).
דוגמאות אלה מוכיחות כי Hadoop ו-NoSQL הן חברות, ועונות לצרכים שונים של ארגון.