PracticU

קישור בין רכיבים בתוך Toolbox SSIS

בלי כתוביותעם כתוביות
PracticU › קורס SSIS › קישור בין רכיבים בתוך Toolbox SSIS
מילון מושגים:
SSIS - רכיב של SQL Server לבניית תהליכי ETL להעברה ולעיבוד של נתונים בין מקורות.
CSV - קובץ טקסט פשוט לאחסון נתונים טבלאיים, שבו הערכים בכל שורה מופרדים בפסיקים.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
SQL Server - מערכת ניהול מסדי נתונים יחסיים של מיקרוסופט, הנשלטת בשפת T-SQL.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
Northwind - מסד נתונים לדוגמה של מיקרוסופט, המדמה חברת מסחר ומשמש ללימוד ולהדגמת שאילתות SQL.
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.

קישור בין רכיבים בתוך Toolbox SSIS
ההרצאה עוברת על ה-SSIS Toolbox ועל חיבור הרכיבים זה לזה. דוגמה מלאה: טעינת קובץ CSV לטבלה, איפוס הטבלה לפני כל טעינה, ואיחוד השניים ליחידה אחת.
השלבים העיקריים
1. Control Flow ו-Favorites: שולחן העבודה הוא ה-Control Flow, ולשם גוררים רכיבים. אפשר להעביר רכיב ל-Favorites בקליק ימני ו-Move to Favorites. הרכיב הנפוץ הוא Data Flow Task, שאפשר לשנות לו שם ולעבור בין כמה כאלה.
2. Source Assistant: בוחרים Flat File, לוחצים New ומצביעים על product.csv. הוא מזהה את פורמט הקובץ, את מפריד השורות (Carriage Return/Line Feed) ואת מפריד העמודות (פסיק), ומציג preview. אפשר לשנות שמות עמודות וסוגי נתונים.
3. Destination Assistant: מתחברים ל-SQL Server עם Windows Authentication, בוחרים Northwind ובודקים Test Connection. לפני כן משנים את שם הרכיב ל-My Products, ואז New יוצר טבלה בשם הזה.
4. Table or View: ההבדל מ-Fast Load הוא שב-Fast Load אפשר לקנפג בלוקים ובאצ'ים ולבדוק constraints, null ו-identity. כאן נשארים ב-Table or View.
5. Mapping: חובה להיכנס ללשונית Mapping, ורק אז נוצרים החיצים. הם נוצרים אוטומטית כששמות העמודות זהים.
6. הרצה של חלק: אפשר ללחוץ Disabled על רכיבים אחרים או לבצע Execute Task על רכיב אחד. נטען 77 שורות, וסימן V ירוק מראה הצלחה. עם Stop Debugging חוזרים לעריכה.
7. בעיית כפילות: הרצה חוזרת מכפילה את השורות, כי אין מפתח או בדיקת ייחודיות.
8. Execute SQL Task: מוסיפים רכיב עם חיבור Northwind, SQLSourceType של Direct input והפקודה TRUNCATE TABLE על My Products, ומחברים אותו לפני ה-Data Flow.
9. Sequence Container: מכניסים את שני הרכיבים לתוך קונטיינר, והוא נהפך ליחידה אחת שאפשר להריץ, להשבית ולתזמן. Execute Container מוחק ואז טוען, ושוב 77 שורות.
אחרי ההרצאה אפשר לבנות תהליך שמאפס טבלה וטוען אליה קובץ CSV כיחידה אחת. פרמטרים וקבלת תוצאות מ-Execute SQL Task יוצגו בהמשך.
השיעור הבא בקורס: המרה בין טיפוסי נתונים רכיב SSIS Data Conversion

פרקי ההרצאה: קישור בין רכיבים בתוך Toolbox SSIS

  1. 00:00

    רכיבי Toolbox ו-Data Flow Tasks

  2. 01:14

    Execute SQL Task לפני הטעינה

  3. 02:11

    ייבוא CSV עם Source Assistant

  4. 04:01

    שינוי שמות וסוגי עמודות

  5. 04:36

    הגדרת יעד SQL Server וטבלה חדשה

  6. 06:42

    Table or View מול Fast Load

  7. 08:13

    הרצת Data Flow בודד ובדיקת התוצאה

  8. 10:08

    מניעת כפילויות עם Truncate Table

תמלול ההרצאה: קישור בין רכיבים בתוך Toolbox SSIS

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

  1. 00:02

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

  2. 00:18

    הקומפוננטה הפופולרית ביותר הם אלו שנמצאות כאן בתוך ה-Favorite. אגב, אם ישנם רכיבים אחרים שמעניינים אותנו ואנחנו רוצים להשתמש בהם בצורה תכופה יותר, אנחנו יכולים לעמוד עליהם, קליקים אני ו-Move to Favorites, כלומר להעביר אותם לרמה שהם מועדפים עלינו.

  3. 00:34

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

  4. 00:55

    הנה כרגע ה-Data Flow Task שלי של פרודקט, שזה אך אתה יצרתי, הוא ריק. אני רוצה ליצור דאטה פלואו טאסק נוסף, גם אותו אנחנו נזרוק לכאן, פעם נשנה לו את השם והוא יהיה employees ואם נבוא שוב פעם לתוך הדאטה פלואו טאסק ואנחנו נראה שיש לי כרגע employees, product, ו-export to excel.

  5. 01:14

    כל אחד מהדוגמאות הללו נמצאות כאן. נמחק את זה ונחזור כאן לתוך התהליך עצמו. התהליך עצמו בעצם יוצר לי כאן עבודה עם הנתונים. לפני עבודה עם הנתונים יש לי אפשרות להריץ פקודת sql task.

  6. 01:28

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

  7. 01:46

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

  8. 02:02

    אנחנו רוצים בדוגמה שלנו לייבא נתונים מתוך קובץ CSV אלינו. אני יכול לבחור את המקור ואת היעד מכאן. בדוגמה הזאת אני רוצה שנשתמש בתוך משהו שנמצא כאן בתוך ה-favorites, איזשהו wizard, איזשהו assistant, כדי לשלוף את הנתונים ולייבא אותם לתוך ה-destination.

  9. 02:22

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

  10. 02:46

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

  11. 02:55

    ולכן אני לוחץ על flat fly, לוחץ כאן על new, ונפתח לי המסך שבו אני יכול להגדיר מהו אותו קובץ. דבר ראשון, אני צריך להגדיר את המיפוי, את הנתיב אליו, היכן נמצא אותו קובץ, אם אני כאן שולף את כל המידע בעצמו.

  12. 03:11

    בואו ניכנס כאן לספרייה. יש לי כאן ספריית פרודקטס שאותה אני רוצה לייבס, לעומת של CSV, כאשר הדאטה בפנים מחולק לי על ידי comma Separated, Comma Delimiter, על ידי פסיק.

  13. 03:26

    אני בוחר כאן את ה-product.csv, אימפורט, הוא כבר מזהה לי לפי הדאטה ולפי פורמט של הקובץ, שהוא קובץ שיש בו Carriage or Tenline Feed בסיום כל שורה, שהוא נמצא ב-collision של 10,255, ואני יכול גם לראות את המידע בעצמו, איזשהו preview לדאטה שהוא רואה אותו מתוך הקובץ,

  14. 03:49

    הוא כבר זיהה לי, מעבר לזה שה-rowed delimiter הוא carriage-retail line-feed, שה-column delimiter, כלומר ההפרדה בין העמודות, נעשית על ידי קומה, על ידי פסיק, וכמובן כל אחת מהאפשרויות כאן פתוחה בפניי.

  15. 04:04

    לחצתי כאן את הרשימה, כאן אני יכול לשלוט בעמודות עצמם שייווצרו לי בשמות. אולי אני רוצה לשנות את שמות העמודות עצמם בטעינה, שהשם של העמודה לא יהיה כפי שהוא מופיע בתוך הקובץ טקסט, ובמקום Employee ID לשנות אותו ל-Employee Key, ובמקום Product Name לשנות את זה ל-Product

  16. 04:26

    Full Name או וואטאבר. כל שינוי, הן ברמת השמות של העמודה עצמה, הן ברמת הדאטה טייפ, מה הטייפ שאותו אנחנו רוצים לעבוד, האם זה 50 אם זה מתאים לי, האם זה סטרינג, לוחצים כאן על אוקיי, וסיימנו את התהליך ויזארד של חיבור לתוך הסורס, באותה צורה אנחנו יכולים גם להתחבר כאן לתוך ה-Destination Assisted.

  17. 04:48

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

  18. 05:10

    האם אני מדבר כאן על Integrated Security? כלומר, על אותנטיקציה ברמת הווינדאוז או אותנטיקציה ברמת ה-SQL. בשלב הזה אנחנו נישאר על אותנטיקציה ברמת הווינדאוז.

  19. 05:22

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

  20. 05:31

    טסט קונקשן, הכל סקסידד, אוקיי, וחיברתי גם את ה-Destination לתוך ה-Flatfile. כל מה שנותר לי כרגע זה רק לחבר בין ה-Source ובין ה-Destination.

  21. 05:43

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

  22. 05:55

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

  23. 06:13

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

  24. 06:35

    הפיצה על אוקיי יצרה את הטבלה בתוך הדאטאבס והיא מכינה אותה כרגע לטעינה. My Products מוכנה לטעינה. בשלב הבאת הנתונים יש לי אפשרות לחלק בין הבאה מ-Table of View או להביא מ-Table of View Fast Loaded.

  25. 06:55

    ההבדל ביניהם שב-Table of View אין לי אפשרות לקנפג את אופן ההבאה של הנתונים. האם להביא אותם בבלקים, האם להביא אותם בבצ'ים, למה להביא בכל טעינה?

  26. 07:07

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

  27. 07:18

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

  28. 07:34

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

  29. 07:59

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

  30. 08:13

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

  31. 08:30

    או שאני מנטרל את כל השאר, קליק ימני - Disabled, קליק ימלי Disabled על מנת לנטרל אותם ואז את התהליך עצמו אני יכול להריץ. אז גם טוב לי לבצע הרצה של כל הפקאג' מאחר והוא יריץ לי רק את אלו שהם לא Disabled.

  32. 08:49

    לחלופין, אני לא חייב לנטרל אותם, אפשר להשאיר אותם גם במוד של Enabled ולגשת לאותו קומפוננטה, לאותו DataFlow ורק אותו להריץ על ידי קליק ימלי Execute Task.

  33. 09:02

    בואו נעשה זאת. הערצה של התהליך לוקחת מספר שניות ובסיומם היא מסתיימת עם v ארוך. אני יכול להיכנס לתוך ה-data flow ורואה שכל אחד מהתהליכים שלי הסתיימו.

  34. 09:13

    תוך כל אחד מהתהליכים אני יכול גם לקבל אינדיקציה, חיווי, כמה שורות עברו מה-source ומה-destination. רק אחרי שאני סוגר את זה, לוחץ על הכפתור האדום של stop debugging, אני יכול לחזור למצב של עריכה.

  35. 09:28

    בואו ניכנס לתוך ה-management studio. פתחתי את ה-management studio, מסך חדש, התחברתי לתוך ה-Nerve Wind ואני יכול לתשאל את הטבלה החדשה שלנו, טבלת My Products.

  36. 09:40

    הרצאה של הטבלה עצמה, והנה היא מביאה לי את 77 השורות שהבאתי אותן מתוך קובץ ה-CSV. כל השורות, כל הדאטה עצמו הגיעה והכל נמצא כאן לפנינו. ניתן לראות איך כל השורות עצמן התמלאו, הטבלה עצמה נוצרה וכל התהליך הזה כרגע קיים בפניי כתוצאה מהיבוא שלו בתוך תהליך ה-SSS.

  37. 10:08

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

  38. 10:27

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

  39. 10:41

    אזרוק אותו כאן. Execute SQL Task, היכולת שלי בעצם לכתוב פקודת SQL אשר מבצעת כל מניפולציה שהיא שליפה, update, עדכון, delete או insert, כל מניפולציה sqlית עבור הדאטאבס. אנחנו רוצים לעשות טרנקט לטבלה שלנו, אז נעשה כאן

  40. 10:52

    טרנקט טייבל ונציין שאנחנו מבצעים כאן טרנקט טייבל. טייבל לטבלת מי פרודקטס וניכנס בפנים על מנת לקנפג את זה דאבל קליק קיבלנו את המסך execute sql task editor היכולת שלנו לקנפג

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

ההרצאה הקודמת: יצוא ויבוא נתונים בין Excel לבין SSIS

ההרצאה הבאה: המרה בין טיפוסי נתונים רכיב SSIS Data Conversion

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

  • רכיבים - components
  • קישור חזק - Hard link
  • רכיבים נפוצים - Common Controls
  • התקנת רכיבים נוספים ב-Android Studio

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

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