PracticU

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

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

לולאת Foreach ב-SSIS - חלק 1
ה-For Each Loop Container עובד גם על קבצים וגם על אובייקטים בבסיס נתונים. בהרצאה עוברים על כל הטבלאות ב-Northwind ומקבלים את שמן.
השלבים העיקריים
1. בחירת Enumerator: בעריכת הקונטיינר, ב-Collection, בוחרים Foreach SMO Enumerator (System Management Object).
2. קונקשן ואובייקטים: מגדירים את חיבור Northwind, ובלחיצה על Browse אפשר לעבור על Linked Servers, Jobs, Logs, בסיסי נתונים, ובתוכם טבלאות, Views, Users, Data files ועד העמודות של טבלה. בדוגמה נבחרו הטבלאות.
3. סוג הערך: אפשר לקבל את ה-ID של האובייקט או את השם שלו, ונבחר השם. הערך מתקבל בתבנית URN.
4. משתנה: ב-Variable Mapping מקשרים משתנה user ברמת ה-package בשם table name מסוג string.
5. בדיקה: Breakpoint בתחילת כל איטרציה, הרצה ב-Start Debugging וחלון Watch על table name. הערכים הופיעו אחד אחרי השני: Categories, Customer Demographics, Customers, Employees, Employees Territories ועוד.
מה הלאה
בהרצאה הבאה מריצים על כל שם טבלה את הפרוצדורה sp_spaceused. היא מקבלת שם טבלה ומחזירה את שם הטבלה, מספר השורות והנתונים על האחסון: גודל שמור, נתונים, אינדקסים ושטח שלא בשימוש. התוצאות ייקלטו לטבלה.
אחרי ההרצאה אפשר להגדיר לולאה שעוברת על כל הטבלאות בבסיס נתונים ושומרת כל שם במשתנה.
השיעור הבא בקורס: לולאת Foreach ב-SSIS - חלק 2

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

  1. 00:00

    Foreach Loop מול אובייקטים במסד

  2. 00:36

    SMO Enumerator והגדרותיו

  3. 01:14

    סוגי האובייקטים לריצה

  4. 01:49

    מעבר על טבלאות Northwind

  5. 02:26

    משתנה Table Name ב-Variable Mapping

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

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

  1. 00:02

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

  2. 00:14

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

  3. 00:22

    ב-for each Loop Container אנחנו עוברים אובייקט-אובייקט מתוך רשימה נתונה. בדוגמה הקודמת אנחנו ראינו כיצד אנחנו עוברים על רשימת קבצים for each file enumerator.

  4. 00:35

    בדוגמה שלנו אנחנו רוצים לעבור על אובייקטים, הם מופיעים כאן פעמיים באותה צורה ובאותה מילה for each smo enumerator system management object enumerator.

  5. 00:48

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

  6. 01:09

    browse ומתוך שלל האפשרויות שנפתחות לי יש לי אפשרות לרוץ על לינק סרברים שנמצאים לי בתוך ה-SQL, על ג'ובים, לוגים, ברמת דאטאבייס אני יכול לעבור על דאטאבייסים על כל רשימת הדאטאבייסים ואם אני עושה drill down שוב לתוך דאטאבייס אני יכול לרוץ על רמת טבלאות, על רמת views, usרים, data files,

  7. 01:32

    file logs, אובייקטים שונים שנמצאים בתוך הדאטאבייס עד לרמה של לעבור באותה טבלה על כל העמודות בצורה איטרטיבית. משמעות הדבר for each loop container אנחנו עוברים על כל העמודות שנמצאות בתוך טבלת employees, בתוך בסיס נתונים של Northwind.

  8. 01:52

    ברמה שלנו כרגע אנחנו נעצור תחת טייבלס, אני רוצה לעבור על כל הטבלאות תחת Northwind, ומה שאני רוצה לקבל מהם, ה-Enumeration Type, אנחנו יכולים לקבל את ה-ID של אותו אובייקט, שזה פחות מעניין אותנו, ואנחנו יכולים לקבל את השם של האובייקט.

  9. 02:11

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

  10. 02:22

    בחרנו את הדברים עצמם ובעת שאנחנו נרוץ בצורה איטרטיבית על כל שמות הטבלאות אנחנו נצטרך להכניס אותם לתוך איזשהו משתנה. ולכן כאן מצד שמאל ב-Variable Mapping נצטרך להגדיר לעצמנו איזשהו משתנה שיקבל לנו. מאחר ואנחנו רצים כאן על שמות הטבלאות זה בהחלט מתבקש שניצור כאן משתנה בשם Table Name.

  11. 02:46

    הוא ברמת ה-user, ה-user יוצר אותו ולא ה-system, הוא ברמת ה-package כללי, ספציפי ל-package עצמו ולא ברמת ה-solution או ה-project, ובהחלט הוא יכול להיות כאן סטרינג.

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

ההרצאה הקודמת: לולאת Foreach על קבצים ב-SSIS

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

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

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

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

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