פרק מספר 444 (!) של רברס עם פלטפורמה - אורי ורן מארחים באוגוסט החם את שחר מחברת SQream [הגייה: כמו Scream, רק עם Q . . . ] כדי לדבר על GPU Databases.
(רן) דיברנו בעבר על GPU בהקשרים אחרים [נגיד כאן - 363 GPU @ Nvidia], בעיקר בהקשר של Deep Learning ועיבוד גרפי, אבל עוד לא דיברנו על GPU ל-Databases, או לפחות לא הקדשנו לזה פרק שלם - אז אני שמח לעשות את זה היום.
ולפני שנצלול פנימה - כמה מילים עליך, שחר:
- (שחר) שחר פיינס - נשוי לעדי, אבא ליואב, נדב ונעמי מהרצליה, Senior Product Manager בחברת SQream.
- מגיע מרקע של פיתוח - הייתי מפתח, ראש צוות וארכיטקט - ולאחרונה “חציתי את הקווים” לפרודקט . . . .
- ניסיון בחברות גדולות - הרבה שנים ב-NICE, ב-Cellebrite
- ניסיון בעולם ה-Enterprise Software וה-Analytics.
(רן) מעולה . . אז שוב, שמחים שאתה פה. וקצת על SQream, זאת אומרת - מה עושים שם? מתי נוסדה החברה? מה קורה שם היום?
- (שחר) אז SQream היא חברה ותיקה למדי - קיימת כבר 12 שנים, ממוקמת בתל אביב, ה-Founder-ים הם עמי גל ה-CEO ורזי שושני ה-CTO, אנחנו כ-150 איש . . .
- והמוצר העיקרי שלנו הוא Database, שעובד מעל GPU - וזו הסיבה שלשמה התכנסנו.
- אנחנו Database, שבעצם מיועד ל-Peta-scale ול-Very Big Data
- בעבר היינו מפוקסים בעולמות ה-On-Prem וכיום אנחנו מתרחבים ומרחיבים את ה-Offering שלנו לעולמות הענן.
(רן) אז עולות לי כמה שאלות לראש: אחת זה ברמה הטכנית - איך בכלל אפשר לעשות Database מעל GPU? מה GPU יכול לעזור לך?
אבל לפני זה - ואני יודע, אורי, שזה מה שאתה אוהב - “למה בכלל צריך את זה?” . . . . - זאת אומרת, יש לנו כל הרבה סוגים של Database-ים, ו . . .
(אורי) השאלה שלי היא האם לפני 12 שנים - היה GPU?
- (שחר) לפני 12 שנים היה GPU - זו הייתה תחילת הדרך אבל היה GPU ובהחלט, ה-Founder-ים שלנו ראו קדימה והביאו את היוזמה בשלב מאוד מוקדם
- זיהו את בעיית ה-Big Data, זיהו את ה-GPU שהיה “בחיתולים” ויכול להביא בשורה לעולם הזה
- אבל כן - הוא כבר הרבה שנים איתנו, ה-GPU . . . .
(רן) כן, אז נראה לי שכולם מבינים “למה Big Data?” ואת כל ה”V’s” שקשורים אליו - אבל נשאלת השאלה: אוקיי, יש כמה פתרונות בעולם: יש Database-ים אנליטיים מסוגים שונים, יש Database-ים עם Scale ורטיקלי . . . יש לא מעט פתרונות בעולם, נזכיר ממש קצת - החל מעולם ה-Hadoop ו-Spark וDatabase-ים כמו Vertica וכו’
- (אורי) Scale הוריזונטלי (Horizontal) . . . .
- (רן) הוריזונטלי, כן - התבלבלתי בגלל ה-V.
אז מה גורם לבנאדם לקום בבוקר ולחשוב שצריך עוד Database - אבל הפעם מעל GPU, מעבד גרפי שנועד לעיבוד תמונה?
- (שחר) אז אני חושב שהמוטיבציה העיקרית זה בעצם להביא Database שהוא SQL-י, שזה עולם שהוא מאוד “Comfort Zone” - מאוד מוכר, מאוד נפוץ אצל DBA-ים כמובן, אבל לא רק.
- בניגוד לעולמות ה-Hadoop למיניהם, שהם חזקים מאוד ונותנים פתרונות טובים ויעילים - אבל הם מורכבים יחסית ודורשים להבין טוב מה הבעיה שאתה רוצה לשאול, איך ומה אתה רוצה לתשאל ב-Data
- אתה צריך להכין אותו מראש, לעשות את ה-Partitioning או את ה-Sharding בצורה הנכונה
- ובעצם, בפתרון שהוא מבוסס-GPU אתה יכול לעשות משהו ולתת פתרון של Data מאוד גדול - אבל בלי צורך לדעת מראש מה אתה רוצה לשאול.
- יש לך הרבה יותר גמישות של איך לתשאל את ה-Data - אתה יכול לקום בבוקר, לחשוב על בעיה עסקית חדשה שאתה רוצה לשאול - ואתה יכול פשוט לכתוב את ה-SQL שלך ולשאול אותה . . .
(רן) אז בוא, רגע, ננסה לתרגם את זה לשפה שלי, ברשותך - אז אם ה-Data קטן אז הכל טוב: תכניס את ה-Data איך שאתה רוצה, תאנדקס, אל תאנדקס (Indexing), תתשאל מה שאתה רוצה - הכל יעבוד ואין שום בעיה, ה-Database-ים יכולים להחזיק את הכל בזיכרון וכמה שתנסה להיות לא יעיל הם עדיין יהיו יעילים והכל עובד.
כשה-Data גדל, אז יש לך פה כמה אפשרויות - אחת היא לתכנן ממש טוב את השליפות, וזה בדרך כלל בא עם עלות של דה-נורמליזציה והכנסות יותר יקרות, ולפעמים אתה לא כל כך יודע איך הולכות להיות השליפות - וזה אתגר אחד.
אפשרות אחרת היא להשקיע הרבה מאוד כסף בהרבה מאוד זיכרון, אולי בביזור מאוד חזק . . . .אבל השאלה היא . . .
(אורי) ואז יש גם את שתיהן . . . .
(רן) או ביחד, כן . . . .אתה יכול לעשות את שתיהן יחד
(אורי) לא בהכרח. . . מערכת שהיא יקרה יותר לא בהכרח תהפוך לך את החיים לפשוטים יותר . . . . ובאמת, אם בעולם ה-Data היום אז Hadoop יושב יותר . . הוא ה-Data Lake בסוף, הוא ה-Data - שם שטוח, אין שם Index-ים, אין כאילו . . . עושים בסוף MapReduce-ים, וזה לא משנה אם בסוף תשים על זה Hive, לצורך העניין, שנותן לך Interface שהוא SQL-י אז אתה לא חסום על ידי זה שזה SQL או לא SQL - אבל בסוף ה-Data שטוח, והוא לא ממש יעיל לשליפות מהירות . . . אם אתה רוצה שליפות מהירות אז אתה צריך ללכת ל-Data Warehouse, ששם מאוד חשוב לבנות את ה-Data “נכון”, בשביל השליפה שאתה רוצה - ושם העולם שבו אתם משחקים.
(רן) אז אתה אומר “אל תחשוב הרבה מראש - שים את ה-Data, איך שזה נראה לך טבעי, ואנחנו כבר נדאג לזה שהשליפות תיהינה מהירות, באמצעות “הקסם הזה” שנקרא GPU” . . . .
- (שחר) כן, גם בעצם ההכנסה תיהיה מאוד מהירה וגם השליפה תיהיה מאוד מהירה - ובסופו של דבר, בעיות שאתה רוצה לקבל עליהן תובנות עסקיות בזמן קצר ב-Peta-Scale, אז נוכל לתת מענה באמצעות ה-Database שלנו.
(רן) אז כששולפים Data מ-Database, אני מניח שיש כמה שלבים - בחיים לא כתבתי Database אבל אני מנחש: אתה צריך לקרוא את זה מהדיסק, אתה צריך להביא את זה לזיכרון, אתה צריך להביא את זה ל-CPU או ל-GPU, לעשות איזשהו עיבוד, לפעמים לעשות Merge או Join בין כמה Data-Sets . . .
אבל ה-GPU זה רק רכיב אחד בכל הסיפור הזה, וגם אם תצליח לשכנע אותי שאוקיי - אפשר לעשות את החישובים האלו יותר מהר עם GPUs, זה בסך הכל רכיב אחד - ואני לא בטוח שזה בכלל צוואר-הבקבוק . . . אולי אתה יודע להגיד?
- (שחר) אתה צודק בהחלט - ותיכף נדבר על ה-GPU ואיפה היתרונות שלו, אבל זה רק חלק מהעניין.
- בסוף, אנחנו שילוב של GPU ושל ארכיטקטורה של Shared-Storage - שהשילוב ביניהם נותן לנו בעצם את היכולת - את ה-Linear Scale שאנחנו מציעים ואת היכולת לתמוך ב-Peta-Byte Scale.
(רן) אז נתחיל אולי מה-Basics - נניח שיש לי קוד של Database שיודע לעשות Merge בין שתי טבלאות, והוא כתוב נניח ב-++C - אבל מעל CPU. איך אתה לוקח את הקוד הזה ומעביר ל-GPU? פשוט מתרגם את זה אחד-לאחד ב-CUDA או Whatever?
- (שחר) אז כן - בגדול, התשובה היא כן.
- אנחנו משתמשים ב-CUDA ובספריות שנותנות לנו לתכנת מעל CUDA כדי לעשות את אותן הפעולות מעל ה-GPU
- אבל אנחנו בעצם נהנים מריבוי ה-Core-ים, מאלפי ה-Core-ים שה-GPU נותן לנו - ולכן אנחנו יכולים למקבל את אותן הפעולות ולעשות אותן בצורה הרבה יותר מהירה.
(רן) אז כל תוכנית ב++C - אני פשוט יכול לקחת מה-CPU ולהמיר אותה ל-GPU - וזה ימוקבל? אני מניח שהתשובה היא “לא”, אבל תסביר לי איך . . .
- (שחר) זהו, אז לא כזה פשוט . . . . אני חייב להודות שבסופו של דבר אני איש Product ולא איש פיתוח, אני לא יודע יותר מדי לפרט על הדברים האלה.
- אבל ברמה המאוד כללית ופשוטה, התשובה היא “כן” . . . .
- מצד שני - אנחנו חברה שקיימת כבר כמה שנים - וזה לקח יותר מיומיים לבנות את זה . . .
- אז זה אפשרי, אבל לאו דווקא הדבר הכי פשוט בעולם.
(רן) אוקיי, אז נניח שאנחנו יודעים לתרגם את הלוגיקה הזאת, שנניח שהיא קיימת ב-MySQL או בכל Database אחר שהייתה כתובה מעל CPU - אל מעל GPU, אוקיי.
איך אנחנו פותרים את שאר צווארי הבקבוק? זיכרון, קריאה מדיסק, העברה של Data וכו’ . . .
- (שחר) אוקיי, אז כמו שהזכרתי - דבר ראשון, אנחנו עובדים בארכיטקטורת Shared-Storage, שזה אומר שככל שיהיה לנו יותר Compute Node, יותר GPUs - כשה-GPUs יכולים להיות בעצם גם מספר GPUs לכל Node - אנחנו יכולים להעלות את ה-Scale שלנו בצורה ליניארית.
- אנחנו בעצם עושים שילוב של שימוש ב-CPU וה-GPU, כשה-CPU משתמש לפעולות “הפשוטות” - להכנת ה-Data - כדי להעלות את ה-Data ל-GPU ולהכין אותו לפעולות “הכבדות”, לפעולות שדורשות מקבול.
- בעצם, אנחנו לוקחים את המידע שאנחנו צריכים כשהוא דחוס, כשהוא מקומפרס (Compressed) מהדיסק ומעלים אותו ל-GPU
- ב-GPU בסופו של דבר יש זיכרון מוגבל יחסית, ויש לנו את צוואר הבקבוק של ה-Bus, שגם הוא בסוף - ה-I/O הזה - הוא יקר.
- אז אנחנו מעלים את הדאטה בצורה שהיא מקומפרסת (Compressed), עושים את ה-Decompress על ה-GPU - ואת כל פעולות החישוב וההשואות וכו’ אנחנו עושים ב-GPU עצמו.
- כשאנחנו שמים הרבה מאוד דגש באלגוריתמים שלנו על להעלות רק את מה שצריך ולעשות רק את מה שצריך ולהיות מאוד יעילים
- כי שוב - הדגש הוא על Big Data ועל לתת זמני-ריצה טובים בכמויות גדולות של מידע.
(אורי) אבל בעצם, מה שתיארת עכשיו נכון כמעט לכל פעולה שאתה עושה על GPU . . . . תן לנו איזו דוגמא ל-Flow ש . . . אני לא יודע, 80% מהמאזינים שלנו מכירים - מה ההבדל בין איך שזה מבוצע על CPU ועל GPU? איזשהו Select-משהו-משהו . . .
- (שחר) אז אני חושב שהדוגמא הפשוטה ביותר זה לעשות Order-By, לעשות Sort - אלגוריתמית, אין הבדל מהותי בין מה שאנחנו עושים על CPU ועל GPU.
- ההבדל הוא שבאמצעות ה-CUDA וה-General-Purpose-GPU, אנחנו פשוט מקבלים יותר Core-ים ואנחנו יכולים למקבל את התהליך בצורה טובה יותר ולהאיץ אותו בצורה הזאת.
- אין פה איזה משהו ברמת האלגוריתם או הקוד שצריך להיות שונה.
(אורי) אבל אני מניח שיש לך חתיכת-קוד או חתיכת-Data שאתה מריץ עליה קוד, או למשל Sort - יש תלות בין חלקים שונים של ה-Data כדי לעשות את ה-Sort הזה . . . אז זה לא שאתה יכול פשוט לקחת חתיכת-Data ולעשות עליה מניפולציה מסויימת והיא לא תלויה בחתיכת-Data אחרת, שרצה על Core אחר, נכון? אז איך זה עובד שונה בין CPU ל-GPU?
- (שחר) אז האלגוריתם עצמו הוא לא מאוד שונה, כי שוב - זה נכון שאני צריך לקחת הרבה חתיכות של Data, למיין כל אחת מהן ובסוף למרג’ג’ (To Merge) אותן ביחד כדי לקבל תוצאה סופית ממויינת.
- אבל בסך הכל, אני עושה את זה בין חתיכות שאני מעלה ל-GPU - או אם יש לי כמה GPUs במקביל אז בינהם - ובסוף מאחד.
- הפעולות והאלגוריתם - הוא לא שונה. ההבדל הוא רק בזה שאני יכול לעשות יותר חתיכות כאלה במקביל - וכל חתיכה לוקחת לי פחות זמן, כי אני יכול להאיץ את התהליך באמצעות ריבוי ה-Core-ים.
(אורי) אז תן לי, רגע . . . אני זורק פה Statement - בעצם אתה עושה MapReduce, אבל במקום לעשות אותו על Multiple Cores או Multiple Machines ב-Hadoop, אתה מנצל את זה שיש לך “אלף Core- ים”, ואתה עושה את ה-MapReduce בתוך המכונה?
- (שחר) אז בגדול זה נכון - רק שצריך לזכור שגם יש לי את הארכיטקטורת Shared-Storage
- זאת אומרת שזה לא רק . . . אם אנחנו מדברים על MapReduce, אז יש לנו Data Affinity ואנחנו בעצם רוצים להביא את ה . . . .
(רן) צריך לדאוג “להסיע את ה-Data בין השלבים השונים” . . . .
- (שחר) בדיוק . . . . .
(רן) . . . . ופה יש לך Shared Storage, אז זה יותר פשוט.
- (שחר) בדיוק - בגלל ה-Shared Storage, ככל שיהיו לי יותר GPUs וככל שיהיו לי יותר Nodes . . . .
(אורי) אבל זה נכון גם ל . . . . זה לא קשור ל-GPU . . . . גם אם אתה עושה את זה על CPU.
(רן) כשאנחנו מדברים על “Shared Storage” - הכוונה היא “על ה-Host”? או שיש פה איזשהו Cluster? . . .
- (שחר) זה אפילו SAN, ברוב המקרים . . . אצלנו, בסוף, ה-Bandwidth הוא מאוד חשוב - אנחנו צריכים Throughput מאוד מהיר לרשת . . .
(אורי) . . . אחרת זה יהיה ה-Bottleneck שלכם . . . .
- (שחר) כן . . . . אז לרוב, אנחנו אנחנו מדברים על פתרונות של Bandwidth -
(אורי) אבל יש לי פה שאלה - אנחנו פה צוללים . . . . - נניח שיש לנו Shared Storage ונניח שיש לנו Core-ים על גבי כמה מכונות, ואנחנו נעשה את הפעולות Map שלנו על כל אחת מהמכונות, נכתוב את התוצאות ל-Shared Storage ואז נעשה, עם עוד כמה מכונות, את ה-Reduce - האם גם ברמת המכונה וגם ברמת ה-Memory של המכונה אתם עושים את ה-Map וה-Reduce בפנים, בגלל הארכיטקטורה של ה-GPU? . . . האם ה-GPU פה הוא לא רק “Processor עם מלא-מלא Core-ים”’ אלא גם בארכיטקטורה שלו-עצמו אתם מצליחים בפנים, בתוכו, לעשות חלק מהמניפולציות, בין ה-Compute-ים שנעשים בכל אחד מה-Core-ים האלה?
- (שחר) כן, אני מבין את השאלה - פשוט לצערי אני לא כל כך . . . קצת צללנו עמוק ואני לא בטוח לגבי התשובה אז אני לא רוצה סתם . . . .
(אורי) אוקיי - נעלה, ניקח אוויר ונמשיך.
(רן) אז בואו, רגע, ננסה להבין איך נראית הארכיטקטורה: אז יש איזשהו Cluster, שיש בו Shared Storage . . . . גודל טיפוסי של ה-Cluster זה - מה? 5? 10? 20? . . . .
- (שחר) זה מאוד תלוי בגודל ה-Data, אבל לרוב זה סדרי הגודל . . .
- (שחר) בהחלט, זה הסדר-גודל
- והרבה פעמים אנחנו מתחרים מול Cluster של Hadoop, שיכול להיות להכיל עשרות או מאות Server-ים . . .
(רן) אוקיי - עכשיו, כל אחד מה-Server-ים הוא יקר ויש לו GPU - ו-GPU נכון להיום עדיין יותר יקר, אבל אתה אומר שבחישוב הכללי, כשאתה מסתכל על עלות השרתים ואולי על כל שאר הדברים שמסביב, זה יכול לצאת יותר זול.
- (שחר) נכון
(אורי) בתנאי שפתחת את ה-Bottleneck-ים האחרים . . .
- (שחר) נכון, כן . . . בתנאי שיש לך . . . בעיקר את ה-Bandwidth, את הרשת המתאימה.
(רן) אוקיי, אז עכשיו אני שולח שאילתא - אני מניח שאתם תומכים בפרוטוקולים סטנדרטיים כמו ODBC וכו’ - אני שולח שאילתא שיש איזשהו Node שמקבל את השאילתא ומתחיל לפזר את העבודה בתוך ה-Cluster. ואז עולות שאלות של Redundancy ואולי, אתה יודע - אולי אחד מהם קצת איטי . . . .
(אורי) ויש Fragmentation . . . .
(רן) כן . . . . ויכול להיות שכרגע הם גם עסוקים בשאילתות אחרות וכו’ - זאת אומרת, זו לא השאילתא היחידה שחיה בעולם, אולי בדיוק מכניסים Data . . . . איך מתמודדים על כל הסמטוחה הזאת, ולמה אתם רוצים את זה? . . . .
(אורי) עשרים שנה, בכל זאת . . . .
- (שחר) אז אנחנו רוצים להתמקד ב-GPU - אנחנו, ברמת ה-GPU, מטפלים בכל זמן נתון בשאילתא אחת
- או יותר נכון ברמת ה-Worker - אנחנו מריצים Worker-ים על ה-GPU שמטפלים בחתיכות האלה של המידע.
- אז כל Worker כזה מטפל בזמן נתון בשאילתא אחת - ויכולים להיות כמה Worker-ים שעובדים על GPU.
- אבל אנחנו . . . מן הסתם זה האתגר - לראות שאנחנו יודעים לעקוב אחרי כל החלקים של השאילתא, לוודא שכל ה-Processing מתבצע בצורה טובה.
- ומכיוון שגם בסופו של דבר אנחנו ACID Database - אז במידה ויש בעיות, אנחנו צריכים להכשיל את אותה השאילתא ואנחנו צריכים להבטיח Consistency.
(רן) . . . וזה מעניין - זאת אומרת, אתם Database אנליטי במהותו, אני מניח - ה-Use case עצמו זה לאנליסטים ושאילתות אנליטיות - אבל אתם גם ACID. עכשיו, יש הרבה Database-ים אנליטיים שלא צריכים ACID-י. למה בחרתם להיות גם ACID? תאר לי קצת . . . רק להסביר - ACID מאפשר לנו אטומיות ויכולות טרנזקציוניות וכו’, שאלו דברים שבדרך כלל צריכים ב-OLAP - ב-Database-ים שהם Online Transactional Processing - והרבה פעמים דווקא לא נדרשים ב-Database-ים שהם אנליטיים ושבדרך כלל “נהנים” או יכולים להנות מזמני תגובה יותר איטיים - ובדרך כלל ההכנסות אליהם קורות ב-Batch-ים ואין כל כך חשש לטרנזקציות.
למה אתם צריכים גם את זה וגם את זה?
- (שחר) אז אחד מה- Use cases העיקריים שאנחנו משרתים זה מה שנקרא Data Processing Pipelines -
- אנחנו חלק מאיזשהו תהליך של ELT או איזשהו תהליך של Crunch של ה-Data ושל הכנת ה-Data.
- ושוב - באים לענות על הבעיה של “יש לי Data מאוד גדול, אני רוצה לקבל תובנות מהר, ה-Timing הוא משמעותי”
- אנחנו לאו-דווקא מי שבסוף יתן את התוצאה אלא חלק מה-Pipeline שמעבד את המידע.
- ובתהליך הזה אנחנו כן - הסידור הוא חשוב: אנחנו צריכים להבטיח Consistency ואנחנו צריכים להבטיח שה-Data יטופל כמו שצריך ושלא נאבד מידע בתהליך.
(רן) מעולה - הבנו.
נושא שמדובר לא מעט בזמן האחרון זה Use Cases של . . . - פעם היו קוראים לזה Data Warehouse, אחרי זה עברנו ל-Data Lake - והיום יש מושג חדש שנקרא Data Lake-house . . . היית מאמין?
אז בוא תעשה לנו קצת סדר - מה המשמעות של המושגים האלה? מהם ההבדלים בין שלושת המושגים?
(שחר) בהחלט - אנחנו באוגוסט, מה . . . .
(רן) בית-הקיץ של ה-Data . . .
- (שחר) אז כן - בואו נלך ונעשה קצת סדר בדברים, בסדר כרונולוגי, מה שנקרא:
- אז ה-Data Warehouse, כשמו-כן-הוא: הוא היה “המחסן” של ה-Data -
- זה בעצם Database, בסופו של דבר, שמנהל את ה-Data.
- רוב ה-Data היה Data שהוא Structured
- והוא בסופו של דבר “סוג-של-Database גדול”
- (שחר) Strict . . .
(רן) כן, Strict . . . נפחים - גדולים יחסית? קטנים? יחסית למה ש . . .
- (שחר) הכל יחסי - בימים שהוא נולד אני חושב שהם היו גדולים, במושגים של היום זה כבר נפחים לא מאוד מרשימים . . .
(אורי) אני חושב שזה תלוי מאוד באפליקציה, כאילו - מאוד תלוי מה האפליקציה שלך דורשת ומה ה-Business שלך דורש. הרבה מאוד מהדברים האלה כמובן משמשים ל-Business Intelligence ואוקיי . . . . עד כמה החברה היא Data-Driven? . . .
(אורי) פחות או יותר . . .
- (שחר) מאוחר יותר היכרנו את ה-Data Lake
(רן) אז לדוגמא - למשל, אפשר לזרוק את כל ה-Bucket-ים ב-S3 - כל אחד שם שם מה שבא לו ואיך שבא לו, בגדול - יכול להיות עם סכמות שונות לחלוטין, יכול להיות עם דופליקציה (Duplication) בין ה-Data-אות - ולפעמים, אם יש לך מזל, יש לך איזשהו Meta-Data שמסביר מה קורה שם. אז אולי קצת בניגוד ל-Data Warehouse, ששם הסכמה הייתה מאוד Rigid, מאוד Explicit - כאן הרבה פעמים הסכמה היא Implicit. זאת אומרת שאתה יכול להסתכל על הקובץ ולהבין מה יש שם, וכמו שאמרתי - אם יש לך מזל אזי ש שם איזשהו Meta-Data, בחברות שכמובן מקפידות על זה אז יש לך הרבה מזל . . . .אבל בגדול זה די “ביצה” נקרא לזה אולי . . .
(אורי) כאילו, S3 הוא Storage - יש שם Data Lake - יש שהם עוד יותר Structured, זאת אומרת - זה לא “סתם Storage” - זה Storage שיש לו פורמט מסויים.
(רן) לחלוטין . . . אז גם יש פורמטים יותר מודרניים ויעילים וגם ישנן שיטות אחסון, שגם מאפשרות Consistency וכו’ - אבל עדיין ה-Data הוא הרבה הרבה פחות Structured מהפתרון הקודם . . .
- (שחר) נכון, ומה שמשותף גם ל-Data Warehouse וגם ל-Data Lake זה באמת עניין ה-Storage
- הפתרונות הללו ניהלו את ה-Storage
- ופה נכנס בעצם ה-Data Lake-house - כשה-Data Lake-house הוא בעצם פתרון שהוא “Storage-less”
- זה פתרון שהוא Engine - פתרון שעובד מעל פורמטים של קבצים שניהיו מאוד נפוצים בשנים האחרונות כמו Parquet וכמו ORC וכמו JSON.
- ובעצם הוא מתשאל אותם כקבצים חיצוניים
- הוא יודע לקבל מקורות מידע יותר מודרניים, כמו Streaming של Data
- בעצם, הוא משמש כמנוע שיודע לתשאל את ה-Data - בלי לנהל אותו.
- בעולם של היום, כשהכמויות של ה-Data הן מאוד גדולות וכשאנחנו לא רוצים לשכפל את המידע, הפתרון הזה ניהיה מאוד מאוד נפוץ ורלוונטי.
(רן) זאת אומרת ש-Use case טיפוסי הוא כזה שבו יש לך Data Lake-house, שידע לתקשר בחלק מהמקרים עם Kafka ובחלק מהמקרים עם S3 ובחלק מהמקרים אולי עם Database SQL-י כלשהו - והוא “בסך הכל” המנוע החישובי שיודע לעשות אגרגציות (Aggregation) מכולם ולתשאל. הבנתי.
- (שחר) אנחנו, מסורתית, היינו Analytical Data Warehouse - וזה גם הפתרון העיקרי שהיום אנחנו Deployed איתו אצל לקוחות קיימים.
- ממש בימים אלה אנחנו יוצאים עם פתרון חדש - שהוא Query Engine
- שהוא בדיוק פתרון ל-Data Lake-house -
- שהוא Storage-less, שהוא מתקיים בענן
- ושהוא בעצם אמור לקחת את ה-Core Capabilities שלנו - ולתת אותן כפתרון שהוא Storage-less.
(רן) אז זה סוג של . . . .
(אורי) מה זה משנה איפה הוא מתקיים - אם הוא בענן או “בעולם האמיתי”? הוא בסוף Compute Engine שמתחבר ל-Storage - מה שתרצה . . . .
- (שחר) נכון, זה באמת לא משנה - העניין הוא שבעולמות הענן, הנושא של “אל תנהל לי את ה-Data!”, “אל תשכפל לי את ה-Data!” זה Pain הרבה יותר משמעותי . . .
(אורי) כמו כל דבר בענן . . .
- (שחר) נכון . . . נושא העלות הוא רגיש.
(רן) אז מצד אחד, יש לכם את החוזקה של Compute - אתם יודעים לעשות Compute בצורה מאוד יעילה. Storage זה משהו שהייתם צריכים לעשות כי הייתם צריכים, אבל זה לא היה . . . זו לא הייתה חוזקה.
אמרת גם שהשתמשתם גם ב-Shared Storage - אבל פה אתם כבר לא יכולים לעשות את זה, אם אני מבין נכון. זאת אומרת . . .
- (שחר) נכון . . .
(רן) אז איך אתם בכל זאת עושים Compute בצורה יעילה? מצד אחד . . .
- (שחר) S3 מגיע למהירויות מאוד יפות - ב-Instance-ים של GPU, שכמו שאמרנו, בכל זאת אנחנו מדברים Instance-ים שהם קצת יותר יקרים - אנחנו מקבלים מהירויות של 25Gb/s ו-50Gb/s, מהירויות ש-Per-Instance הן Good enough.
(אורי) Giga-Byte או Giga-Bit? . . .
- (שחר) Giga-Bit . . .
- ואלו מהירויות שבעצם נותנות לנו להגיע לקצבים טובים וגבוהים
- אין לנו . . . זו לא מגבלה.
(רן) ונזכיר שאתם Data Base אנליטי, אז מה שחשוב זה ה-Throughput ופחות ה-Latency
- (שחר) נכון
(רן) בגלל זה אנחנו מדברים על ה-Throughput, בקיצור . . . .
אולי נדבר על כמה Use-Cases? - איך אתה רואה אנשים שמשתמשים ב-Database-ים שלכם?
- (שחר) ה-Use-case העיקרי, אני חושב, שלקוחות שלנו משתמשים בו, זה עולם ה-Manufacturing
- בעיקר יצרני Semiconductors ואלקטרוניקה - מכונות עם הרבה מאוד סנסורים, עולמות ה-IOT
- בעצם, אוספים ברצפת הייצור הרבה מאוד מידע מסנסורים - ובעצם משתמשים באלגוריתמים של Anomaly Detection
- המטרה שלהם היא כמה שיותר מהר לזהות את הבעיות - עד כמה שאפשר לצפות את הבעיות מראש, עוד לפני שיצאו יחידות תקולות מרצפת הייצור.
- ובעצם ככה לחסוך, למנוע הפסדים ולהעלות את איכות הייצור.
- זה Use Case אחד מאוד נפוץ.
(רן) אז אתה אומרים שמרכיבים ומייצרים Chip-ים ויכול להיות שיש סנסורים שנותנים דיווח שהוא קצת שונה מתמיד - ואז אתה בכל פעם צריך ללכת ל-Database ולתשאל אותו, ואז להריץ Anomaly Detection. ככל שתוכל לעשות את זה יותר מהר . . . כמו שאומרים - “גילוי מוקדם מונע אסון”. ברור.
- (שחר) כן . . .
(אורי) אני לא יודע . . . אני מוצא שכל העולם של Visibility ו-Observability [כזה - 433 Breaking Down Observability with Nitay Milner], גם בתוך מערכות עם הרבה מאוד מידע שזורם כל הזמן . . . כל מי שמחזיק חברת-Web בגודל סביר-פלוס - יש לו כמויות Data שהן לא יותר קטנות מעולם ה-IOT ורצפת ייצור של . . . [הכמויות ברצפת-ייצור הן אסטרונומיות]
- (שחר) אני מסכים, וכמו שאמרתי - היום, רוב הלקוחות הקיימים שלנו הם מעולמות ה-On-Prem: זה Manufacturing, שזה עולם מאוד “מסורתי”, נקרא לו - ועולם מאוד On-Prem-י באופיו.
- היום, עם ה-Offering החדש שהזכרתי שאנחנו יוצאים איתו, של ה-Query Engine - איתו באמת אנחנו עובדים היום עם חברות Ad-Tech, חברות Web . . .
- שאני לגמרי מסכים - מייצרות כמויות מאוד גדולות של Data, רוצות תובנות מהירות - וגם לשם הפתרון הוא מאוד רלוונטי.
- זה פשוט חברות שמתקיימות בעולם ה-Cloud - ואנחנו עכשיו, ככה, מתחילים לעשות את צעדינו הראשונים המשמעותיים ב-Cloud.
(רן) אוקיי, אז דיברנו על חברות Manufacturing ודיברנו על חברות Cloud. יש עוד Use-Case שונה שהיית רוצה להזכיר?
- (שחר) כן - אני אזכיר כם עולם ה-TelCo.
- בעולם ה-TelCo, אלגוריתמים של Network Optimization
- שוב - מקומות שיש בהם הרבה מאוד Data שמגיע מהרשת - מה-Switch-ים, מהאנטנות, מהטלפונים עצמם שמדברים איתם
- ופה, ה-TelCo רוצה פשוט להעלות את ה-Quality - של השיחות, של ה-Data - שהלקוחות שלו מקבלים.
- ומצד שני, לחסוך כסף - בסוף, הציוד, האנטנות - צורכים הרבה חשמל, דורשים הרבה Maintenance . . .
- וגם פה - ככל שנוכל To better tune them ולגלות את הבעיות מוקדם, אז גם הTelco Provider יחסוך עלויות וגם הלקוחות יקבלו שירות יותר טוב.
(רן) בקיצור - מצאנו מי אחראי ל-5G! . . . . סוף סוף . . .
(רן) שחר - תודה רבה שבאת! היה סופר-מעניין. לא ידעתי שיש Database-ים שאפשר באמת לבנות מעל GPU . . . . זה כיף לשמוע. שיהיה בהצלחה! - (אורי) כבר 12 שנה! . . . - (שחר) תודה רבה, היה כיף.
האזנה נעימה ותודה רבה לעופר פורר על התמלול!
אין תגובות:
הוסף רשומת תגובה