ssis dynamic loading

אירית145

New member
ssis dynamic loading

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

pitoach

New member
תני לקבצים שמות הכוללים את התאריך

בלולאה תבחרי רק קבצים עם שם הכולל את התאריך של אתמול. את ה JOB תריצי כשעה (או בהתאם למצב הלחץ בשרת) לאחר חצות בכל יום.
* זה רק אחד ממיליון הרעיונות שאפשר להעלות שיתאים למידע המועט שיש לנו כאן.
אני מקווה שזה עונה על הצרכים שלכם
 

אירית145

New member
התהליך כרגע בפיתוח ולא מתוזמן לו JOB.

כמו כן, התהליך אמור לרוץ כל 10 דקות ולדגום את הקובץ. קובץ יומי מגיע כמה פעמים ביום, אבל עם אותו שם. למחרת הוא מגיע עם שם + תאריך של מחר וכך הלאה. כל מה שקורה זה שהוא נכנס כמה פעמים ביום לתיקיה ויש מקרים (בימי ראשון או אחרי חגים), כאשר יש שני שני קבצים (של יומיים וכמובן כל אחד עם השם + תאריך של אותו יום)
אני ניסיתי להעתיק את הקובץ מתיקיית מקור ל-OLD, אבל משום מה זה מפיל לי מידי פעם את ה-CONNECTION. ראיתי שיש אפשרות לעבוד עם SCRIPT, אבל אז יש כאלה ששמים בתור פראמטר את שם הקובץ ויש כאלה שאת הנתיב כולו
אני די מבולבלת...


תודה
 

pitoach

New member
מצד אחד את קובעת מציגה לנו התנהגות מערכת

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

מה ז"א "מגיע"? מהיכן? כיצד? מי המקור? הם אפשר לבצע שינוי?
* יש מיליון שאלות שעולות כאשר יושבים על אפיון!

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


הנה כמה נקודות:
* אמרנו כבר ששם קובץ יכול להכיל זמן אבל מצד שני זמן יצירת קובץ זה משהו שמוטבע במאפייני הקובץ במערכת ההפעלה, ולכן בעצם הנתון הזה קיים לו בכל מקרה, גם אם שם הקובץ לא כולל אותו!
* אסור להיות נעולים על טכנולוגיה מסוימת או על אפליקציה מסוימת להגעה לפתרון. מי בכלל אמר שהפתרון מתחבא ב SQL Server? אני למשל נוטה כרגע לאור המידע החדש לפתרון שבכלל מנוהל על ידי אפליקציה קטנה.
* ניהול קבצים מאוד קל לבצע באמצעות ה API המובנה במערכת ההפעלה. גם ככה היא מנהלת את הקבצים.
* ניתן לפנות להפעלת פעולות SHELL ופקודות דרך שאילתות SQL באמצעות פרוצדורה מובנית שנמצאת בשרת בשם xp_cmdshell
* למה לבצע פעולה כל X זמן?!? למה לא לתפוס את הקובץ ברגע שהוא כנתב? כאמור מערכת ההפעלה עצמה כוללת אפשרות מעקב אחרי אירועים, אפשר לקבוע שברגע שקובץ נכתב ירוץ סקריפט מסוים (קצת יותר מתקדם ומחייב עבודה בקוד בשפות כמו C++ ולא ישירות דרך C#).
* בשרתי SQL יש סוגים שונים של טורים היכולים לשמש לאחסון קבצים. האם מיהו חשב לשמור את הקובץ כבר במקור במסד הנתונים?
* אם הקובץ נכנס למסד הנתונים, אז שוב אפשר לפעול בשיטת איתור הקובץ ברגע שהוא נכתב דרך יכולות השרת (שימוש בטריגר).

אני יכול להמשיך בלי סוף

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

תבחרי על כיוון כללי וכשאשר יהיה בעיות ספציפיות נוכל לעזור לפתור אותן (או להגיד שהכיוון הכללי היה לא טוב וצריך להתחיל מההתחלה
)
 

pitoach

New member
אם אתם עובדים עם שרת SQL בגרסת 2012 או

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

אירית145

New member
תודה רבה

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

pitoach

New member
בכיף
תחזרי אם צריך להבהיר משהו, אני אציץ

בשאלה שלך בעוד כמה רגעים
 
למעלה