✕ סגור 
צור קשר
תודה על ההתעניינות .

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

נפילתו של ה"ביג דאטה" וחזרה לבסיס נתונים אחד שעושה הכל

Lior King
|
קלה
|
Jul 19, 2018
alt="facebook"alt="linkedin"
להרשמה לניוזלטר

אם תבדקו ב-Google Trends מה המגמה של הביטויים Big Data ו- Hadoop, תיווכחו לדעת שהדירוג של Hadoop נפל מציון 100 באוקטובר 2014 הרחק לציון 35 ביולי 2018. בשנים 2015-2016 היו "ביג דאטה" ו-Hadoop שני נושאים מאד חמים בתעשייה, אבל מאז ישנה ירידה עקבית בפופולריות שלהם ונראה שהאוויר החם של ה- Buzzwords הולך ומתפוגג לעבר ההתפכחות המרה.

למה זה בעצם קורה? למה Hadoop מאבד את קיסמו?

נחזור מספר שנים אחורה. Hadoop שווק ע"י חברות ההפצה שלו (Cloudera, HortonWorks, MapR) בתור ה- Data Warehouse הארגוני הטוב ביותר שקיים. אבל אז ארגונים שונים החלו להבין ש- Hadoop הוא לא בדיוק ה- Data Warehouse האולטימטיבי שלו הם ציפו. הם גילו בו מספר בעיות די בסיסיות:

1. הפונקציונליות (דרך שפת SQL) והביצועים של מערכות Data warehouse אלטרנטיביות כמו Vertica וכמו Teradata היו טובים לאין שיעור מאלה של Hadoop דרך כלים כמו Impala, Hive, Presto, Drill וכו'. הפערים היו ניכרים במיוחד כאשר מתשאלים את המערכת כמות גדולה של משתמשים בו זמנית.

2. מערכות שעושות Machine Learning ואינטליגנציה מלאכותית זקוקות למידע נקי ומעובד ולאו דווקא לכמויות עצומות של דאטה. דגימה נקייה של דאטה מטוייב נותן תוצאות טובות בהרבה מסתם מאסה של דאטה שחלקו פשוט סוג של "זבל".

3. טכנולוגיות חדשות צצו - במיוחד Spark, Kafka ומנועי NoSQL משופרים

Kafka + Spark + NoSQL

מערכת Kafka מספקת פלטרפורמה מרכזית שבה המידע שמגיע למערכת בזמן אמת מאוכסן, מעובד ונשלח לנמענים (או צרכנים) של המידע. Kafka עובדת מצויין ביחד עם בסיסי נתונים (רלציונים ולא רלציוניים), עם Apache Storm, Apache Flink וכן עם Apache Spark לצורך ניתוח של המידע הזורם ונרמולו בזמן אמת.

מערכת Spark מסוגלת לקחת מידע בזמן אמת מ-Kafka ומידע היסטורי מבסיסי נתונים ומקורות מידע נוספים, ולשלב אותם יחד בזמן אמת. יחד עם Spark, מערכות NoSQL יכולות להציע תחליף ל- Stored Procedures הפופולריות שמספקים בסיסי הנתונים הרלציונים וכך קלאסטר של NoSQL יכול להפעיל בינה עסקית באותם השרתים המאכסנים את הדאטה.

אנשים אוהבים לעבוד עם כמה שפחות מערכות ומעדיפים מערכת אחת שנותנת להם פיתרון מקיף. ישנן מערכות NoSQL שעברו שיפור משמעותי בשנים האחרונות וכעת הן מציעות יותר פונקציונליות שאפילו מתחרה עם הפונקציונליות של בסיסי נתונים רלציונים, אבל עם ביצועים מדהימים ויכולת scalability בלתי מוגבלת. לאחרונה הן מספקות אפילו תמיכה בטרנזקציות ACID.

דוגמה למערכת NoSQL שכזאת היא מערכת Couchbase שלה יש שפה דמויית SQL הנקראת N1QL )מבטאים אותה "ניקל") המספקת את רוב הפונקציונליות שנותנת שפת ANSI SQL וכוללת תמיכה ב-joins, פונקציות אגרגציה (SUM, COUNT, AVG וכו'), תת-שאילתות, הרצת שאילתה בצורה מקבילית ((Parallel query וכו'. השפה הזאת מייתרת את השימוש ב-ETL והופכת את המערכת Couchbase למערכת שהיא גם Operational DB וגם Analytical DB. בשונה ממערכות רלציוניות קלאסיות, מערכת Couchbase מאפשרת Scale out, מנהלת זיכרון Cache מבוזר (מבוסס על Memcached), תומך ב-Materialized views, Full-Text-Search, Event triggers, עובד עם מכשירים ניידים (IOS, אנדרואיד, tvOS) ומסנכרן אוטומטית בסיס נתונים מקומי על מכשיר נייד עם בסיס נתונים מרכזי.

מה לגבי Polyglot Persistence (שמירת מידע בפלטפורמות שונות)?

אם יש לך אפשרות להשתמש בבסיס נתונים סופר מהיר שיש לו יכולת Scalability בלתי מוגבלת מסוגל להיות גם בסיס נתונים אופרטיבי וגם בסיס נתונים אנאליטי - אתה חושב פעמיים אם אתה בכלל צריך גם Hadoop ואם נחוץ לך בסיס נתונים רלציוני. עדיין אין בסיס נתונים בשל כזה, אבל בעשור הבא בהחלט יתכן שבסיס נתונים אחד שכזה יחליף את השמירה של המידע במספר פלטפורמות שונות.

עם הראש בעננים

עם האימוץ והמעבר לענן, לכל השירותים שהזכרתי יש גם גרסאות מנוהלות אצל ספקיות הענן המובילות. השילוב של Kafka עם Spark ועם מנוע NoSQL מתקדם כמו Couchbase הופך לנגיש מאד ללא צורך בפעולות מייגעות כמו התקנה, תחזוקה, אדמיניסטרציה מורכבת וכו'.

מכיוון שרב מערכות ה-NoSQL מציעות רפליקציה בין דאטה סנטרים שונים, אפשר להשתמש בהם בתצורה של multi-cloud או ב-hybrid cloud כיוון שהם עובדים גם on premise. זה מאפשר לארכיטקט הרבה גמישות בבניית ארכיטקטורה שתהיה גם יעילה וגם תחזיק לאורך שנים.

מאת: ליאור קינג, מנהל צוות פלטפורמות מידע

אם תבדקו ב-Google Trends מה המגמה של הביטויים Big Data ו- Hadoop, תיווכחו לדעת שהדירוג של Hadoop נפל מציון 100 באוקטובר 2014 הרחק לציון 35 ביולי 2018. בשנים 2015-2016 היו "ביג דאטה" ו-Hadoop שני נושאים מאד חמים בתעשייה, אבל מאז ישנה ירידה עקבית בפופולריות שלהם ונראה שהאוויר החם של ה- Buzzwords הולך ומתפוגג לעבר ההתפכחות המרה.

למה זה בעצם קורה? למה Hadoop מאבד את קיסמו?

נחזור מספר שנים אחורה. Hadoop שווק ע"י חברות ההפצה שלו (Cloudera, HortonWorks, MapR) בתור ה- Data Warehouse הארגוני הטוב ביותר שקיים. אבל אז ארגונים שונים החלו להבין ש- Hadoop הוא לא בדיוק ה- Data Warehouse האולטימטיבי שלו הם ציפו. הם גילו בו מספר בעיות די בסיסיות:

1. הפונקציונליות (דרך שפת SQL) והביצועים של מערכות Data warehouse אלטרנטיביות כמו Vertica וכמו Teradata היו טובים לאין שיעור מאלה של Hadoop דרך כלים כמו Impala, Hive, Presto, Drill וכו'. הפערים היו ניכרים במיוחד כאשר מתשאלים את המערכת כמות גדולה של משתמשים בו זמנית.

2. מערכות שעושות Machine Learning ואינטליגנציה מלאכותית זקוקות למידע נקי ומעובד ולאו דווקא לכמויות עצומות של דאטה. דגימה נקייה של דאטה מטוייב נותן תוצאות טובות בהרבה מסתם מאסה של דאטה שחלקו פשוט סוג של "זבל".

3. טכנולוגיות חדשות צצו - במיוחד Spark, Kafka ומנועי NoSQL משופרים

Kafka + Spark + NoSQL

מערכת Kafka מספקת פלטרפורמה מרכזית שבה המידע שמגיע למערכת בזמן אמת מאוכסן, מעובד ונשלח לנמענים (או צרכנים) של המידע. Kafka עובדת מצויין ביחד עם בסיסי נתונים (רלציונים ולא רלציוניים), עם Apache Storm, Apache Flink וכן עם Apache Spark לצורך ניתוח של המידע הזורם ונרמולו בזמן אמת.

מערכת Spark מסוגלת לקחת מידע בזמן אמת מ-Kafka ומידע היסטורי מבסיסי נתונים ומקורות מידע נוספים, ולשלב אותם יחד בזמן אמת. יחד עם Spark, מערכות NoSQL יכולות להציע תחליף ל- Stored Procedures הפופולריות שמספקים בסיסי הנתונים הרלציונים וכך קלאסטר של NoSQL יכול להפעיל בינה עסקית באותם השרתים המאכסנים את הדאטה.

אנשים אוהבים לעבוד עם כמה שפחות מערכות ומעדיפים מערכת אחת שנותנת להם פיתרון מקיף. ישנן מערכות NoSQL שעברו שיפור משמעותי בשנים האחרונות וכעת הן מציעות יותר פונקציונליות שאפילו מתחרה עם הפונקציונליות של בסיסי נתונים רלציונים, אבל עם ביצועים מדהימים ויכולת scalability בלתי מוגבלת. לאחרונה הן מספקות אפילו תמיכה בטרנזקציות ACID.

דוגמה למערכת NoSQL שכזאת היא מערכת Couchbase שלה יש שפה דמויית SQL הנקראת N1QL )מבטאים אותה "ניקל") המספקת את רוב הפונקציונליות שנותנת שפת ANSI SQL וכוללת תמיכה ב-joins, פונקציות אגרגציה (SUM, COUNT, AVG וכו'), תת-שאילתות, הרצת שאילתה בצורה מקבילית ((Parallel query וכו'. השפה הזאת מייתרת את השימוש ב-ETL והופכת את המערכת Couchbase למערכת שהיא גם Operational DB וגם Analytical DB. בשונה ממערכות רלציוניות קלאסיות, מערכת Couchbase מאפשרת Scale out, מנהלת זיכרון Cache מבוזר (מבוסס על Memcached), תומך ב-Materialized views, Full-Text-Search, Event triggers, עובד עם מכשירים ניידים (IOS, אנדרואיד, tvOS) ומסנכרן אוטומטית בסיס נתונים מקומי על מכשיר נייד עם בסיס נתונים מרכזי.

מה לגבי Polyglot Persistence (שמירת מידע בפלטפורמות שונות)?

אם יש לך אפשרות להשתמש בבסיס נתונים סופר מהיר שיש לו יכולת Scalability בלתי מוגבלת מסוגל להיות גם בסיס נתונים אופרטיבי וגם בסיס נתונים אנאליטי - אתה חושב פעמיים אם אתה בכלל צריך גם Hadoop ואם נחוץ לך בסיס נתונים רלציוני. עדיין אין בסיס נתונים בשל כזה, אבל בעשור הבא בהחלט יתכן שבסיס נתונים אחד שכזה יחליף את השמירה של המידע במספר פלטפורמות שונות.

עם הראש בעננים

עם האימוץ והמעבר לענן, לכל השירותים שהזכרתי יש גם גרסאות מנוהלות אצל ספקיות הענן המובילות. השילוב של Kafka עם Spark ועם מנוע NoSQL מתקדם כמו Couchbase הופך לנגיש מאד ללא צורך בפעולות מייגעות כמו התקנה, תחזוקה, אדמיניסטרציה מורכבת וכו'.

מכיוון שרב מערכות ה-NoSQL מציעות רפליקציה בין דאטה סנטרים שונים, אפשר להשתמש בהם בתצורה של multi-cloud או ב-hybrid cloud כיוון שהם עובדים גם on premise. זה מאפשר לארכיטקט הרבה גמישות בבניית ארכיטקטורה שתהיה גם יעילה וגם תחזיק לאורך שנים.

מאת: ליאור קינג, מנהל צוות פלטפורמות מידע

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Lior King
בואו נעבוד ביחד
צרו קשר