יום חמישי, 18 באוקטובר 2018

הקדמה קצרה על בדיקות ביג דאטה

מה זה ביג דאטה ולמה זה חשוב?

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

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

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

ביג דאטה מאופיין בשלשה Vים (יש גם שחושבים חמישה)

1.  Volume - כמות המידע שיכול להגיע לפתות ויותר. חשבו למשל כמה מידע רק הטלפון שלכם מייצר!

2. Velocity - שזה כמות המידע הנכנס במהירות אבל גם מהירות העיבוד שלו, שחייבת מסיבות ברורות להיות מהירה ממהירות הכניסה.

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

החשיבות הגדולה היא שכיום לא חשוב רק המוצר של החברה (שיהיה למשל איכותי, זול וכד') אלא גם מידע על העולם (שוק, מתחרים ועוד). בעזרת מידע זה ההתנהגות שלך, כפי שנותחה ע"י השוואה לעשרות מיליוני תבניות התנהגות של אחרים, תהיה צפויה יותר והחברה תגיע אליך לפני שאתה בכלל התחלת לחפש את המוצר. למשל בעזרת מידע רב של אנשים שידוע שהם נשואים ובשלב מסוים מתחילים לראות תעבורה רבה שלהם אל אתרי הכרות, אפשר להציע להם בפרסומת עו"ד המתמחה בגירושין. כך מגיעים ל-V אחר - Value.

איך בודקים ביג דאטה?ישנם כמה שלבי בדיקה:

קודם כמה מילים על ETL (Extract, Transform, Load) מוויקי:

"[ETL] הוא תהליך מבוסס תוכנה באמצעותו מועברים נתונים ממערכות תפעוליות למחסן נתונים. לתהליך שלושה שלבים:

הוצאת נתונים מקבצי המקור (Extract) - מועתקים נתונים מהמקורות לבסיס נתונים ביניים (באנגלית Staging)

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

בשלב השלישי (Load) נטענים הנתונים שעברו טרנספורמציה למחסן הנתונים."סוג בדיקה אחת - אימות נתונים נכנסים - כלומר ה-ETL:

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

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

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

3. בדיקה שהטרנספורמציות נעשו בצורה נכונה.

4. בדיקה שהדאטה נכנס לתיקיות הנכונות.


 במגזין "עולם הבדיקות" גיליון 8 2017 יש כתבה של רון ורד שנותן עוד כמה זוויות של בדיקות.

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

מבחינת עומסים כדאי לבדוק את קצב כניסת המידע (ETL), מהירות העיבוד של ה-MapReduce ועיבוד הדאטה כולל בסאב-סיסטמס.

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


 מקורות:

סרטון הצגה של ביג דאטה: https://www.youtube.com/watch?v=AoqBwMc9_yYשימושים של ביג דאטה: https://www.youtube.com/watch?v=qXyzDd2heK8מידע רב ומעניין על בדיקות של ביג דאטה: http://www.guru99.com/big-data-testing-functional-performance.htmlביג דאטה בעברית: http://www.softwarearchiblog.com/2011/10/big-data-nosql.htmlx 

אין תגובות:

הוסף רשומת תגובה

רשומות פופולריות