PracticU

לולאת Foreach ב-SSIS - חלק 2

בלי כתוביותעם כתוביות
PracticU › קורס SSIS › לולאת Foreach ב-SSIS - חלק 2
מילון מושגים:
SSIS - רכיב של SQL Server לבניית תהליכי ETL להעברה ולעיבוד של נתונים בין מקורות.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
Northwind - מסד נתונים לדוגמה של מיקרוסופט, המדמה חברת מסחר ומשמש ללימוד ולהדגמת שאילתות SQL.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.

לולאת Foreach ב-SSIS - חלק 2
ממשיכים את לולאת ה-Foreach על טבלאות: עבור כל טבלה ב-Northwind מריצים sp_spaceused ושומרים את הפלט בטבלה משלנו.
השלבים העיקריים
1. טבלת היעד: יוצרים טבלה בשם Space Used בעמודות לפי הפלט של הפרוצדורה: שם הטבלה, total rows, שטח שמור (reserved), נתונים, גודל אינדקסים ו-unused. שם הטבלה נשמר כ-sysname, מספר השורות כמספר שלם, והשאר כ-varchar בגודל 100, כי הערכים כוללים KB. העמודה reserved שונתה ל-MyData, כי זו מילה שמורה.
2. Execute SQL בתוך הקונטיינר: מוסיפים Execute SQL Task לתוך ה-For Each Loop Container, מחוברים לחיבור Northwind, ועם הפקודה sp_spaceused על פרמטר ולא על טבלה מסוימת.
3. מיפוי פרמטר: ב-Parameter Mapping מוסיפים את המשתנה table name כ-input מסוג varchar, בגודל 100, במיקום 0.
4. הכנסה לטבלה: מקיפים את הפקודה ב-INSERT INTO לטבלת Space Used, כך שפלט הפרוצדורה נכנס ישירות אליה. הפרמטר מתעדכן על ידי הלולאה בכל טבלה.
5. הרצה: מבטלים את ה-Breakpoint ומריצים את הקונטיינר. אחרי הסיום ה-select מציג את כל הטבלאות עם מספר השורות והגדלים: נתונים, אינדקסים ושטח פנוי שנשמר עדיין בעמודים שהוקצו.
אחרי ההרצאה אפשר להשתמש בלולאת Foreach כדי להפעיל פקודה על כל טבלה במסד ולאסוף את התוצאות לטבלה אחת.
השיעור הבא בקורס: לולאת Foreach ב-SSIS - חלק 3

פרקי ההרצאה: לולאת Foreach ב-SSIS - חלק 2

  1. 00:00

    הרצת sp_spaceused לכל טבלה

  2. 00:40

    הגדרת עמודות הטבלה כ-Varchar

  3. 01:33

    Execute SQL בתוך הקונטיינר

  4. 02:12

    מיפוי הפרמטר Table Name

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

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

  1. 00:02

    כאמור בדוגמה שלפנינו אנחנו בהמשך לדוגמה קודמת רוצים לעבור טבלה אחר טבלה ועבור כל טבלה להריץ את הפקודה SP SPACE USED. את אותו פלט של הפרוצדורה אנחנו רוצים להכניס לתוך טבלה.

  2. 00:16

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

  3. 00:30

    אנחנו רוצים לקחת את ה-total rows שבשבילו אנחנו יכולים להגדיר איזשהו אינטג'ר. אנחנו יכולים להגדיר משתנה Reserved שגם הוא יכול להיות אינטג'ר אבל מאחר ויש לכולם דאטה שמכניס לנו גם את הקילו בייט אז כבר אנחנו מדברים כאן על משתנה שהוא חייב להיות מחוזתי ולכן את כולם נגדיר אותם כוורקר של 100. עבור ה-Reserved שברנו לעצמנו עמודה עבור ה-Table Data,

  4. 00:59

    אינדקס דאטה ו-unused, נשנה את העמודות בהתאם לזה, אז יש לנו כאן את הדאטה, כאן יש לנו את ה-index size וכאן יש לנו את ה-unused.

  5. 01:12

    הטבלה שלנו מוכנה, יש לנו כאן את העמודות שאליהן אנחנו רוצים להכניס את הנתונים, נשנה את זה ל-MyData מאחר שזו מילה שמורה, ה-reserved, total rows ו-TableName, אלו הם בעצם שמות העמודות שלהם אנחנו רוצים להכניס את הנתונים, והטבלה עצמה כרגע קיימת לרשותנו בתוך דאטאבייס

  6. 01:31

    נורפרינד. נחזור לתוך הוויז'ואל סטודיו, אני עובר על כל טבלה וטבלה ואנחנו רוצים בפנים להריץ פקודת SP space used, להריץ את זה על השם של הטבלה שאותה אנחנו נקבל כפרמטר כתוצאה מה-foreach-loop-container.

  7. 01:50

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

  8. 02:09

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

  9. 02:32

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

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

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

ההרצאה הבאה: לולאת Foreach ב-SSIS - חלק 3

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

  • לולאת foreach
  • פקודת Foreach
  • לולאת Do - While
  • סקריפט עם לולאת for

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

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