PracticU

לולאת For ב-SSIS - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס SSIS › לולאת For ב-SSIS - חלק 1
מילון מושגים:
SSIS - רכיב של SQL Server לבניית תהליכי ETL להעברה ולעיבוד של נתונים בין מקורות.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
ETL - תהליך של חילוץ נתונים ממקורות, עיבודם והטענתם ליעד כמו מחסן נתונים (Extract, Transform, Load).
מחסן נתונים - מסד נתונים מרכזי שמרכז נתונים ממקורות שונים לצורך ניתוח ודיווח, ולא לתפעול שוטף.
Integer - סוג נתונים למספר שלם, כלומר מספר ללא חלק עשרוני.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
בוליאני - סוג נתונים שיכול לקבל אחד משני ערכים בלבד: אמת (true) או שקר (false).

לולאת For ב-SSIS - חלק 1
For Loop Container מאפשר לתכנת לולאה בסגנון שפות תכנות, עם ערך התחלתי, תנאי המשך וקידום. המרצה מציין שהוא הכי פחות נפוץ בתהליכי ETL ובבניית Data Warehouse, ומדגים אותו בחישוב 2 בחזקת 10 בלי פונקציית power.
בניית הלולאה
1. הרעיון: הכפלת 2 בעצמו 10 פעמים נותנת 1024. הלולאה תרוץ 10 פעמים ובכל איטרציה תכפיל את התוצאה ב-2.
2. שני משתנים: משתנה integer בשם base עם ערך 2, ומונה (counter) עם ערך התחלתי 1.
3. הגדרת הקונטיינר: ערך התחלתי ל-counter הוא 1, תנאי ההמשך הוא counter קטן או שווה ל-10, וקידום הוא counter ועוד 1.
4. הפעולה בפנים: מוסיפים רכיב Expression Task עם הנוסחה base שווה ל-base כפול 2. הלולאה קובעת כמה פעמים זה יתבצע.
5. Breakpoint: ב-Edit Breakpoints מסמנים Break at the beginning of every iteration of the loop. התהליך חייב לרוץ ב-Start Debugging, ובחלון Locals רואים את ערכי המשתנים.
6. התוצאה: ערכי base לאורך האיטרציות: 2, 4, 8, 16, 32, 64, 128, 256, 512 ולבסוף 1024, והלולאה מסתיימת. הרכיבים האחרים סומנו כ-disabled כדי שלא יפריעו.
מושגים
- ה-Container קובע כמה פעמים לבצע ומה התנאי הבוליאני, והפעולה שבתוכו היא בחירה חופשית.
- ההבדל משאר הקונטיינרים: Sequence Container מאגד רכיבים, ו-For Each Loop עובר על אובייקטים.
אחרי ההרצאה אפשר להגדיר For Loop Container עם משתנה מונה ולעקוב אחרי ערכיו עם Breakpoint.
השיעור הבא בקורס: לולאת For ב-SSIS - חלק 2

פרקי ההרצאה: לולאת For ב-SSIS - חלק 1

  1. 00:00

    הכרת For Loop Container

  2. 00:40

    ההבדל בין Foreach ל-For Loop

  3. 01:17

    חישוב 2 בחזקת 10 בלולאה

  4. 02:35

    הגדרת משתני Base ו-Counter

  5. 03:32

    ערך התחלתי ותנאי הלולאה

  6. 04:10

    קידום ה-Counter בכל איטרציה

תמלול ההרצאה: לולאת For ב-SSIS - חלק 1

הטקסט המלא של הדקות הראשונות בהרצאה «לולאת For ב-SSIS - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    בדוגמה הבאה אנחנו נכיר קונטיינר נוסף for Loop Container. למען האמת, מתוך משפחה של שלושת הקונטיינרים שנמצאים כאן לפנינו, זהו הקונטיינר הכי פחות פופולרי, הכי פחות שימושי בתהליכי ETL, בתהליכי בנייה של Data Warehouse כפי שנראה בהמשך.

  2. 00:21

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

  3. 00:40

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

  4. 00:59

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

  5. 01:11

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

  6. 01:24

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

  7. 01:40

    אולם אני לא רוצה להשתמש בפונקציית power, אני רוצה להשתמש בלופ על מנת לבצע זאת. כיצד נעשה זאת? אני מבין ש-2 בחזקת 10 זה בעצם 2 כפול 2 כפול 2 וכל זה הולך וממשיך לנו בעצם 10 פעמים.

  8. 02:00

    אם נסתכל כמה פעמים אנחנו מכפילים את כל ה-2, זה בעצם 10 פעמים וזה נותן לנו את הפתרון הסופי של 2 בחזקת 10, 1024. כיצד נממש זאת בלולאה?

  9. 02:12

    אנחנו ניצור לולאה שהערך ההתחלתי שלה היא initial values, הוא בעצם 2, ואנחנו נייצר את הלולאה שהערך שלה יהיה בעצם 1, ואנחנו נרוץ עד 10. כלומר, ניצור לולאה שרצה 10 פעמים.

  10. 02:28

    מה היא עושה 10 פעמים? לוקחת את המספר 2 בהתחלה ומכפילה אותו בעצמו שוב ושוב כל פעם מחדש עד שנקבל את התוצאה. בואו נראה כיצד הדברים הללו קורים. כדי לבצע זאת קודם כל בואו נקנפג את ה-for-loop-container.

  11. 02:48

    ה-for-loop-container אומר לי כמה פעמים אתה רוצה לבצע את הלולאה, מהו התנאי הבוליאני שבאמצעותו אתה רוצה לבצע את הלולאה. כדי שיהיה לי נוח אנחנו נייצר לנו שני משתנים שונים.

  12. 02:59

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

  13. 03:25

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

  14. 03:43

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

  15. 03:55

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

  16. 04:10

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

  17. 04:25

    הובטח לנו כרגע שהלולאה שלנו, שניתן לה כאן שם, אנחנו רוצים למצוא power of 2, למצוא את ה-2 בחזקת 10, אם אנחנו רוצים למצוא את הפתרון הזה.

  18. 04:37

    אז אנחנו צריכים לרוץ 10 פעמים ולהכפיל שוב פעם את 2, את התוצאה שמתקבלת לנו מהמכפלה בכל איתרציה, שוב פעם ב-2.

לקורס המלא: קורס SSIS אונליין

ההרצאה הקודמת: לולאת Sequence Container ב-SSIS

ההרצאה הבאה: לולאת For ב-SSIS - חלק 2

הרצאות קשורות מקורסים אחרים

  • לולאת for
  • לולאת Do - While
  • סקריפט עם לולאת for
  • לולאת For בקורס JAVA

קורסים נוספים במסלול

  • קורס DBA אפליקטיבי - שפת SQL למתחילים
  • קורס NoSQL - MongoDB
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI