חדשות היום

Hadoop ו-MongoDB – חברים ולא אויבים

המונח Big Data (ביג דאטה) הנו מושג חובק-כל, עם תת-מחלקות שונות עבור צרכים שונים של לקוחות. התיאור הנפוץ ביותר של ביג דאטה מדבר על ארבעת ה-Vs – באנגלית:
Volume, Velocity, Variety, Veracity, ובעברית ארבעה מ’: ממדים, מהירות, מגוון, מהימנות.
‘ממדים’ מייצגים טרה-בייטים עד אקסה-בייטים של נתונים, אך אלה הינם נתונים סטטיים.
‘מהירות’ מדברת על הזרמת נתונים הדורשת מילי-שניות עד שניות של זמן תגובה, ואלה הם נתונים בתנועה.
‘מגוון’ פירושו נתונים בריבוי מבני צורה: מובנים (structured), לא-מובנים (unstuctured), טקסטים, מרחביים, ומולטימדיה.
לבסוף, ‘מהימנות’ מתייחסת לנתונים שיש לגביהם ספק הנובע מחוסר קונסיסטנטיות, חוסר שלמות וערפול.
Hadoop הנה אוסף של כלים בקוד פתוח, המיועדים לסייע לטיפול בנפחים גדולים במיוחד של מידע, והגרסה המסחרית הראשונה של אינטרנט ברמת מחשוב-על שהייתה ידועה כ-HPC (מחשוב עתיר ביצועים) עבור הקהילה המדעית. יש
ל-Hadoop ביצועים טובים, ומבחינה כספית היא זמינה בהיקפים גדולים. אין זה פלא שמקורה היה בחברות הפועלות בסדרי גודל של האינטרנט כמו יאהו בשנות ה-90, ובהמשך גוגל, פייסבוק וטוויטר.
בקהילה המדעית שימש HPC עבור מטאורולוגיה (סימולציות מזג אוויר) והנדסה לפתרון משוואות. Hadoop משמשת יותר עבור גילוי והתאמת תבניות התנהגות (patterns). הטכנולוגיה התשתיתית דומה – אשכולות (קלאסטרים), עיבוד מקבילי, ומערכת קבצים מבוזרת.
Hadoop מטפלת בהיבט ה”ממדים” – volume של ביג דאטה, בעיקר עבור ניתוח אנליטי ב-offline. מוצרי NoSQL כמו MongoDB, מטפלים בהיבט ה’מגוון’ – variety של ביג דאטה, מלבד הממדים: איך לייצג ביעילות טיפוסי נתונים שונים עם סקלאביליות קריאה/כתיבה עצומה, וזמינות גבוהה עבור מערכות טרנזקציות הפועלות בזמן אמת.
מדוע יש צורך בשני הממדים? ובכן, האחד (MongoDB) מיועד למענה מיידי למערכות ויישומים (מערכות real time, recommendation engines וכו’), בעוד 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, וכך מאפשרת מהירות קידוד גבוהה. פשטות זאת עשתה אותה לפופולארית מאוד תוך זמן קצר.
חוסר ההתאמה של RDBMS מעכב כאשר מודל תכנות מונחה עצמים צריך למפות למבנה שורה-טור של מסד הנתונים (כמו לתרגם סוואהילית לצרפתית). מודל הנתונים העשיר של NoSQL יכול לטפל במגוון סוגי נתונים, עם יכולות אינדוקס מלא ותשאול אד-הוק. הסיבה האחרת היא יכולתו להתרחב אופקית על שרתי קומודיטי ולספק עיבוד עתיר מקביליות. היבט זה דומה לארכיטקטורה המבוזרת של Hadoop. עם זאת, NoSQL צריך לטפל בהיבטים התפעוליים של מסדי נתונים בפרודקשן הרצים באתר הארגון או בענן, בעוד בסיסית Hadoop פועלת במצב offline batch עבור ניתוח אנליטי.
NoSQL משמש ארגונים גדולים לבניית “מערכות של מעורבות” (engagement). ארגוני בזבז עשרות שנים על בניית “מערכות של רשומות” (records) להרצת עסקיהם – במיוחד טכנולוגיה המכילה מסד נתונים. עתה נמצאים מנמ”רים תחת לחץ לבנות ‘מערכות של מעורבות’, בהן המיקוד הוא שימוש בטכנולוגיה מודרנית ובאינטרנט כדי לתקשר טוב יותר פנימית וחיצונית. מערכת כזאת של מעורבות פותחה לאחרונה ב-MetLife, חברת הביטוח הגדולה בת 145 שנים. המטרה הייתה לספק מבט של 360 מעלות על הלקוח (לעבור ממבט ממוקד פוליסה למבט ממוקד-לקוח), אשר המידע עבורו התפזר ברחבי 70 מערכות ישנות של רשומות.
בדרך זאת, כל סוכן של MetLife יכול לקבל תמונה מושלמת של פעילויות לקוח בשימוש במכשיר נייד, בכל זמן, מכל מקום. המערכת כולה פותחה והוטמעה בתוך 3 חודשים תוך שימוש בפלטפורמת MongoDB. הסיבות להטמעה המהירה יוחסו למודל הנתונים הגמיש של MongoDB, גידול ליניארי דרך ארכיטקטורת Sharding שלו (תהליך אחסון רשומות נתונים ברחבי מספר מכונות; הגישה של MongoDB למענה לדרישות של גידול בנתונים), מהירות קידוד גבוהה ופיתוח איטרטיבי בשימוש ב-JSON.
NoSQL ו- Hadoop חיות בדו-קיום בשלום כאשר MongoDB תספק את שכבת ניהול הנתונים המידי ומאפשרת גישה של מספר רב של שאילתות, כתיבות ושליפות, בעוד Hadoop משמשת כמאגר ניתוחי באופיו. לדוגמא, MongoDB מציעה Hadoop Connection עבור תנועה קלה של נתונים בין שני המאגרים. גם אורקל מציעה קישור דומה עבור תנועת נתונים בין Hadoop ומסד נתונים אורקל. תוספות עתידיות ל-Hadoop כמו YARN ו-Tez מיועדות להרחבתו עבור טעינת נתונים ותשאול בזמן אמת, אך לא לפתרון הצרכים של מערכות פרודקשן למשימות קריטיות (התחום של NoSQL). דוגמאות אלה מראות בבירור כי Hadoop ו-NoSQL הן חברות, מאחר שהן עונות לצרכים שונים של ארגון.

קובי ליף, MongoDB

תגובות סגורות