פרק מספר 455 של רברס עם פלטפורמה, הוקלט בתאריך ה-7 בפברואר 2023 - אורי ורן מארחים בכרכור את חיים טורקל לשיחה על DBT.
00:54 - על חיים ו-Tikal
- (חיים) ערב טוב, כבוד הוא לי להיות פה הערב אתכם.
- אני נמצא בתחום כבר 20 שנה
- עברתי הרבה מאוד שפות - ++C ו-Delphi, למי שזוכר . . . .
- (רן) זוכר, זוכר . . . . פעם צריך לעשות כזה . . . .
- (אורי) האמת לא . . . Delphi לא יצא לי - כי יצא לי Pascal, לפני . . . .
- (חיים) אז Visual Pascal, כן . . . .
- (רן) צריך פעם לעשות משחק - שכל אחד אומר שפה, אסור לחזור על השפה פעמיים - ומי שאין לו, שותה . . .
- (חיים) בהחלט . . .
- (רן) אז Delphi, כן . . .
- גם עבדתי בתחום ה-Distributed - לאחרונה אני מתמחה הרבה יותר בתחום של ה-Data Platforms
- ובאמת ה-Passion האחרון שהייתי אומר זה באמת Self-Serving Platforms - שזה, אני מרגיש שזה הדבר שמאוד נצרך בשוק.
- אני עובד בחברה שנקראית Tikal - אני GL שם, אני מנטור לאנשים
- גם בתחום המקצועי, גם בתחום הבינאישי וה-Mentorship, בשביל לעזור להם . . .
- (חיים) לעובדים של Tikal - ויפה שאתה “מעלה להנחתה”: אנחנו מאוד רוצים גם להרחיב את זה ללקוחות, זו אחת מהאג’נדות שלנו.
- אז בהחלט, כמה מילים על Tikal - ל-Tikal יש באמת שתי רגליים, הייתי אומר:
- רגל אחת היא בעצם עבור הלקוח - זאת אומרת שאנחנו באים ומשתדלים להביא כמה שיותר Added-value ואנשים עם הרבה איכות וניסיון וכמה שיותר לחברה.
- ומהצד השני, אנחנו גם משקיעים בעובדים עצמם, עושים להם Roadmap-ים ו-Mentorship כדי להשביח ולקדם את הקריירה שלהם
- אז אני שם GL, זה Group Leader ב-Backend
- יש לנו כמה קבוצות שם - DevOps, Mobile, Front-end
03:08 מ-Self-Serving Platforms ל-DBT
(רן) אז הזכרת “Self-Serving Platforms” - ולא שכחתי לך . . . . אז למה אתה מתכוון? מה זה Self-Serving Platforms?
- (חיים) Self-Serving Platforms זה באמת איזושהי אבולוציה שאני לאט לאט רואה
- זה מתקשר למונחים כמו Data Mesh וכל מיני דברים כאלה.
- זה לא רק להרים את התשתיות Data - אלא להנגיש אותן לכל החברה
- שלא אני, איש צוות Data Platform, צריך לעשות את כל העבודה בדברים שאני לא מכיר
- אלא אני מעלה תשתיות שכל החברה יכולים להיות שותפים בהן.
- (חיים) זה, כמובן . . . זה Facilitator - זאת אומרת שאם אני רוצה להנגיש לך Data, אני צריך לדעת איך למצוא אותו.
- אז ה-Data Catalog יעזור לך למצוא אותו - במקום שתרים אלי טלפון או תשלח לי Slack - “תגיד לי - איפה הזה והזה?” - תשתמש ב-Catalog.
(רן) כן, אז זה לא רק ה-Database - זה גם כלים שעוזרים לי להשתמש ב-Database, בלי שאני אצטרך אותך, כ-Administrator, שתבוא ותסביר.
אז ספציפית היום, אנחנו נדבר על אחד מהכלים האלה, על DBT. אז מי זה DBT? מה זה DBT, ומתי אני ארצה אותו?
- (חיים) אז DBT הוא באמת שחקן מאוד משמעותי וחדש בשוק
- אני עוד זוכר שלפני 3-4 שנים כתבתי Platform בלי DBT
- הייתי אומר ש-DBT נכנס בתחום של ה-ETL-ים, של הטרנספורמציות, של ה . . .
(אורי) רגע, רגע - מה ה-Acronym? אני מניח שאלה . . .
- (חיים) אז DBT - דרך אגב, זה גם משעשע קצת - אם תחפש DBT באינטרנט אתה תמצא שיטת טיפול ביהביוריסטית . . . אז זה לא זה.
- (חיים) נכון . . . . עדיף לחפש Get DBT ולא “DBT”
- אז DBT זה בעצם Data Transfer - זאת אומרת, הם לקחו את ה-ETL ושינו את המודל שלו.
- אמרו “במקום לעשות Extract-Transfer-Load, בוא נעשו Load - ואז Transfer . . . .
- זאת אומרת, התפיסה שלהם באה ואומרת “שנייה, אם אני מסתכל על Data Platform רוחבי, אז אנשים בדרך כלל מתקשים באזור של ה-Ingest - בוא נכניס את זה”
- “ועל הדרך” - Transformations
- הם אמרו “שנייה, בואו נביא את הכל לWarehouse”
- עכשיו, כשהטכנולוגיות הבשילו והם יכולים בעצם לסחוב את כל ה-Data הזה,
- ורוב האנשים יודעים SQL-ים - גם לא אנשי תוכנה
- אז הם יכולים לכתוב ב-SQL-ים את כל הטרנספורמציות
(אורי) אבל הטרנספורמציות, בעצם, קורות “בפנים” - “בתוך המכונה”, בתוך ה-Database . . . .
- (חיים) הם קוראים - זו נקודה חשובה, כי אנשים מבלבלים ב-DBT, כי DBT הוא ספרייה - הוא לא עושה את ה-Heavy Lifting בעצמו
- ה-Heavy Lifting נעשה על ידי ה-Data Warehouse, בין אם זה Databricks או Redshift או כל האחרים - הוא תומך בכולם
- ה-DBT הוא שכבת אבסטרקציה, שאני מנגיש אותו ואז יש Adapter-ים שיודעים להריץ את זה על כל פלטפורמה.
(רן) זאת אומרת שבמקום שאני אכתוב את הלוגיקה, או שאולי בעבר, את הלוגיקה, את הטרנספורמציה - במקום שאני אכתוב אותה ב-Java או ב-Python או בכל שפה אחרת שאיתה “נהוג” לעשות טרנספורמציות, אתה אומר שעכשיו אפשר לכתוב אותה ב-SQL - והמנוע כבר ידאג לזה שזה יעבוד בצורה שהיא “ביעילות סבירה” . . .
- (חיים) נכון, גם אם נסתכל על שאר הכלים בשוק - יש לנו גם Spark וגם Flink - כולם הלכו לכיוון של “בוא נוסיף SQL”.
- אז אם יש לך כבר את כל ה-SQL הזה - אז בוא נשחרר אותך מהכלים המסובלים האלה ופשוט ננגיש לך ישירות את ה-SQL.
06:42 - אז מה ה-Use case?
- (חיים) זו שאלה מעניינת של איך אתה מגדיר “יעיל” . . .
(אורי) . . . זה מן הסתם תלוי גם בתשתית שלך ובמה אתה . . . באיזה Database אתה משתמש . . .
- (חיים) נכון, וזה גם עניין של “חשוב” - מה חשוב לך? העלות או זמן עיבוד? זמן הנתונים? יש פה הרבה שיקולים . . .
(אורי) בוא נסתכל על זמן - מה . . . .
(רן) אני חושב שאני יכול . . . אני אעשה, ברשותך, אני אנסח את השאלה קצת אחרת - אילו Use cases “טובים”, איזה Use cases “נכונים” ל-DBT ואיזה לא? מתי זה לא נכון להשתמש בו?
- (חיים) אז האמת שלדעתי, תמיד טוב להשתמש ב-DBT.
- יחד עם זאת, אם לחברה - כבר יש לה מידול, כבר השתמשו באיזשהו כלי, Snowflake או מה שלא יהיה, וכבר כתבו, והמידול שלהם לא משתנה הרבה - אז לא בהכרח הייתי משכתב אותו ב-DBT.
- (חיים) לדעתי, זה מאוד טוב.
- אפילו הייתי אומר שה-Concept, אם הייתי מסכם מה DBT עושה - הוא מביא Concept-ים של Software Engineer לעולם של ה-Data.
- אז במקום שתכתוב לי SQL-ים בכל מיני Worksheets - בין אם זה BigQuery או Redshift או מה שלא יהיה
- בואו תכתבו את זה ב-Git, תכתבו את זה מסודר - CI, CD, טסטים, הכל - ואז הוא ירוץ.
(אורי) אז רגע - אתה חייב להסביר לנו עליו קצת יותר . . .
- (חיים) נכון . . . אז DBT, במה שנקרא “שתי מילים”, מרכיב כמה דברים -
- יש לך קבצים
- אתה כותב קובץ SQL
- נלווה לקובץ SQL הזה קובץ YAML, שאתה מתאר
- בנוסף ל-SQL יש את ה-Jinja Templates - שדרך ה-Jinja Templates, אתה עושה רפרנסים בין טבלאות.
- ודרך . . . .
- זאת אומרת, אני כותב Select * From - ואני לא כותב שם טבלה, אני כותב רפרנס דרך Jinja Templates
- ודרך אותו רפרנס, עכשיו מאחורי הקלעים, הוא יודע ששתי הטבלות קשורות אחת לשנייה - אז הוא גם יודע לבנות Catalog, בלי שאני אצטרך לתאר לו את כל הדברים.
- ואם עמלתי ועשיתי את העבודה שלי וגם תיארתי את שם הטבלה, מה היא עושה, את התורים, את ה-Type-ים - אז “על הדרך” גם קיבלתי Data Catalog,
- בלי שאני אצטרך להתאמץ ולעשות את זה אחרי זה.
(רן) בוא, אני אתן לך דוגמא - אצלנו בחברה יש המון המון תהליכים שרצים מעל Spark: הרבה מהם כתובים ב-Scala, חלקם Python . . . תהליכים מורכבים שעושים כל מיני טרנספורמציות.
הם גם מתחילים מ-Data-At-Rest ומסיימים ב-Data-At-Rest, הם לא עושים את זה On-The-Fly - אבל קשה לתחזק אותם, אוקיי? כי Spark זה לא . . . . זה חיה, זו חיה לא פשוטה . . .
עכשיו, יכול להיות שאולי חלק מהם באמת היה אפשר או שהיה ניתן לשכתב כ-SQL מעל Spark ואולי זה היה קצת יותר יותר קל לתחזוקה, אבל עדיין זה לא פשוט כל הסיפור הזה.
- (חיים) זה יושב בכפפה עד כדי כך שאני יכול לנרמל את הטרנספורמציות ל-SQL-ים.
- זאת אומרת, גם רוב החברות . . . הרי זה בדיוק האבולוציה שאתה מתאר - הם כותבים לבד את ה-Scala, אחרי זה כותבים שכבת אבסטרקציה (Abstraction), שנותנת לי YAML-ים וקצת SQL-ים . . .
- (חיים) אז זה בהחלט קוד פתוח - יש שני וריאנטים (Variants), הם עובדים במידול העסקי שלהם - שזה Open Source, אבל יש להם Hosted שנקרא Dbt Cloud
- שאני חייב לומר שעד היום לא ממש הבנתי את המודל העסקי בינתיים . . . .
- אני חושב שאני יודע לאיפה הם הולכים, אבל היום זה לא שווה לדעתי לעבור לשם.
11:19 מהן האלטרנטיבות ועד כמה זה נפוץ
(רן) אוקיי, אז זו ספרייה שנותנת לך יכולות של טרנספורמציה של Data, טובות ועם “עקרונות של הנדסת תוכנה” כמו שאמרת, ואפשר למעשה “להלביש אותה” מעל Computation Engine כלשהו, בין אם זה Spark או אחרים.
כן, עד כאן נכון?
- (חיים) נכון
(רן) בסדר - מה יש עוד דומה לזה בעולם, או איזה אלטרנטיבות? אם במקרה DBT לא מתאים לי, אז מה כן יכול להתאים?
- (חיים) אז באמת רשמנו את השאלה הזאת ועשיתי את שיעורי הבית . . . .
- אז אחד לאחד אין משהו אחר - אבל אם אני מסתכל על המכלול, אז יש לי Ingestion, יש לי Transformation באמצע, ויש לי את ה-Reporting ואת ה-Export בצד השני.
- אז מה שקורה זה ששני הצדדים שאין ב-DBT מנסים “לנגוס” . . .
- אז אם יש לי Upsolver בצד אחד, או כל מיני כלים שיודעים לעשות Ingestion - אז הם כבר מוכרים לי “על הדרך”
- “בוא, גם נעשה לך Transformation”
- בדרך כלל זה לא מסודר כמו DBT - ולכן אחרי זה חברות נתקלות בקשיים - אבל זה שם.
- וגם בצד השני - אם הכנסתי Size Sensor או שהכנסתי כל מיני כלים אחרים מהסוג הזה,
- אז גם כן Looker של Google - הם גם נותנים לך מידול והם גם יודעים לעשות טרנספורמציות [Transformations].
- אז אמנם יש להם התמחויות אחרות, אבל הם מנסים לגשר את ה-Gap הזה,
- אבל DBT יושב שם טוב באמצע.
- (חיים) החכמות יותר מתחילות לתמוך ב-DBT . . .
- אז הגרסה האחרונה של Databricks - יש לה Job Cluster שאתה יכול להגדיר אותה מסוג DBT,
- והוא יודע להריץ את ה-DBT.
(רן) הבנתי, בסדר. זאת אומרת, מבחינת ספריות, זאת אומרת, “חיה דומה ל-DBT” אתה לפחות לא מכיר כרגע . . .
- (חיים) לא . . . נכון. אחד-לאחד אני לא מכיר.
- שוב, יש כלים אחרים “שנוגסים” בתחום . . .
(רן) עד כמה זה נפוץ? זאת אומרת, כמה ארגונים, למיטב ידיעתך נגיד, פה בישראל, משתמשים בו או בכלל בעולם?
(אורי) כמה הוא “צעיר” או “ותיק”?
- (חיים) הוא כבר . . . ה-Beta שלו יצא לפני חצי שנה נראה לי.
- היום הם בגרסה 1.4.
- הוא תפס Hype מטורף . . . . הם משקיעים בו כמות מטורפת של כסף.
- פה בארץ גם כן . . . שוב, בהיותי ב-Tikal אני קצת יותר נחשף ללקוחות שונים.
- לאחרונה אני מרגיש את זה יותר ויותר - שאנשים פונים אלינו ושואלים אותנו.
- במיוחד - “אני רוצה לנהל את ה-Data שלי, איך אני עושה את זה?”
- אז אם אתה ישר הלכת לכלי כמו Snowflake או BigQuery, אז אתה יכול לנהל את הרוב גם שם
13:53 השתכנעתי! איך מתחילים?
(רן)) אוקיי, אז היה והשתכנעתי, ומחר בבוקר אני רוצה להטמיע DBT - איך מתחילים? מה הדרך הנכונה? מה הצעדים הראשונים לעשות את זה?
- (חיים) אז כמובן גם צריך לציין, הרי DBT זה Open Source - אבל הוא לא מכתיב לך איך לעבוד.
- אז כפי שאמרנו, יש לי אוסף של תיקיות, אוסף של קבצים
- כשכל קובץ היא (שאילתא של) SQL שמייצגת טבלה.
- איך לבנות את זה? הם לא מכתיבים לך . . . .
- יש להם בהחלט Community מאוד גדול, עם Best Practices, שמאוד כדאי לקרוא על זה ולראות
- כי הם אומרים לך מה כדאי ואיך כדאי לבנות.
- יש גם בלוגים על זה, אני גם כתבתי כמה בלוגים בנושא
- אבל בגדול אתה מתחיל מאיזשהו פרויקט
- אני מניח שה-Data כבר ב-Warehouse - אחרת גם זה משהו שצריך לדבר עליו
- ואז אתה מתחיל בפרויקט הראשון - אני רוצה לבנות, יש לי Silver, Bronze, Gold, כל השכבות האלה, גם ב-DBT
- אתה לא חייב, אני מאוד ממליץ לעשות את זה.
(רן) אוקיי, עכשיו, מעבר לצד הטכנולוגי, יש פה גם איזשהו צד תרבותי . . . זאת אומרת, אמרת שאתה רוצה לייצר פלטפורמה של Data או Self-Served Data - עכשיו צריך גם לגרום לאלה שלא היו רגילים לזה עד עכשיו לבוא ולהשתמש אחרת.
איך עושים את “הטרנספורמציה” הזאת, סליחה על ה-Overload של המילה? . . . .
- (חיים) אז בהחלט, בדיוק נתקלתי השבוע בחברה - אנשים באו ואמרו לי . . .
- הייתי צריך לעשות להם Onboarding לפרויקט DBT - והם אמרו לי “מה זאת אומרת? כבר כתבתי ב-Snowflake! מה אתה מוכר לי ב-DBT? זה סתם עבודה קשה בשבילי!” . . . .
- אני מקווה שהצלחתי לשכנע אותם -
- ברגע שהראיתי להם שזה מנוהל ויש CI/CD . .
- ושאלתי אותם “איך אתם מנהלים Versions וקשרים ו-Deployments?”
- אני רוצה לעשות Deploy לגרסה אחת, לעשות Rollback . . .
- את כל הניהול הזה אין לך בשאר הכלים.
- אז כשאתה מציג את זה, אז זה נותן, אני חושב, את ה-Vibe שלו
- ואנשים מבינים, יש פה כוח עצום.
- אני גם לא לוקח מהם כוח, אלא להפך - אני נותן להם יותר אחריות ויותר כוח.
(רן) אבל האם זה לא קצת כמו DevOps, “מפעם”? . . . האם זה לא מכריח את אנשי הפלטפורמה, את אנשי ה-Data, לנהוג אחרת - ואת המשתמשים של הדאטה, זאת אומרת את המפתחים, לנהוג אחרת?
האם זה לא מכריח את השתנות דפוסי הפעולה?
- (חיים) בהחלט, הם צריכים לעבוד בצורה אחרת - אבל לדעתי, בסוף זה מקל עליהם.
- זאת אומרת, הצוות Data Platform מנגיש להם כלים שיעזרו להם.
- אז אם לפני זה הייתי צריך לחשוב על Scheduling, שזה נושא שצריך לדבר עליו והוא חסר ב-DBT,
- אבל אם אני נותן אותו כחלק מה-Platform, אז הם רק מתעסקים בתוכן, הם לא מתעסקים בכל הכלים של “המסביב”.
(אורי) רן, האמת שזה מתיישב כמו כפפה להמון צרכים שיש . . . . כאילו, אחת הבעיות הגדולות זה שאנשי Data עובדים, רגילים לעבוד בגישה אופרטיבית ולא בגישה - נקרא לה “הנדסית”, שבה אתה מתייחס למה שאתה עושה כקוד וכאוטומציה - והיא צריכה להיות Testable, ואתה רוצה Deployment Pipeline של קוד. זה . . . אני לא יודע, חברה ציבורית, אתה נדרש לדברים האלה, אם יש לך Deployment Pipeline מסודר אז ה-SOX שלך הרבה יותר קל . . . זה הכל בקרות שהן נדרשות.
עכשיו פתאום, אם יש לך Data Catalog, אז אתה יודע מה קורה, איזה שינויים נעשו, איזה טרנספורמציות השתנו - כל הוויזיביליות (Visibility) הזאת היא מאוד מאוד חשובה.
- (חיים) הייתי אפילו מוסיף על זה, שחלק מהעקרונות של Data Mesh זה ש-Data is a Product
- אתה הופך להיות ה-Product Owner של ה-Data שלך, אתה לא איזה Microservice . . . שכתבת את ה-Microservice ומה שעושים עם ה-Data שלך אתה לא יודע.
- אתה אחראי - הרי אתה מכיר את ה-Data שלך, אז אתה אחראי לא רק ל-Microservice, אלא להביא את כל ה-Data הזה ל-Platform
- לעשות לו את כל “המסאז'” והטרנספורמציות ולהנגיש אותו
- ולהביא לי אותו כבר “לעוס” וברמה של Gold - שכל החברה עכשיו יכולה לצרוך את הדבר הזה.
(אורי) כן - פה זה באמת השינוי שרן מדבר עליו, זה השינוי שבתרבות ה-DevOps, מפתחים עברו מ-”אני רק כותב את הקוד” ל-”אני ה-Owner של ה-Data שלי ב-Production”.
ובמקרה הזה המקבילה היא “ה-Microservice שלי מייצר Data, אז אני גם ה-Owner של מה שקורה איתו אחר כך - אילו טרנספורמציות עושים לו, איך הוא “נלעס” בסוף אל הדוחות . . .
- (חיים) לא רק זה - חלק זה התפיסה שלי של Data Platform.
- אני מנגיש לך את כל הדברים - זאת אומרת, אתה גם יודע מה “Freshness” של ה-Data שלך, מתי הוא צריך להתעדכן - כל כמה זמן על פי ה-Source-ים, כי אתה מכיר.
- אז אתה - לתוך המערכת אתה תגדיר אותו:
- “אני רוצה Freshness של כל שש שעות, תריץ אותי כל שש שעות”
- אתה תכניס את כל ההגדרות . . .
- (אורי) ל-Scheduler.
- (חיים) . . . ל-Scheduler - אבל כחלק מה-Platform
- זאת אומרת, ברגע שזה מפורמל (Formalized) - ב-YAML-ים וכל מיני דברים כאלה, אז עכשיו אני יכול לגזור משם ולעשות הרבה אוטומציה, ולחסוך לך הרבה עבודה.
(רן) אוקיי, מה אתה יודע להגיד על הקהילה? זאת אומרת, אם אני . . . אחד הדברים שמסקרנים מישהו שנכנס לטכנולוגיה חדשה זה את מי אפשר לשאול . . . אתה יודע - כמה תשובות יש ב-Stack overflow? עם מי אפשר להתייעץ בישראל? . . . אז חוץ מחיים, מי עוד בסיפור?
- (חיים) אז אני חייב לומר - ב-Stack overflow אני פחות משתמש [אותך ליואל]
- יש להם Slack Community מאוד מאוד גדול - נכנסים ל-Slack ועונים יחסית מהר
- נתקלתי רק השבוע באיזשהו בעיה של טסטאביליות (Testability) באחד מה-Feature-ים שלהם - כתבתי להם, והם יחסית מהר עונים.
- אפשר גם לפתוח Issue-ים ב-GitHub - אני פתחתי שם, היה איזשהו משהו שלא אהבתי
- ונהיה דיון שלם - לא קיבלו את דעתי בסוף, אבל היה דיון, לא התעלמו ממני.
- וזה תוך ימים ספורים, קיבלתי תשובה מהם.
- יש להם גם ב-Discord הרבה דברים . . . .
- אז הקהילה שם מאוד מאוד פעילה.
(אורי) מי זה “הם”? . . . זו עדיין קהילה או שיש כבר חברה מאחוריה?
- (חיים) אני כבר לא זוכר . . . מישהו קנה אותם בהרבה מאוד כסף
- והם הקפיאו - בעקבות ה-רה-ארגון שעשו . . . יש שם הרבה כספים שזורמים
- ואני כבר לא זוכר את שם החברה, צריך לחפש ולראות . . .
- (רן) אוקיי, רק תהיה בטוח שזה לא מתחרים שלכם . . . סביר להניח שלא.
20:46 איך מוכרים את זה למפתחים?
(רן) בסדר, אז דיברנו על לא מעט יתרונות - אבל האם יש משהו טנג’יבילי (Tangible)? זאת אומרת, שאתה מגיע נגיד לחברה ואתה בא ואומר “ממחר בבוקר יהיה לכם יותר . . . “ - אורי למשל הזכיר SOX, אוקיי, אבל כשאתה בא לדבר עם מפתחים אז אתה אומר להם “ממחר בבוקר יהיה לכם יותר קל לעשות - “ - מה? מה הן אותן Selling Points שאתה יכול לתאר להם?
- (חיים) יהיה לכם מיותר קל לנהל את מה שקורה, ולדעת ולתפעל אותו.
- זאת אומרת, אם אתה מחפש איזשהו Data - יהיה לך Catalog שכבר השלים אותו.
- אם המנהל הבכיר יבוא אליך ויגיד “אני רוצה שתביא לי Data!”, אתה לא תוכל להגיד “שמתי אותו ב-Warehouse!” . . . כאילו, “אני לא יודע מה קורה איתו”
- אני אוכל ואתה תוכל להגיד לי “תשמע, הנה - החצנתי אותו, נתתי אותו אליך, לצוות ה-BI”
- פתאום יש הרבה יותר אינטגרציה בין צוותים - הם מדברים אחד עם השני, דרך העולם הזה
- כי אני בעצם תיעדתי את כל הדברים שאני עושה.
(רן) אני אקח איזו מקבילה מעולם ה-Web - יכולתי לייצר API, נגיד איזשהו REST API, והוא שוכב לו שם בחושך . . . ואם תקרא לו נכון, אז זה יעבוד - רק שאף אחד לא יודע איך לקרוא לו.
- (חיים) בדיוק רציתי להגיד - זה מאוד מקביל קצת ל-Swagger.
- זאת אומרת, לא רק זה - גם בעולם פה: הרי שמתי לך טבלאות ב-Database, אז אתה תיגש לאיזה שאתה רוצה.
- אני אומר “לא! אני לא רוצה שתיגש לאיפה שאתה רוצה”
- אני אעשה אצלי Private, Protected - ורק את ה-Public אני רוצה שתיגע,
- ואת כל זה אני יכול לעשות ב-DBT.
(רן) יפה, אהבתי את ה-Private - יש יותר מדי שדות ב-Database ותמיד זה מבלבל. לרובם יש שמות מאוד דומים - ותמיד זה שאתה מחפש זה עם השם המבלבל ביותר . . .
- (חיים) בהחלט . . .
22:28 חסרונות
- (חיים) א' - חסרון מרכזי הוא, קודם כל צריך להכיר - הוא Batch, הוא לא Streaming.
- הוא לא תומך בכלל ב-Streaming, זה איזשהו עולם שצריך עוד להיכנס אליו.
- מבחינת ה-Ramp-Up, הייתי אומר שהחסרונות שלו זה גם הפלטפורמה של איך שאתה מנגיש את זה לחברה.
- לי לקח קצת זמן ב- BigPanda - מכרנו את זה על ידי Codespaces, חיברנו את זה בשביל לתת ממש חוויה מושלמת כמעט לצרכן הסופי.
- זה לא ב-Built-in ב-DBT - אתה צריך לעשות את זה.
- כל ה-Scheduling - אין אותו ב-DBT . . .
- הם מנסים לגשר את זה ב-DBT Cloud - לדעתי כרגע עדיין לא מספיק טוב.
- אז יש עוד עבודה . . . רק לקחת את DBT Out of the Box - יש שם הרבה עבודה מסביב.
23:21 בחזרה לעתיד
(רן) אוקיי, ואיך נראה העתיד של DBT? זאת אומרת, למיטב ידיעתך. זאת אומרת - אתה מכיר Roadmap שלהם? אתה . . .
- (חיים) אז חלק ממה . . . אני רואה לאיפה הם הולכים והם עושים דברים מאוד יפים.
- זאת אומרת, אם אני מסתכל מה באמת חסר - והם קצת, אם אני מבין אותם הולכים לשם, עד היום היית חייב לכתוב רק SQL-ים
- מגרסה 1.3 הם הוסיפו יכולת לכתוב Python
- ובעצם אתה מקבל ביד DataFrame ו- pandas - ואתה יכול לעשות כל מיני פעולות כאלה.
- כיוון שלדעתי, מה שמאוד חסר זה ML - זאת אומרת, כל ה-Machine Learning איכשהו יצא החוצה מעולם התוכנה, יצר לעצמו נישה שם בצד - וחייבים להחזיר אותה.
- ו-DBT לא שם
- מתחילים, יש ניצנים, יש פרויקטים שמרמזים שזה הכיוון - ולדעתי זה . . . אני מאוד מקווה שזה יחזיר אותם פנימה.
(רן) כן, מעניין. בדרך כלל רואים את זה בהרבה פלטפורמות אחרות - זאת אומרת, רואים את זה גם ב-Databricks, תמיכה בממש API-ים של-Pandas, צריך להגיד שזו התחלה יפה.
זאת אומרת, אני מגיע מהתחום הזה, זו התחלה נחמדה, אבל למעשה מה שחזר זה השלב של ה-Compute עצמו - של תמיכה ב-scikit-learn או ספריות דומות, שבאמצעותן אתה יכול לא רק להכין את ה-Data אלא גם לייצר את המודלים עצמם בצורה סקלבילית (Scalable) - אבל זה, אני מניח, יהיה השלב הבא.
- (חיים) כן - אני רק אזכיר ש-DBT הוא ספרייה, ולכן ה-Processing זה ה-Database עצמו.
- אז אחרי שכולם יוסיפו את התמיכה, גם-DBT יוכל.
(רן) כן, כן - רק שיש דברים לא טריוויאליים להוסיף. זאת אומרת, לבנות מודל בצורה מבוזרת - לפעמים זה די מורכב,. זאת אומרת, יש כמה שנגיד פתרו בעולם ה-Scala עם MLlib שלהם, אבל כמה, בודדים - ולא הכל פתור. ויש TensorFlow ו-Cloud וכאלה - אבל זה לא בעיה פתורה באופן כללי.
- (חיים) נכון, אמנם לא חקרתי את זה, אבל גם BigQuery וגם Snowflake - הם יודעים להריץ מודלים.
- אז במסגרת הזאת, יש פתרונות של-DBT, זה אחד מהדברים שאני באמת רוצה להיכנס אליהם וקצת ללמוד יותר,
- ולראות האם הם נותנים מענה טוב.
25:36 תיאום ציפיות ותובנות
(רן) תהייתי אם תוכל קצת לשתף על ניסיון שלך, של הטמעה של-DBT בכמה מקומות שעשית. זאת אומרת, נגיד, כמה זמן זה לקח? עם מי עבדת? אילו אתגרים מסוימים היו שם? איזה Aha! moments היו שם? מי וכמה באו ולחצו לך את היד אחר כך? . . .
- (חיים) אני חייב לומר - זו התאמת ציפיות, זה מאוד מאוד קריטי.
- כי חושבים “נו, מה הסיפור, אתה מכניס לי DBT, כמה SQL-ים - חודשיים-שלושה סיימנו”.
- והם לא מבינים שבעצם, מאחורי הקלעים, אתה חייב פלטפורמה.
- אז התחלתי את המסע הזה ב-Yotpo,
- שם, להגיע לבשלות ממש טובה לקח לנו קרוב לשנה, עם שלושה אנשים.
- ב-BigPanda גם ציפו - “תוך שלושה חודשים, בוא תביא את זה כבר עובד, עם ארבעה אנשים” . . .
- לא באמת קורה, זה מסע
- כי זה לוקח זמן לחברה להבין שזו פלטפורמה שלמה שאתה צריך להנגיש - וזה מאוד חסר.
- זה לא רק DBT - “בוא תתפור לי כמה SQL-ים וזהו”.
(רן) כן, אז אתה אומר סדר גודל של מספר אנשים, לתקופה של חצי שנה או שנה - תלוי כמובן בגודל ה-Data, גודל החברה וגודל . . . . כל מיני גדלים כנראה, אבל זה הסדר-גודל.
בסדר, ובסופו של דבר, זאת אומרת, היו כל מיני תובנות? זאת אומרת, מבחינת החברה ומבחינתך, של איך נכון יותר לעשות את זה? בפעם הבאה שתעשה את זה, האם תעשה את זה אחרת?
- (חיים) אז כל פרויקט הוא נראה אחרת.
- זאת אומרת, אני פעם חשבתי לפתוח . . . התחלתי אפילו איזשהו Open Source
- ואז ראיתי - אבל כל חברה מנהלת את התהליכים אחרת . . .
- כשאני בא ומישהו אומר לי “DBT” - אני לא רוצה להכניס DBT, אני רוצה להכניס Data Platform.
- ו-Data Platform זה מקצה לקצה.
- זה אומר שאני בונה לך CLI, שהוא אינטראקטיבי (Interactive) - ואתה, ב-Console שלך כותב “Create Model”
- ואני שואל אותך, זה Staging? זה Marts? איזה סוג מודל אתה רוצה?
- אני מג'נרט (Generates) בשבילך את ה-Stub-ים ההתחלתיים, כדי שתוכל לעבוד.
- באותם קליקים, אתה רוצה גם את ה-Ingestion
(רן) אוקיי, אוקיי.
27:46 פרויקט Open Source?
(רן) הזכרת איזשהו פרויקט Open Source שעברת עליו - מה הוא?
- (חיים) אז התחלתי . . .
- זה, לדעתי, צריך שם ספונסרים . . . חשבתי שזה יהיה משהו בקטנה . . .
- כבר העברתי כמה הרצאות על הדברים שעשיתי גם ב-Yotpo ואחרים - וכל הקהל אמר “מתי אתם משחררים Open Source?”
- גם Yotpo מאוד רצו לשחרר Open Source - עדיין לא עשו את זה,
- כי Open Source זה מאוד קשה - אתה צריך להביא אותו לרמת בשלות וגמישות ודברים כאלה,
- אז זה לא טריוויאלי.
- וככל שאני עושה יותר פרויקטים, אני רואה שזה יותר מורכב - אבל לדעתי זה . . . חייבים את זה.
(רן) אבל מה המהות שלו בעצם? מה הוא עשה?
- (חיים) המהות שלו זה אבסטרקציה (Abstraction) - כמו ש-DBT עושה אבסטרקציות על מודלים, אז לעשות את אותה רמת אבסטרקציה לכל ה-Data Platform,
- בעזרת כלים שקודם כל עושים לך הכוונה - זה לא DBT שתעשה מה שאתה רוצה,
- אלא אני אומר לך: יש לך Staging, יש לך Sources, יש לך Mart-ים . . . זה הצורה שעובדים.
- איך מנהלים Domain-ים בתוך החברה, איך אני מפריד - DBT הוא קצת . . .
- רוב הטכנולוגיות החדשות חושבות בצורה מונוליטית, ולוקח זמן להגיע ל-Distributed.
- גם DBT אומרים “בוא תתחיל ב-Monolith” . . .
- אבל ברגע שאתה מגיע ל-Distributed זה מתחיל להיות מסובך יותר.
- אני רוצה להפריד את הפרויקטים - אני חייב, כי אחרת הBuild Time שלי הוא מטורף, ה-Deployment הוא מטורף . . .
- זה אתגרים שDBT לא פותר - ואת זה אני חייב דרך המסגרת שלי, לתת לך את זה.
(רן) אז אם DBT הוא ה-Container, מה שאתה בונה זה את ה-Kubernetes שינהל את ה-Container - ועוד כל מיני מפלצות אחרות . . .
- (חיים) בדיוק.
- בחלום שלי, בסוף ה-End User, בכמה קליקים במחשב, עושה “תביא לי מאיזשהו Database, מכל מיני מקומות, תביא לי אותו ל-Warehouse, תעשה לו “לעיסה” פה - ותפלוט אותו ל-Looker, כבר ממודל ב-Looker - וה-BI יכולים כבר להריץ אותו” . . . .
- (רן) כמובן שה-User-ים שלנו לא משתמשים בעכבר, וקליקים לא בעכבר אלא רק על המקלדת, שיהיה ברור . . .
29:40 בואו בהמוניכם
(רן)) בסדר, אז קודם כל זה מרתק - אני חייב להגיד שאני שומע הרבה זמן על הכלי אבל מעולם לא השתמשתי בו, אז אולי סוף סוף יגיע הרגע, אז זה היה סופר סופר מעניין.
יש משהו שככה . . . יש איזשהו Shout-Out שתרצה להציג לאנשים, לפני שאנחנו מסיימים?
- (חיים) בגדול - לקרוא לאנשים להשתתף
- זאת אומרת להיכנס - אם יש Meetup-ים בנושא אז תבואו -
- אני מאוד שמח לשמוע את הדעות השונות, את הדברים
- כי זה מאוד מפרה - שפתאום אתה רואה Scenario אחר, שלא חשבת עליו, ואתה אומר “וואו!”
- זה כאילו . . .
- גם בטרנספורמציות של ה-Data - איך מנהלים Data?
- האם אני לוקח Raw Data ושם אותו ב-Database או עושה לו משהו אחר?
- כל הדבר הזה - אני הייתי שמח שלאיזושהי קהילה, אני זוכר שעוד לפני 15 שנה היו עושים את זה
- היו נפגשים פעם בחודש, לדבר על “Microsoft SQL Server - איך עושים?”
- הייתי שמח שהיתה נבנית איזושהי קהילה כזאת, פה בארץ . . .
- (חיים) אז זה לא היה Meetup - ה-Meetup עבר . . .
- אבל אז היו אנשים קבועים, פעם בחודש
- היית מגיע, כל אחד היה מעלה את הבעיה שלו - זה היה שיח פתוח, Round Table כזה, יותר מ Meetup.
(רן) אז בוא - תארגן ונשים לינק . . .
- (חיים) אז אנחנו חושבים על זה . . . זה מצריך אופרציה ומצריך את ההנעה הראשונית -
- לדאוג שאנשים יבואו - וזה לא פשוט.
(רן) כן - מצריך פיצות ובירות, לפחות . . .
- (חיים) והפוסט-קורונה גם עשה את שלו . . .
(רן) כן . . .
טוב, מצויין - תודה רבה! אז אם יהיה משהו, אנחנו נשמח לשים את זה ב-Show notes [-הכנה למזגן?-].
וזהו - תודה רבה, חיים, שבאת ודיברנו על זה. תודה רבה!
האזנה נעימה ותודה רבה לעופר פורר על התמלול!