התחברת בהצלחה!
אתם כאלה מוכשרים - אבל אפשר לבחור רק שלוש יכולות

הכירו את Snowflake: ביג דאטה בענן להמונים

Snowflake היא פלטפורמת ענן של BI שמאפשרת גם לחברות קטנות לעשות מה שפעם רק חברות גדולות יכלו להרשות לעצמן לעשות בעולם ה-Big Data.

עידו שיחור | עודכן בתאריך
26/11/2020

יכול להיות ששמעתם על חברת Snowflake פעם לאחרונה כאשר דווח על ה-IPO הכי גדול אי פעם של חברת תוכנה. Snowflake הנפיקה השנה לפי שווי של 33B$ ועוד קפצה עד סוף המסחר לשווי מטורף של 71B$! רק בפברואר האחרון ניתן לה עוד שווי של 12.4B$ בסבב גיוס הון. אז האמת שאנחנו באיינולוג’י לא היינו מופתעים בכלל. כבר כשהתחלנו לעבוד עם Snowflake ב-2016 היה לנו ברור שמדובר ב-Game Changer בעולמות ה-Big Data לארגונים גדולים וסטארט-אפים כאחד.


אז מה בכלל החברה הזו עושה?
במשפט אחד – פלטפורמת (“ביג”) דאטה בענן.
Snowflake זה שירות מנוהל שמאפשר לך לנהל את הדטה הארגוני שלך ביעילות וגם להשתמש בדטה לכל פתרון BI ו-Data science שתעלה על דעתך. השירות יושב מעל פלטפורמות הענן של AWS, Google ו-Azure ומתפקד כמחסן נתונים (Data-lake / DWH) עם חיבוריות נוחה לכל מקום שממנו צריך לשאוב נתונים.

מה מיוחד ב-Snowflake?

שלושה דברים עיקריים:

צורת עבודה עם דאטה ב-Scale שעד כה הייתה שמורה רק לחברות גדולות עם כיסים קצת יותר עמוקים, נגישה עם Snowflake גם לחברות קטנות.

אי תלות ב-Data Engineers. שימוש בשירות של Snowflake לעומת שימוש בשיטות ובכלים אחרים מפחית במידה עצומה את התלות של הארגון ב-data engineers. זה מאפשר ל-Data Analysts לעבוד בצורה הרבה יותר עצמאית כי הדטה הרבה יותר נגיש ואינו מצריך תחזוקה, פיתוח וניהול של דברים שנדרשים בעבודה עם כלים אחרים כמו Redshift, Bigquery, Vertica או דטה-בייסים רלציוניים ובוודאי לעומת כלים כמו Athena, Presto, Hadoop, Hive שבוודאי ובוודאי כדאי להחליף מיד ב-Snowflake (ואפשר להחליף ב-95% מהמקרים לדעתי).

נוחות ו״סליקינס״. כל פיצ׳ר שאתה נתקל בו בשימוש ב-Snowflake מפתיע אותך במידת הפשטות והנוחות שבה הוא מומש. עבור אנליסטים ו-Data Scientists זה כמו לנהוג על רולס-רויס.

 

קצת היסטוריה: למה Snowflake הוא Game-Changer

בשנת 2007 נכנסתי לתחום דאטה במקביל לכך שהתחלתי את התואר השני בסטטיסטיקה. עבדתי מטעם חברת G-Stat בפרוייקטים בבנק לאומי וב-YES. סביבת הדטה שעליה עבדתי באותם ימים הייתה ה-Data Warehouse (מחסן הנתונים). בכל חברה כזו ה-Data Warehouse היה שרת אחד גדול ומסיבי שמאפשר הרצה של שאילתות ותהליכי עיבוד דאטה ב-SQL. זה היה עולם מאוד נוח, כל הנתונים הקיימים היו נגישים ב-SQL והיה אפשר לבנות תהליכי דאטה מורכבים מאוד. כמובן שרק חברות גדולות ועשירות יכלו להרשות לעצמן תשתית כזו מלכתחילה. במגזר ההיי-טק, חברות און-ליין שמאופניינות בריבוי של דאטה עוד לא היו קיימות כל כך וגם שהתחילו לצוץ לקח זמן עד שידעו מה זה BI בכלל ושיש מתודולוגיה של Data Warehousing לעבודה נוחה עם דאטה. Waze, לצורך העניין הוקמה רק ב-2006, פייסבוק נכנסה לחיינו רק בשנת 2005. פלטפורמות ה-Data Warehouse שאפיינו את התקופה הזו היו Oracle, Teradata ו-MSSQL server.

שני תהליכים שהתרחשו במקביל כבר אז הלכו והתעצמו:

  1. עלייה של חברות און ליין שנותנות שירות למיליוני יוזרים מסביב לעולם (חברות מדיה, גיימינג, איקומרס ו-SaaS).
  2. התפתחות של שירותי הענן בדגש על AWS שהיו הראשונים לגדול ממש.


בשנת 2012 הצטרפתי לחברת און-ליין בתחום הE-Commerce ששירתה סדר גודל של 40M יוזרים ביום. עכשיו תחשבו על כמות הדטה שמייצרת חברת און ליין של 30 עובדים עם 40M יוזרים ביום לעומת כמות הדטה שמייצרת חברת בזק עם 6000 עובדים ו-2M לקוחות… אולי חברת האון-ליין יכולה לייצר יותר דטה אם לא בערך אותו הדבר לפחות. כבר אז כלי הענן התפתחו בצורה שהציעו טכנולוגיות שפותחו במקומות כמו Google, Yahoo ו-Facebook ואיפשרו לעבד כמויות גדולות של דטה. אבל זה היה ממש מסובך. פלטפורמת הדטה שלנו באותה חברת E-Commerce קטנה כללה שימוש בטכנולוגיות כגון Hive, Redshift, EMR. רדשיפט גם היה פריצת דרך כאשר יצא לשוק ב-2013 כי הוא איפשר לעשות את רוב הדברים ב-SQL פשוט מעליו. אבל לא יכלנו לשמור את כל הדטה שרצינו עליו בצורה נגישה כי זה היה יוצא יקר מידי, אז נאלצנו לפתח תהליכים מורכבים של data-engineering כדי להוריד עלויות. עדיין העלות של תשתית הדטה הצטברה לסדר גודל של 200,000$ בשנה בלי לשקלל את עלות האנשים שהיו צריכים לתחזק את הדבר הזה.

בשנים הבאות הלכו והתפתחו כלים שקצת הקלו על העבודה ואיפשרו לעבוד ב-scale גבוה - Presto, Athena, Spark. אבל עדיין הכלים האלה מצריכים ידע פיתוחי שהפך להיות מה שנקרא data engineering. תפקיד ה-data engineer שאחראי לפיתוח תהליכי ETL ועיבוד של נתונים השתלב בecho-system של חברות הייטק, אבל מדובר באנשים עם רקע של פיתוח שפחות מחוברים לתוצרים העסקיים של הדטה ויותר רואים את עצמם כמתכנתים. למרות הקידמה עדיין מערכות data של חברות און ליין נשארו דבר יקר בעיקר בגלל עלות ההקמה וכוח האדם היקר שנדרש לעבודה מהסוג הזה.

והיום אודות ל-Snowflake (ומאז 2016 בערך) ניתן לחזור לשיטות העבודה המסורתיות והפשוטות ברוב תשתיות הדטה. טעינת הנתונים ל-snowflake פשוטה, כל הדטה נגיש, אפשר לעבוד ב-scale והכל ב-SQL פשוט. באמצעות Snowflake, אנליסטים מוכשרים יכולים לבנות פתרונות data ב-SQL מקצה לקצה וכל העומס של ניהול תשתית big-data מורכבת יכול לרדת כמעט לגמרי.

היום אני חושב שאפשר לקרוא לתקופת כלי ה-Big data מסוג hadoop, hive, athena וכו', תקופת ה-Data Dark Ages. להערכתי בכ-95% מהארגונים שבהם יש פתרונות מסובכים שמבוססים על כל מיני open source frame works כגון Spark, Presto וכו' ניתן להוזיל המון ולעשות יותר באמצעות Snowflake.

 

איך בנוי השירות של Snowflake?

הפלטפורמה של Snowflake כוללת כמה רכיבים:

Centralized Storage

Snowflake מאפשר מקום אחד שממנו ניתן לנהל גם דטה חיצוני שיושב בקבצים וגם דטה שנטען לתוך Snowflake ונשמר בצורה אופטימלית לצורך שליפות מהירות. הדטה הזה נשמר כל העת במנותק משרתי העיבוד כך שהאיחסון שלו זול מאוד (מחירי S3 למביני עניין, 23$ לTB לחודש).

Multi-Cluster Compute – שכבת העיבוד

הרכיב שמשמש לעיבוד הדטה (טעינת נתונים והרצת שאילתות) הוא שכבה עצמאית שניגשת לאיחסון ועובדת רק כאשר יש צורך לשלוף את המידע ומעבד אותו (למביני עניין – storage-compute decoupling).
בשכבה הזו מנהלים את המשאבים שמוקצים לעיבוד הדטה ובעצם אפשר להגדיר מה יהיה הכוח של הקלאסטרים של המכונות שיגשו לדטה ויעבדו אותם. בנוסף אפשר להגדיר הרבה קלאסטרים כאלה כך שהמון שירותים שונים יוכלו לעבוד על הדטה במקביל בלי לייצר עומס (מה שנקרא horizontal scalability). וגם על הגודל של כל קלאסטר כזה ניתן לשלוט (vertical scalability).

Cloud Service

מעל המנוע האלגנטי של עיבוד הדטה יושבת שכבת השירותים שמאפשר לנהל הרשאות, לנהל שיתוף דטה עם חשבונות Snowflake של צד ג’, לנהל מטה-דטה, להתחבר לדטה חיצוני והכל בצורה אלגנטית ופשוטה.

 

איך נראה כל הטוב הזה מבפנים

יש המון דברים יפים להראות. אנסה להמחיש דוגמית דרך ממשק הוואבי. צריך לזכור שמעבר לממשק הזה, כל דבר אפשר לעשות גם באמצעות חיבור JDBC, SQL alchemy, Python Connector ו-CLI.


Worksheets

אזור הרצת ה-SQL. ממשק נוח עם Object Explorer ושמירת טאבים. מודגמת גם שאילתה עם Count Distinct שרצה על טבלה של 24M רשומות וחזרה ב-3 שניות. על פניו לא כזה מלהיב, אבל צריך לקחת בחשבון שהשאילתה רצה על ה-Warehouse הכי קטן ושאפשר להגדיל אותו פי 128.

 

 

 

Warehouses

זה הרכיב עם כוח העיבוד. כל אחד כזה הוא בין node בודד ל-multi cluster. אפשר להגדיר הרבה כאלה נפרדים לכל workload. לדוגמא, אולי יש לנו ג'וב שטוען המון דטה אז נרצה להגדיר לו warehouse שמורכב מקלאסטר בודד של 32 nodes שידלק רק עבור הג'וב הספציפי. בנוסף אולי נגדיר multi-cluster עם autoscaling לשאילתות של אנליסטים שמתרחב ככל שיש יותר שאילתות שרצות. ה-warehouse יכולים להיות מוגדרים להידלק אוטומטית לפי שימוש. ב-95% מהפעמים ההדלקה תימשך 2 שניות בערך. 

 

 

Data Sharing

אפשרות לשיתוף דטה עם חשבונות Snowflake אחרים. השיתוף מתבצע ללא העתקת דטה. החשבון שאליו שותפו הנתונים יכול לתשאל אותם באמצעות Warehouse משל עצמו וכך בעצם לשלם רק על העיבוד בעוד שעלות ה-Storage תהיה עדיין רק על החשבון ששיתף.

 

Data Marketplace

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


 

שונות

Zero-Copy Cloning - שכפול מיידי של אובייקטים מרמת טבלה עד רמת דטהבייס שלם. מדהים לצורכי הפרדת סביבת dev-prod. אין צורך לתחזק סביבת dev נפרדת, אלא ע"פ צורך פשוט לשכפל את ה-production ולהפוך אותו ל-dev.

Time travel - שמירה מלאה של כל state של הדטה עד 90 יום אחורה. אפשר פשוט להריץ select נכון לtimestamp כלשהו בעבר.

Data-lake - תשאול ישיר של קבצים ששמורים בקבצים ב- S3 / GS / BLOBS בכל הפורמטים הנפוצים - CSV, JSON, XML, Avro, ORC, Parquet

Snowpipe - מנגנון פשוט לטעינת stream של איבנטים בLatency נמוך.

  

 

לסיכום

ההנפקה המטורפת של Snowflake, נותנת עוד חותמת לעובדה שהכלי הזה הוא Game Changer בעולם הדאטה.  אנחנו ממליצים בחום לחברות וארגונים שבונים את תשתית הדאטה לבנות אותה סביב Snowflake. גם לחברות וארגונים שמשתמשים בכלים אחרים כדאי לשקול את המעבר ל-Snowflake – היעילות, הפשטות והעוצמה של הכלי הזה יגמדו את אי הנוחות של מעבר להטמעה של כלי חדש. 

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

למידע נוסף על Snowflake - מוזמנים להציץ באתר שלהם:
https://www.snowflake.com/


יש לך משהו לומר? 📣

תרגישו חופשי לשתף במה שעובר לכם בראש.