משימת הסקריט ב- SSIS- מתי כדאי להשתמש ומתי לא ?
דף הבית  >>  >>  הרשם  |  התחבר
מאמרים

משימת הסקריט ב- SSIS- מתי כדאי להשתמש ומתי לא ? 

מאת    [ 30/04/2014 ]
מילים במאמר: 1173   [ נצפה 2380 פעמים ]

 
 

משימת (Task) הסקריפט היא כמו הג'וקר במשחק קלפים – קלף שיכול להיות כל מה שרוצים.

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

כמה שזה נשמע מלהיב – כדאי להשתמש במשימת הסקריפט בזהירות.

 

יש מתכנתים שמתפתים להשתמש הרבה במשימת הסקריפט, מתוך הרגל של כתיבת קוד.

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

לפעמים זה נראה פשוט יותר מאשר ללמוד איך לעשות את זה במשימת 'data flow' או במשימת 'execute sql'. אבל לא כדאי ליפול לתוך המלכודת המתוקה הזו.

ראשית – כדאי לבדוק היטב אם אכן אף משימה לא מתאימה. המשימות נבנו בצורה כזו שהן עושות את הפעולה המבוקשת בצורה האופטימלית ביותר (יעילות ביצוע ומהירות), כך שאם אפשר לעשות את הפעולה הנצרכת בעזרת משימה מובנית של ה- SQL Server Integration Services - לא כדאי לעשות זאת ע"י הסקריפט.

 

אם כך, לצורך אלו דברים כדאי להשתמש במשימת הסקריפט ?

 


    • הדבר הפשוט ביותר הוא הצגת הודעות במהלך הריצה.

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

 


    • אפשר להכין תוכן מכתב אימייל מנתונים שהתקבלו מביצוע שאילתות SQL. תוכלו לשרשר את הערכים ומילות הקישור, ע"י פונקציות לטיפול במחרוזות.

 

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

 

  

משימת (Task) הסקריפט היא כמו הג'וקר במשחק קלפים – קלף שיכול להיות כל מה שרוצים.

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

כמה שזה נשמע מלהיב – כדאי להשתמש במשימת הסקריפט בזהירות.

 

יש מתכנתים שמתפתים להשתמש הרבה במשימת הסקריפט, מתוך הרגל של כתיבת קוד.

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

לפעמים זה נראה פשוט יותר מאשר ללמוד איך לעשות את זה במשימת 'data flow' או במשימת 'execute sql'. אבל לא כדאי ליפול לתוך המלכודת המתוקה הזו.

ראשית – כדאי לבדוק היטב אם אכן אף משימה לא מתאימה. המשימות נבנו בצורה כזו שהן עושות את הפעולה המבוקשת בצורה האופטימלית ביותר (יעילות ביצוע ומהירות), כך שאם אפשר לעשות את הפעולה הנצרכת בעזרת משימה מובנית של ה- SQL Server Integration Services - לא כדאי לעשות זאת ע"י הסקריפט.

 

אם כך, לצורך אלו דברים כדאי להשתמש במשימת הסקריפט ?

 


    • הדבר הפשוט ביותר הוא הצגת הודעות במהלך הריצה.

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

 


    • אפשר להכין תוכן מכתב אימייל מנתונים שהתקבלו מביצוע שאילתות SQL. תוכלו לשרשר את הערכים ומילות הקישור, ע"י פונקציות לטיפול במחרוזות.

 


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

 


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

או ההיפך, אם תרצו ליצור קובץ חדש ששמו מכיל נתונים שהתקבלו מביצוע שאילתות SQL

 


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

 


    • ניתן גם לבצע חישובים מתמטיים על משתנים – למשל חישוב אחוז שגיאות עפ"י מספר השגיאות שהצטבר במונה במשימה מסוימת.

 

ישנה אומנם אפשרות לעשות דברים כאלו בעזרת ה-expression, אך רק לגבי שדות המאפיינים של המשימה או במשימת ה-''Derived Column – אך רק לגבי שדות הרשומות של קובץ/טבלת המקור באותו ה- 'data flow'.

ב-visual studio 2012  והלאה ישנה משימה חדשה בשם: Expression Task , שבה ניתן לקחת משתנה ובעזרתexpression  להפעיל עליו פונקציות שונות (של מחרוזות, פעולות מתמטיות, בדיקת NULL, תאריך והמרה) ולבדוק אם מתקיימים תנאים מסוימים. זה מאפשר לעשות את הדברים ללא משימת הסקריפט ובצורה יעילה יותר.

 


    • ניתן לבדוק האם בעקבות פעילות של משימת web service'' נוצרו קבצים מסוימים ולשמור את התוצאה במשתנה.

 

 

 

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


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

 


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

או ההיפך, אם תרצו ליצור קובץ חדש ששמו מכיל נתונים שהתקבלו מביצוע שאילתות SQL

 

 


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

 

 


    • ניתן גם לבצע חישובים מתמטיים על משתנים – למשל חישוב אחוז שגיאות עפ"י מספר השגיאות שהצטבר במונה במשימה מסוימת.

 

ישנה אומנם אפשרות לעשות דברים כאלו בעזרת ה-expression, אך רק לגבי שדות המאפיינים של המשימה או במשימת ה-''Derived Column – אך רק לגבי שדות הרשומות של קובץ/טבלת המקור באותו ה- 'data flow'.

ב-visual studio 2012  והלאה ישנה משימה חדשה בשם: Expression Task , שבה ניתן לקחת משתנה ובעזרתexpression  להפעיל עליו פונקציות שונות (של מחרוזות, פעולות מתמטיות, בדיקת NULL, תאריך והמרה) ולבדוק אם מתקיימים תנאים מסוימים. זה מאפשר לעשות את הדברים ללא משימת הסקריפט ובצורה יעילה יותר.

 


    • ניתן לבדוק האם בעקבות פעילות של משימת web service'' נוצרו קבצים מסוימים ולשמור את התוצאה במשתנה.

 

 

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

תוכניתנית המפתחת בעבודתה מערכות אינטרא-נט-יות, המשלבות ג'וב של SSIS  . בעלת אתר להדרכה בתכנות אינטגריישן סרוויסז:  http://www.ssis2go.com ודף עיסקי בפייסבוק. דוא"ל: ssis2go.com

מאמרים נוספים שעשויים לעניין אותך:

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

©2017
כל הזכויות שמורות

מורנו'ס - שיווק באינטרנט

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



מדיה חברתית:
חלון מאמרים לאתרך
תנאי שימוש במאמרים
ערוצי מאמרים ב-RSS Recent articles RSS


מאמרים בפייסבוק מאמרים בטוויטר מאמרים ביוטיוב