בדיקות ETL | ניצן גולדנברג

מה זה ETL?

ראשי התיבות ETL מייצג Extract-Transform-Load וזה תהליך של טעינת נתונים ממערכת המקור (המערכת שממנה המידע יוצא) למחסן הנתונים (Data Warehouse) אשר הינו סוג של מסד נתונים. את הנתונים מחלצים ממסד נתונים OLTP, ממירים כך שיתאימו לסכמת מחסן הנתונים וטוענים למסד הנתונים של מחסן הנתונים. מחסני נתונים רבים כוללים גם נתונים ממערכות שאינן OLTP כגון קבצי טקסט, מערכות מדור קודם וגיליונות אלקטרוניים.

מה זה Data WareHouse?

מחסן נתונים (DWH) הוא בסיס נתונים המיועד לשאילתא וניתוח נתונים.

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

בואו נראה איך זה עובד

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

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

הפיתרון הוא להשתמש במחסן נתונים לאחסון מידע ממקורות שונים במבנה אחיד באמצעות ETL. ETL יכול להפוך מערכי נתונים שונים למבנה אחיד. יש להשתמש בכלי BI (בינה עסקית) כדי להפיק תובנות ודיווחים משמעותיים מנתונים אלה.

מדוע ארגונים זקוקים למחסן נתונים?

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

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

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

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

התרשים הבא מציג את מפת הדרכים של תהליך ה-ETL

Extract - חילוץ נתונים רלוונטיים

Transform - הפיכת נתונים לפורמט מחסן נתונים (DWH)

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

Load - טעינת נתונים למחסן הנתונים

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

אז מה זה בדיקת ETL?

בדיקת ETL נעשית על מנת להבטיח שהנתונים אשר נטענו מהמקור ליעד לאחר השינוי העיסקי מדוייקים. זה כרוך גם באימות נתונים בשלבי אמצע שונים המשמשים בין המקור ליעד. אני מזכיר שראשי התיבות של ETL הם Extract-Transform-Load.

תהליך בדיקת ETL

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

בדיקת ETL מתבצעת בחמישה שלבים:

  1. זיהוי מקורות נתונים ודרישות
  2. רכישת נתונים
  3. הטמעת לוגיקה עסקית ומודלים ממדיים
  4. בניה ואכלוס נתונים
  5. בניית דוחות

סוגי בדיקות ETL

  1. בדיקת טרנספורמציית נתונים - לוודא שהנתונים מומרים בצורה נכונה ובהתאם לדרישות וכללים עסקיים שונים.
  2. מקור לספירת יעד בדיקה - לוודא שמספר הרשומות שנטענו ביעד תואמת למספר הרשומות שנשלחו מהמקור.
  3. מקור לבדיקת נתוני יעד - לוודא כי כל הנתונים המועברים נטענים למחסן הנתונים ללא אובדן וגזירת נתונים.
  4. בדיקת איכות נתונים - מניעת שגיאות כתוצאה מהכנסת נתונים וערכים לא חוקיים כגון שגיאות סינטקס.
  5. בדיקת העברת יישומים - בבדיקה זו מובטח כי יישום ETL עובד בצורה חלקה ונקייה על מעבר לפלטפורמה חדשה.
  6. בדיקת כפילויות בנתונים - בדיקה אם ישנם נתונים כפולים במערכות היעד. נתונים כפולים יכולים להוביל לדוחות אנליטיים שגויים.
  7. בדיקת ביצועים - לוודא כי נתונים נטענים במחסן נתונים (DWH) במסגרת זמן שנקבעה וצפויה כדי לאשר ביצועים משופרים.
  8. בדיקת אימות ייצור -אימות הנתונים אשר הוסבו והשוואתם ביחס לנתוני המקור.
  9. בדיקת שילוב נתונים - לוודא כי הנתונים ממקורות שונים הועברו כראוי למערכת היעד וכל בדיקת ערכי הסף.
  10. בדיקת נתונים ואילוץ - במקרה זה בודקים את סוג התאריך, האורך, האינדקס, האילוצים וכו'.

כיצד ליצור מקרי בדיקה ל-ETL?

במהלך ביצוע בדיקות ETL, שני מסמכים שתמיד ישמשו את מקרי הבדיקה הם:

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

תקלות שונות של באגים אשר ניתן למצוא בבדיקת ETL:

  1. תקלות בחישוב - טעויות מתמטיות, תפוקה סופית שגויה כגון חישוב שגוי של עמלת מכירה של כרטיס.
  2. תקלות בממשק המשתמש - קישור לממשק משתמש גרפי (GUI) של היישום, סגנון גופן, גודל גופן, צבעים, יישור, שגיאות כתיב, ניווט וכו'.
  3. תקלות הקשורות לניתוח ערכי גבול (BVA) - ערכי גבולות קצה (מינימום ומקסימום).
  4. תקלות בחלוקת מחלקות השוויון (ECP) - סוגי חוקי ולא חוקי.
  5. תקלות מצבים - קריסה ותקיעת המערכת, המערכת לא עובדת על הפלטפורמה של הלקוח.
  6. תקלות במצב הטעינה - בעיות בעומס גבוהה אצל הלקוח, בעיות במשתמשים מרובים.
  7. תקלות בבקרת גרסאות - אי התאמת תמונות לוגו, חוסר מידע על גרסאות.
  8. תקלות עזרה במקורות - תקלות במסמכי עזרה של המערכת.
  9. תקלות בקלט ופלט - ערכים תקפים לא מתקבלים, ערכים לא חוקיים מתקבלים.

תחומי האחריות של בודק ה-ETL:

  1. בדיקת תוכנת ה-ETL
  2. בדיקת רכיבי מחסן הנתונים (Data WareHouse)
  3. ביצוע בדיקת backend data-driven
  4. יצירה, תכנון וביצוע מקרי בדיקה, תוכניות בדיקה ובדיקות אוטומטיות
  5. זיהוי בעיות וסיפוק פתרונות לבעיות פוטנציאליות
  6. אישור מסמך דרישות ומפרט תכני
  7. בדיקת העברת נתונים
  8. כתיבת שאילתות SQL לתרחישים שונים כגון בדיקת ספירת נתונים.

 

לסיכום:

במאמר זה סקרתי את נושא ה-ETL.

מה זה ETL, איך בנוי יישום ה-ETL ואיך הוא עובד. אילו סוגי בדיקות עושים ליישום ה-ETL.

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

כמו כן סקרנו את תחומי האחריות של הבודק.

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