HiTakeJobHiTakeJob

מה זה Data Warehouse? הסבר + משרות פתוחות בישראל

זמן קריאה: 6 דקות

מחסן נתונים הוא מסד נתונים מרכזי שנבנה לניתוח ולדיווח, ולא להפעלת המוצר. הוא מרכז נתונים מכל מערכות הארגון במבנה שנוח לשאול ממנו שאלות רוחב על פני שנים. בלוח HiTakeJob פתוחות כרגע 133 משרות שמזכירות SQL, 16 שמזכירות BigQuery ו-16 שמזכירות Snowflake.

למה לא פשוט לדווח ממסד הנתונים של המוצר?

זו השאלה הראשונה שכל ארגון שואל, ויש לה ארבע תשובות מעשיות:

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

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

איך בנוי מחסן נתונים - מודל כוכב

המבנה הרווח מורכב משני סוגי טבלאות בלבד:

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

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

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

מחסן, אגם, או שניהם?

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

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

מחסן על שרת מקומי מול מחסן בענן

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

מה עולה כסף במחסן בענן

במודל הענן משלמים בנפרד על אחסון ועל חישוב, ולכן ההתנהגות היומיומית קובעת את החשבון:

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

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

שכבות בתוך המחסן - למה לא כותבים הכול לטבלה אחת

מחסן מסודר בנוי בשלוש שכבות, ולכל אחת תפקיד ברור:

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

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

איך יודעים שהגיע הזמן למחסן נתונים

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

מי עובד מול מחסן נתונים

תפקידמה עושה מול המחסןכלי עיקרי
Data Engineerבונה את הצינורות שמזינים אותוPython, Airflow
Analytics Engineerבונה את שכבת הטבלאות המסודרותSQL
מפתח BIמודל דיווח ודשבורדים מעליוכלי BI, SQL
Data Analystשואל שאלות ומנתחSQL, Excel

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

שאלות נפוצות

מה ההבדל בין מחסן נתונים למסד נתונים רגיל?

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

BigQuery או Snowflake - מה נפוץ בישראל?

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

האם ארגון קטן צריך מחסן נתונים?

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

מה זה Data Mart?

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

איך מטפלים במידע אישי בתוך מחסן נתונים?

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

כמה זמן לוקח להקים מחסן נתונים?

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

מאמרים נוספים

המשרות באתר