מהו DBT data build tool
הכלי DBT data build tool נוצר על מנת לנהל את הטרנספורמציות המתבצעות באמצעות SQL בדרך הדומה לניהול כתיבת קוד.
DBT data build tool מאפשר לייצר Tables ו views בבסיס נתונים בהתבסס על שאילתות select.
מצורף וידאו המכיל מצגת אודות DBT data build tool:
הרעיון הוא שניתן לבצע את רוב פעולות ה T באמצעות DBT data build tool. ה T (Transformation)
מתוך תהליך ה ELT ( Extract Load transfer ) באמצעות SQL (חיבור טבלאות, חישובים, חיתוכים, פרסור ועוד)
כך שבמידה וכל הנתונים הנדרשים לביצוע ה T נמצאים בסכימה כגון: staging.
ניתן יהיה לכתוב שאילתת Select המבצעת מניפולציות על הנתונים ומיישמת את התוצר לכדי טבלה בסכימה כגון: DWH.
בנוסף הכלי מאפשר להוסיף שלבי בדיקות קוד (Test) וכן לייצר תלות (Ref) בין הרצת שאילתת ETL לאחרת.
כך שנוצר לנו Workflow. הכלי מגיע עם שפת Jinja שמאפשרת לעבות את הפתרון בדמות פונקציות, לולאות, משתנים ועוד.
השימוש ב DBT data build tool:
כפי שציינתי כאשר אנו עושים שימוש ב ELT, אנו מעבירים את הנתונים באופן גולמי מהמקור ישירות ליעד
כדי לבצע טרנספורמציות אנו זקוקים לכלי שיאפשר לנו בקרה וביצוע של הפעולות בשפת SQL.
ניתן כמובן לבצע את הטרנספורמציה גם בשפה כגון: Python
אך מכיוון שנתונים נמצאים כבר בבסיס הנתונים היעד הרי שיש יתרון לשימוש ב SQL.
הDBT data build tool מאפשר לנו לבצע את כל הדרישות הנ"ל וכן שליטה בתהליך, בקרה,
בדיקות ועוד, באופן הדומה לכתיבת קוד ופיתוח מודרני.
לחץ כאן לעבור לקורס DBT data build tool באנגלית: 4 שעות של קורס מקיף

האתגר:
למה אנחנו צריכים את זה אם יש לנו כלי ETL כגון: SSIS, Pentaho Talend, informatica, ?
כיוון שעולם אינטגרצית הנתונים עובר שינוי בחלק מעולמות התוכן.
זה נכון שבעולם המסורתי קרי תעשיה, לוגיסטיקה, ריטייל וכדומה
לא השתנה הרבה אך ארגונים שעוברים לענן ועושים שימוש בבסיסי נתונים MPP
כגון: Snowflake, redshift, Bigquery ואחרים עוברים מ ETL ל ELT. (יוסבר עוד מעט).
התוצאה של המהלך היא שהנתונים הגולמיים "נוחתים" ביעד אך על מנת להכין אותם
למבנה מתאים לאנליטיקה יש צורך לבצע טרספורציות תוך כדי שליטה על התהליך, לוגים, אתרעות.
ההבדל בין ETL ל ELT:
המטרה של שניהם:
משיכת מידע ממקורות שונים כגון בסיסי נתונים רלציוניים, קבצים שונים, API וכו'.
במטרה להביא אותם ליעד משותף במבנה שיאפשר ביצוע אנליטיקה באופן פשוט.
מטרה נוספת לסנכרן בין מקורות מידע באופן אוטומטי ויעיל.
ב ETL : אנו קודם מבצעים Extract כלומר גזירה של הנתונים מהמקור
תוך כדי התהליך אננו מבצעים טרנספורמציות (Transform)
כגון: מיון, חישובים, סינון, איחוד מקורות מידע ועוד ולאחר מכן מעבירים את הנתונים ליעד (Load)
ב ELT : אנו מבצעים את ה Extract ולאחריו ישירות את ה Load במבנה המקורי,
רק לאחר מכן בבסיס הנתונים המבצע טרנספורמציות (T) בדרך כלל באמצעות SQL.
כלים המבצעים את השלב של ה EL יכולים להיות ה "מסורתיים" כגון: SSIS, Pentaho ,Talend, informatica
אך גם כלי ה SAAS בענן כגון: Rivery, Fivetran, airbyte ועוד…
להרצאה על Rivery ככלי ELT לחץ כאן
כמו כן הרצאה ווידאו על ETL VS ELT לחץ כאן
הרכיבים של DBT והפונקציונליות:
מודולים:
מודול הוא המרכיב החשוב ביותר ב DBT data build tool,
מודול הוא המקבילה של שאילתת SQL התוצר שלה ייושם לכדי אחד מהארבעה הבאים: materialization:
טבלה:
הפשוט ביותר, שאילתת SQL תייצר לנו טבלה ביעד,
במידה והטבלה אינה קיימת DBT data build tool ייצור אותו באופן אוטומטי,
במידה והוא כבר קיים הטבלה תידרס ותבנה מחדש.
view:
שאילתא ה SQL תייצר לנו View חדש ביעד או ידרוס קיים
incremental:
השאילתה תעדכן או תוסיף נתונים חדשים לטבלה קיימת,
במידה והטבלה אינה קיימת DBT data build tool יצור טבלה חדשה עם הנתונים הראשוניים.
Ephemeral:
תוצר השאילתה ישמש בזמן הריצה עבור מודולים אחרים מעין טבלה בזיכרון
בדיקות של הקוד: לינק ל tests
DBT data build tool יכול לבצע בדיקות גם של המקור אך גם של היעד לאחר היווצרו.
לדוגמא: נוצרת טבלה של לקוחות, נוכל לוודא שהמפתח של הלקוח הוא חד חד ערכי ואינו ריק.
כמו כן אנו יכולים לבדוק האם יש לה שדה המסוים רפרנס לשדה בטבלה אחרת ואפילו לכתוב בדיקות משל עצמנו.
ל DBT data build tool יש תכונות נוספות כגון:
- שימוש במשתנים (variables )
- קביעה לאיזה סכימה תיכתב הטבלה (schema)
- קביעת מקורות (sources)
- בדיקת ריענון אחרון של המקור. (freshness)
נושאים מתקדמים ב DBT data build tool:
אפשר לכתוב בשפה ששמה Jinja. בעזרת שפה זו ניתן להרחיב את הפונקציונליות של DBT data build tool
macro:
קוד שניתן לקרוא לו תוך כדי ריצה של המודול או לפני הריצה או אחרי הריצה,
השימוש ב macro מאפשר קריאה לאותו הקוד מממודולים שונים, מעין function וכן לבצע פעולות מורכבות כגון: loops ועוד.
Hooks:
פונקציונליות זו מאפשרת לנו לבצע פעולות SQL, כולל פעולות מחיקה, יצירה, הרשאות וכו'.
לפני או אחרי ריצת DBT data build tool וכן לפני או אחרי כל מודול בפני עצמו.
תוספות: Packages
ל DBT data build tool יש תוספות רבות שניתן להוריד מהאינטרנט,
ב DBT data build tool זה נקרא Packages (לינק)

כיצד מתזמנים את ריצת DBT data build tool: scheduling
כיוון שבסופו של דבר ניתן להריץ אותו על ידי הרצת פקודה בשורת הפקודות,
אנו זקוקים לכלי שישלוט על התזמון ניתן להריץ אותו ב crontab תחת לינוקס אובונטו לדוגמא. כמו כן בעזרת jenkins, Airflow ו Prefect
בנוסף: DBT data build tool יצרו את DBT cloud המאפשר לנו להריץ את DBT data build tool ישירות מול repository של GIT בתשלום
כמו כן כלי SAAS המשמשים ל EL כגון: Fivetran ו Airbyte
וכן כלי ויזואליזציה BI שונים, אף הם מאפשרים הרצה ישירות – Holistics.io
עלינו:
אנו, Inflow, מומחים ביישום ETL | ELT | BI בכלים מגוונים וכמובן ב DBT data build tool – נשמח שתצרו קשר במידה
ואתם מעונינים בפיתרון ELT עם DBT.