Dremio: ניתוח נתונים פשוט ומהיר יותר

ז'אק נדאו הוא ה- CTO ומייסד דרמיו.

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

אם מסתכלים על שכבת הנתונים בפרט, מערכות NoSQL כמו MongoDB, Elasticsearch ו- Cassandra דחפו את המעטפה מבחינת זריזות, יכולת הרחבה וביצועים ליישומים תפעוליים, כל אחד עם מודל נתונים שונה וגישה לסכימה. לאורך הדרך צוותי פיתוח רבים עברו למודל מיקרו-שירותים, והפיצו נתוני אפליקציות על פני מערכות בסיסיות רבות ושונות.

מבחינת ניתוח, מקורות נתונים ישנים וחדשים מצאו את דרכם לתמהיל של מחסני נתונים מסורתיים ואגמי נתונים, חלקם ב- Hadoop, אחרים ב- Amazon S3. והעלייה של פלטפורמת הזרמת הנתונים של קפקא יוצרת דרך אחרת לגמרי לחשוב על תנועת נתונים וניתוח של נתונים בתנועה.

עם נתונים בכל כך הרבה טכנולוגיות שונות ופורמטים בסיסיים, ניתוח על נתונים מודרניים הוא קשה. כלי BI וניתוח כגון מודלים Tableau, Power BI, R, Python ו- Machine Learning תוכננו לעולם בו הנתונים חיים במאגר יחסי יחסי בעל ביצועים גבוהים. בנוסף, משתמשים בכלים אלה - אנליסטים עסקיים, מדעני נתונים ומודלים של למידת מכונה - רוצים את היכולת לגשת, לחקור ולנתח נתונים בעצמם, ללא כל תלות ב- IT.

היכרות עם מארג הנתונים Dremio

כלי BI, מערכות מדעי נתונים ומודלים של למידת מכונה פועלים בצורה הטובה ביותר כאשר הנתונים חיים במאגר יחסי יחסי בעל ביצועים גבוהים. למרבה הצער, לא שם הנתונים חיים כיום. כתוצאה מכך, ל- IT אין ברירה אלא לגשר על פער זה באמצעות שילוב של פיתוח ETL מותאם אישית ומוצרים קנייניים. בחברות רבות, ערימת האנליטיקה כוללת את השכבות הבאות:

  • בימוי נתונים . הנתונים מועברים ממאגרי מידע תפעוליים שונים לאזור הזמנת יחיד כגון אשכול Hadoop או שירות אחסון ענן (למשל, Amazon S3).
  • מחסן נתונים . אמנם ניתן לבצע שאילתות SQL ישירות באחסון Hadoop ובענן, אך מערכות אלה אינן מיועדות לספק ביצועים אינטראקטיביים. לכן, קבוצת משנה של הנתונים נטענת בדרך כלל למחסן נתונים יחסי או מסד נתונים MPP.
  • קוביות, טבלאות צבירה ותמציות BI . על מנת לספק ביצועים אינטראקטיביים על מערכי נתונים גדולים, על הנתונים להיות מצטברים מראש ו / או באינדקס על ידי בניית קוביות במערכת OLAP או בטבלאות צבירה ממומשות במחסן הנתונים.

ארכיטקטורה רב שכבתית זו מציגה אתגרים רבים. הוא מורכב, שברירי ואיטי ויוצר סביבה שבה צרכני הנתונים תלויים לחלוטין ב- IT.

דרמיו מציג נדבך חדש בניתוח נתונים שאנו מכנים מארג נתונים בשירות עצמי. Dremio הוא פרויקט קוד פתוח המאפשר לאנליסטים עסקיים ומדעני נתונים לחקור ולנתח את כל הנתונים בכל עת, ללא קשר למיקומם, גודלו ומבנהו. Dremio משלב ארכיטקטורה מוגדלת עם ביצוע ותאוצה עמודתיים כדי להשיג ביצועים אינטראקטיביים בכל נפח נתונים, תוך מתן אפשרות לאנשי IT, מדעני נתונים ואנליסטים עסקיים לעצב בצורה חלקה את הנתונים בהתאם לצרכי העסק.

בנוי על חץ אפאצ'י, פרקט אפאצ'י וקלציט אפאצ'י

Dremio משתמש באחסון וביצוע עמודיים עם ביצועים גבוהים, המופעל על ידי חץ אפאצ'י (עמוד בזיכרון) ואפצ'י פרקט (עמודים בדיסק). Dremio משתמש גם באפצ'י קלציט לניתוח SQL ואופטימיזציה של שאילתות, ובונה על אותן ספריות כמו מנועים רבים אחרים מבוססי SQL, כגון Apache Hive.

Apache Arrow הוא פרויקט קוד פתוח המאפשר עיבוד ומחלף נתונים בזיכרון העמודים. החץ נוצר על ידי Dremio, וכולל התחייבויות של חברות שונות, כולל Cloudera, Databricks, Hortonworks, Intel, MapR ו- Two Sigma.

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

מגוון פרויקטים אחרים אימצו גם את חץ. Python (Pandas) ו- R הם בין הפרויקטים הללו, המאפשרים למדעני הנתונים לעבוד בצורה יעילה יותר עם נתונים. לדוגמא, ווס מקיני, יוצר ספריית הפנדה הפופולרית, הוכיח לאחרונה כיצד חץ מאפשר למשתמשי פייתון לקרוא נתונים בפנדות בלמעלה מ 10 GB לשנייה.

כיצד Dremio מאפשר נתוני שירות עצמי

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

כל היכולות הללו נגישות באמצעות ממשק משתמש מודרני, אינטואיטיבי, מבוסס אינטרנט:

  • גלה . Dremio כולל קטלוג נתונים מאוחד שבו משתמשים יכולים לגלות ולחקור מערכי נתונים פיזיים ווירטואליים. קטלוג הנתונים מתעדכן אוטומטית לאחר הוספת מקורות נתונים חדשים, וככל שמתפתחים מקורות נתונים ומערכי נתונים וירטואליים. כל המטא-נתונים באינדקס באינדקס ביצועים גבוהים, הניתנים לחיפוש ונחשפים למשתמשים בכל ממשק Dremio.
  • אוצרת . Dremio מאפשר למשתמשים לאצור נתונים על ידי יצירת מערכי נתונים וירטואליים. תומכים במגוון טרנספורמציות הצבעה ולחיצה, ומשתמשים מתקדמים יכולים להשתמש בתחביר SQL כדי להגדיר טרנספורמציות מורכבות יותר. כאשר השאילתות מתבצעות במערכת, Dremio לומד על הנתונים ומאפשר לה להמליץ ​​על שינויים שונים כגון צירופים והמרות מסוג נתונים.
  • Dremio מסוגל להאיץ מערכי נתונים עד פי 1000 על הביצועים של מערכת המקור. משתמשים יכולים להצביע עבור מערכי נתונים שלדעתם צריכים להיות מהירים יותר, והיוריסטיקה של דרמיו תשקול את ההצבעות הללו בקביעה באילו מערכי נתונים להאיץ. כאופציה, מנהלי מערכות יכולים לקבוע באופן ידני אילו מערכי נתונים להאיץ.
  • Dremio מאפשר למשתמשים לשתף נתונים באופן מאובטח עם משתמשים וקבוצות אחרים. במודל זה קבוצת משתמשים יכולה לשתף פעולה במערך נתונים וירטואלי שישמש לעבודה אנליטית מסוימת. לחלופין, משתמשים יכולים להעלות נתונים משלהם, כגון גיליונות אלקטרוניים של Excel, כדי להצטרף למערכי נתונים אחרים מהקטלוג הארגוני. יוצרי מערכי נתונים וירטואליים יכולים לקבוע אילו משתמשים יכולים לשאול או לערוך את מערכי הנתונים הווירטואליים שלהם. זה כמו Google Docs עבור הנתונים שלך.

כיצד פועלת האצת נתונים של Dremio

Dremio משתמש בייצוגים פיזיים ממוטבים מאוד של נתוני מקור הנקראים השתקפות נתונים. חנות ההשתקפות יכולה לחיות ב- HDFS, MapR-FS, אחסון בענן כגון S3, או אחסון צמוד ישיר (DAS). גודל חנות ההשתקפות יכול לחרוג מגודל הזיכרון הפיזי. ארכיטקטורה זו מאפשרת ל- Dremio להאיץ יותר נתונים בעלות נמוכה יותר, וכתוצאה מכך יחס פגע מטמון גבוה בהרבה בהשוואה לארכיטקטורות מסורתיות בלבד בזיכרון. השתקפויות נתונים מנוצלות באופן אוטומטי על ידי האופטימיזציה המבוססת על עלות בזמן השאילתה.

השתקפויות נתונים אינן נראות למשתמשי הקצה. שלא כמו קוביות OLAP, טבלאות צבירה ותמציות BI, המשתמש אינו מתחבר במפורש לשיקוף נתונים. במקום זאת, משתמשים מנפיקים שאילתות על פי המודל הלוגי, וכלי האופטימיזציה של Dremio מאיץ את השאילתה באופן אוטומטי על ידי ניצול השתקפות הנתונים המתאימים לשאילתה בהתבסס על ניתוח העלויות של האופטימיזציה.

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

כיצד Dremio מטפל בשאילתות SQL

יישומי לקוח מוציאים שאילתות SQL ל- Dremio באמצעות ODBC, JDBC או REST. שאילתה עשויה לכלול מערך נתונים אחד או יותר, שעלול להתגורר במקורות נתונים שונים. לדוגמא, שאילתה עשויה להיות צירוף בין טבלת Hive, Elasticsearch ומספר טבלאות Oracle.

Dremio משתמש בשתי טכניקות עיקריות להפחתת כמות העיבוד הנדרשת לשאילתה:

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

שאילתות

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

פריקת מאגרי מידע תפעוליים

מרבית מאגרי המידע התפעוליים מיועדים לעומסי עבודה המותאמים לכתיבה. יתר על כן, פריסות אלה חייבות לטפל ב- SLA מחמירים, שכן כל זמן השבתה או ביצועים מושפלים יכולים להשפיע באופן משמעותי על העסק. כתוצאה מכך, מערכות תפעוליות מבודדות לעתים קרובות מעיבוד שאילתות אנליטיות. במקרים אלו Dremio יכול לבצע שאילתות אנליטיות באמצעות השתקפות נתונים, המספקים עיבוד שאילתות יעיל ביותר האפשרי תוך צמצום ההשפעה על המערכת התפעולית. השתקפויות נתונים מתעדכנות מעת לעת על סמך מדיניות שניתן להגדיר על בסיס טבלה אחר טבלה.

שלבי ביצוע שאילתות

חיי השאילתה כוללים את השלבים הבאים:

  1. הלקוח מגיש שאילתה לרכז באמצעות ODBC / JDBC / REST
  2. תִכנוּן
    1. המתאם מנתח שאילתות למודל ההתייחסות האוניברסלי של דרמיו
    2. המתאם שוקל סטטיסטיקה זמינה על מקורות נתונים לפיתוח תוכנית שאילתות, כמו גם ליכולות פונקציונליות של המקור
  3. הרכז משכתב את תוכנית השאילתות לשימוש
    1. השתקפויות הנתונים הזמינות, בהתחשב בהזמנה, חלוקה והפצה של השתקפויות הנתונים
    2. היכולות הזמינות של מקור הנתונים
  4. ביצוע
  1. מוציאים לפועל מקריאים נתונים למאגרי חץ ממקורות במקביל
    1. מוציאים לפועל מבצעים את תוכנית השאילתות המשוכתבת.
    2. מבצע אחד ממזג את התוצאות ממבצע אחד או יותר ומעביר את התוצאות הסופיות לרכז
  1. הלקוח מקבל את התוצאות מהרכז

שים לב שהנתונים עשויים להגיע מהשתקפות נתונים או ממקורות הנתונים הבסיסיים. בעת קריאה ממקור נתונים, המנהל מגיש את השאילתות המקוריות (למשל MongoDB MQL, Elasticsearch Query DSL, Microsoft Transact-SQL) כפי שנקבע על ידי האופטימיזציה בשלב התכנון.

כל פעולות הנתונים מתבצעות בצומת המבצע, ומאפשרות למערכת להתאים את עצמה ללקוחות רבים בו זמנית תוך שימוש בכמה צמתים של רכז.

דחיפה של שאילתת דוגמה

כדי להמחיש כיצד Data Fabric משתלב בארכיטקטורת הנתונים שלך, בוא נסתכל מקרוב על הפעלת שאילתת SQL על מקור שאינו תומך ב- SQL.

אחד ממקורות הנתונים המודרניים היותר פופולאריים הוא Elasticsearch. יש הרבה מה לאהוב בחיפוש אלסטיקס, אך מבחינת ניתוח הוא לא תומך ב- SQL (כולל הצטרפות SQL). כלומר כלים כמו Tableau ו- Excel אינם יכולים לשמש לניתוח נתונים מיישומים הבנויים בחנות נתונים זו. יש פרויקט הדמיה שנקרא Kibana הפופולרי עבור Elasticsearch, אך Kibana מיועד למפתחים. זה לא ממש עבור משתמשים עסקיים.

Dremio מקל על ניתוח הנתונים ב- Elasticsearch בכל כלי מבוסס SQL, כולל Tableau. בואו ניקח לדוגמא את שאילתת SQL הבאה לנתונים עסקיים של Yelp, המאוחסנים ב- JSON:

בחר מדינה, עיר, שם, מספר ביקורת

FROM elastic.yelp.business

איפה

  ציין NOT IN ('TX', 'UT', 'NM', 'NJ') AND

  סקירת_ספירה> 100

סדר לפי ביקורת_ספר DESC, מדינה, עיר

מגבלה 10

Dremio מרכיב את השאילתה לביטוי ש- Elasticsearch יכול לעבד: