הבלוג של גרי רשף

18/07/2010

השוואה בין SSIS ואינפורמטיקה

Filed under: Uncategorized — תגיות: , , , , , , , , , , , , — גרי רשף @ 13:18

כלי ETL (ראשי תיבות של Extract Transform Load) הפכו פופולריים מאוד בעשר השנים האחרונות, בעיקר בתחום ה-BI בכל מה שקשור להקמת Data Warehouse (להלן- DWH).
למי שלא מכיר- מדובר בכלי פיתוח ויזואליים שנועדו בראש ובראשונה להעביר כמויות גדולות של נתונים מסביבה אחת לאחרת, ובאופן טבעי הם קשורים לבניית DWH שהוא בסיס נתונים המרכז נתונים ממערכות המידע השונות בארגון ומאפשר להפיק דוחות ניהוליים הפונים למקור אחד, ליצור "אמת אירגונית" אחת בשעה שהמערכות השונות אינן מסונכרנות זו עם זו.
לפיכך לכלי ETL יש מספר מאפיינים:
1. אלו כלים ויזואליים בהם ניתן לראות מה המקור (Extract) ומה היעד (Load), אילו עיבודים (Transform) הנתונים עוברים בדרך, מה הולך לאן וכו'; במקום שורות קוד שמובנות רק למי שכתב אותן (במקרה הטוב).
2. יכולת התחברות למקורות שונים: Oracle, SQL Server, קבצי טקסט, קבצי XML, קבצי Excel, ועוד.
3. יכולת העברת כמויות גדולות של נתונים, כולל שליפה בהתחלה ושמירה בסוף.
4. ביצוע מניפולציות בין נתונים ממקורות שונים תוך כדי ריצה (למשל- ביצוע Join בין מידע שנקרא מקובץ טקסט וטבלת SQL Server).

בדרך כלל מקובל לומר שכלי ה-ETL הטוב כיום הוא DataStage שאותו אינני מכיר,
אחריו אינפורמטיקה,
ואחריהם SSIS של מיקרוסופט.
אני רחוק מלהבין ומלהכריע בסוגיה, מה גם ששמתי לב שמי שרגיל לעבוד עם הטכנולוגיות של מיקרוסופט לא מוכן להחליף אותה באחרת, ומי שלא- בטוח שלמיקרוסופט יש כלים נחותים טכנולוגית שמצטיינים בויזואליזציה (נראים טוב..), ופוקד עוון אבות על שילשים וריבעים (כלומר- מאשים את SSIS של גרסת 2008 במגבלות של DTS מגרסת 2000 שהיו לו יכולות ETL מוגבלות).
יחד עם זאת- עבדתי במו ידי עם SSIS בגרסת 2005 ועם אינפורמטיקה בגרסה 8.6 במהלך השנים האחרונות (את DataStage אינני מכיר), ואני מרשה לעצמי להשוות בין הכלים מנקודת מבטו המוגבלת של מתכנת מהשורה שלא מבין הרבה ב"ארכיטקטורה" או "פלטפורמות" וכו'. כלומר- הפרספקטיבה והחוויה שלי כמפתח.

יתרונות של ה-SSIS

1. SSIS הוא חלק מחבילת ה-BI שמגיעה יחד עם ה-SQL Server. הכלים השונים מסתנכרנים ו"מדברים" בקלות זה עם זה, וגם אם יטענו שלכל אחד יש תחליף שעולה עליו טכנולוגית, לכולם ביחד יש יתרון שאין לאוסף כלים עצמאיים שכל אחד בפני עצמו הוא אולי ראוי.
2. המחיר של חבילת SQL Server יחד עם כלי ה-BI זול משמעותית מכלים שונים שנקנים בנפרד.
3. הרושם שלי שההעברה בין הסביבות השונות (פיתוח, בדיקות, יצור) הרבה יותר נוחה עם SSIS מאשר עם אינפורמטיקה: יש להעביר מספר קבצי Xml כל אחד בן כמה מאות KB, במקום לבצע העברה מרפוזיטורי אחד לשני. אני יודע שאפשר לסבך כל דבר פשוט, וכל דבר מסובך נעשה פשוט יותר במשך הזמן; אך הרושם שלי שבאופן בסיסי העברת הסביבות באינפורמטיקה אינה נוחה.
4. ל-SSIS יש מגוון גדול יותר של אובייקטים שניתן להשתמש בהם מאשר באינפורמטיקה. אני מתאר לעצמי שכל דבר שאפשר באחד- אפשרי כך או אחרת גם בשני; אך עדיין- יותר כלים מאפשר שימוש טבעי בהתאם למטרה אותה נועד הכלי לשרת מבלי לעשות "מעשים מגונים" ולהיעזר בפירוטכניקות בכלים המועטים הקיימים.. דוגמאות על קצה המזלג: יכולת לבצע לולאות, הרצת פקודות SQL לעדכון בסיס הנתונים, פעולות מול ה-File system..
5. לכלים של מיקרוסופט יש יותר חומר עזר: בלוגים, Tutorials, ספרים, כנסים מקצועיים, אתרים באינטרנט, פורומים וכו'.
6. SSIS כולל כלי עזר רבים ל-DBA לתחזוקה שוטפת (גיבוי, טיפול באינדקסים..), בנוסף לכלי ה-BI שנועדו להעברת נתונים.
7. הדיבוג ב-SSIS נוח משמעותית: מריצים מה-Visual Studio, קל לתפעול וקל להבנה.
8. כמו כל הכלים של מיקרוסופט- SSIS ידידותי ונוח. במפגש הראשון שלי עם SSIS הצלחתי לבד ליצור תוכנית פשוטה ולהריץ אותה בהצלחה. אין שום סיכוי שהייתי מצליח לעשות זאת בעזרת אינפורמטיקה.
9. למיטב הבנתי ניתן ליצור ב-SSIS אובייקטים חדשים ולהוסיפם לארגז הכלים הקיים.
10.ל-SSIS יש אופצייה לשגרת שגיאה- תהליך חלופי שיופעל אוטומטית במקרה של תקלה או נפילה – ספציפיים באובייקט מסויים או כלליים בתהליך כולו.

חסרונות של ה-SSIS

1. מחייב התקנה מלאה של SQL Server. גם אם מישהו יטען שזה אינו הכרחי- לא הייתי לוקח זאת על מצפוני..
2. עובד רק ב-Windows.
3. בהמשך ל-2 – הכלים של מיקרוסופט מסתדרים מצויין זה עם זה, אך עם כלים חיצוניים יש להם בעייה. אני נתקלתי בלא מעט בעיות בעבודה עם SSIS ועם SSRS מול אוראקל בגרסת 2005 – בעיות בביצועים ובפונקציונליות, בעיות שלא היו – כמובן – עם SQL Server עצמו.
4. אין מוניטור.. רק כשהתחלתי לעבוד עם אינפורמטיקה שמתי לב שהכלי האלמנטרי הזה אינו קיים ב-SSIS. כדי לדעת מה קרה יש לנתח את טבלת הלוג, וכדי לדעת מה קורה- לא קיימת דרך פשוטה. באנפורמטיקה יש מוניטור שמראה מה נכשל, מה הצליח, ומה עדיין רץ.
5. להיעדר רפוזיטורי יש גם חסרונות: אין טבלאות מטה-דטה או טבלאות לוג מסודרות של הריצות וזמני הריצות. אין דרך לתחקר את האובייקטים ולדעת מה קשור למה, מה רץ מתי וכמה זמן, מה מפעיל מה וכו' (זו גם הסיבה להיעדר מוניטור).
6. אין ל-SSIS יכולת הפשטה ו-Reusability של אובייקטים. באינפורמטיקה ניתן להשתמש באובייקט שבנינו במקומות שונים מבלי ליצור עותקים נפרדים שלו שיש לתחזק בנפרד.

הערות והשלמות

1. אלדד הרץ מ-www.dwh.co.il הוסיף לטיוטה שהתפרסמה אצלו של מה שכתבתי כאן את הדברים הבאים (קטונתי מלחלוק על דעתו):
עוד חסרונות:
רגיש בצורה בלתי רגילה לשינויים ב metaData
חסרות פוננקציות בסיסיות
אני חושב שאין צורך בהתקנה מלאה של SQL ע"מ להשתמש ב SSIS ( כנ"ל לגבי שאר הרכיבים)

2. מילון קצר לאובייקטים השונים בכל אחד מהכלים כדי שתהיה שפה משותפת:
Solution של SSIS מקביל פחות או יותר ל-Folder באינפורמטיקה.
Package ב-SSIS מקביל פחות או יותר ל-Workflow באינפורמטיקה.
Flow Task ב-SSIS מקביל פחות או יותר ל-Mapping באינפורמטיקה.
3. ב-SSIS יוצרים Package המייצג תהליך, ויוצרים בו אובייקטים שונים, בינהם Flow Tasks שמייצגים העברת נתונים ממקור ליעד.
באינפורמטיקה יוצרים Mappings שבהם מעבירים נתונים ממקור ליעד, ולאחר מכן מאגדים אותם לתהליך שלם על ידי יצירת Workflow.
כלומר- העבודה ב-SSIS היא מלמעלה למטה (מהתהליך הכללי לפעולות הספציפיות) ובאינפורמטיקה מלמטה למעלה (מהפעולות הספציפיות לתהליך הכולל).
4. ב-SSIS יוצרים Connections למקורות וליעדים השונים של הנתונים, כששרת SQL Server או אוראקל הוא דוגמה לאחד כזה. באינפורמטיקה יש ליצור קשר בנפרד לכל טבלה.
5. בהמשך ל-4: באינפורמטיקה יש הפשטה כך שהטבלאות השונות קיימות בתהליך הפיתוח ללא קשר לקיומן או אי קיומן בבסיס הנתונים, ורק ב-Workflow הן הופכות למוחשיות ומקשרים אותן לטבלאות אמיתיות. לכאורה המפתח יכול להתחיל לעבוד ללא תלות ב-DBA. ב-SSIS מפתחים מול סביבת הפיתוח ובהיעדרה לא ניתן לפתח. יש בזה חסרון ל-SSIS מצד אחד (המפתח תלוי ב-DBA) אך גם יתרון – ברגע שטבלה הוגדרה בסביבת הפיתוח – היא קיימת עבור מפתח ה-SSIS והוא לא צריך ליצור אותה גם אצלו במקביל.

שורה תחתונה

כמפתח אני מעדיף חד משמעית את SSIS, אם כי זה קשור לכך שאני מורגל בעבודה מול SQL Server וחבורתו ומותנה בכך שעיקר העבודה היא מולו (לו נדרשתי להקים DWH באוראקל – הייתי מהרהר שנית ב"שורה התחתונה").

מודעות פרסומת

4 תגובות »

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

    תגובה של עופרה — 29/08/2013 @ 07:29

  2. על החסרונות – כנראה לא ממש עבדת הרבה עם SSIS

    תגובה של קרלוס קנפר — 19/09/2011 @ 13:38

  3. שלום
    תוכל לפרסם אתרים שניתן ללמוד ,איך עובדים עם
    ssis
    תודה

    תגובה של יעקב — 18/05/2011 @ 15:12

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

      תגובה של גרי רשף — 22/05/2011 @ 05:44


RSS feed for comments on this post. TrackBack URI

להשאיר תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

יצירה של אתר חינמי או בלוג ב־WordPress.com.

%d בלוגרים אהבו את זה: