ETL

ETL או Extract, Transform, Load הוא תהליך מבוסס תוכנה באמצעותו מועברים נתונים ממערכות תפעוליות למחסן נתונים.

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

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

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

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

== תהליך ==
בשל כמויות הנתונים הגדולות בדרך כלל מבוצע תהליך ה-ETL בעיבוד באצווה (Batch processing). היות שהתהליך הוא בדרך כלל תהליך ארוך הוא מבוצע תקופתית: בארגונים רבים אחת לשבוע.

=== שלב הוצאת נתונים מקבצי המקור - Extract ===

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

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

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

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

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

=== שלב הטעינה - Load ===

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

== מוצרים ==
* [https://lp.aqurate-data.com/talend/ Talend] - פלטפורמה חדשנית לניהול אינטגרציית וטיוב נתונים המתבססת על קוד פתוח.
* DataStage - מוצר של חברת Ascential שנרכשה על ידי חברת Informix. כיום שייך המוצר לחברת IBM, שרכשה את חברת Informix.
* מוצרים של חברת Informatica.
* Sql Server integration Services - SSIS - מגיע עם התקנת SQL SERVER של microsoft.
* IBOLT- כלי ETL שפותח על ידי magic.

== מגמות ==
המגמה הבולטת היא שילוב מוצרי ה-ETL עם מוצרי תווכה אחרים ומתן פתרון כולל לדרישות אינטגרציה באמצעות משפחת מוצרים המשולבים ביניהם. כך למשל חברת IBM משלבת את DataStage ביחד עם מוצרי תווכה אחרים השייכים למותג WebSphere. לחברת Informatica מוצרי תווכה בתחומים נוספים נוסף למוצר ה-ETL שלה. לחברת Talend בניגוד ליצרנים אחרים הפתרונות מהווים חבילה אחודה החל מ ETL ESB Data Quality ועד ל Cloud ו Spark Steaming.

== ראו גם ==
* מחסן נתונים

== לקריאה נוספת ==
* Duraid Ibrahim & Vojislav B. Mišić, FROM 8X5 TO 24X7: ENTERPRISE INTEGRATION THROUGH SOA AND ETL, Integration Consortium.org, 2006.
== קישורים חיצוניים ==

* Ted Friedman, Mark A. Beyer, Andreas Bitterer, [https://web.archive.org/web/20091011102706/http://mediaproducts.gartner.com/reprints/sas/vol5/article4/article4.html Magic Quadrant for Data Integration Tools ], gartner.com

קטגוריה:מחשוב