PracticU

טרנספורמציה של הנתונים - רכיב SSIS Drived Column

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

טרנספורמציה של הנתונים - רכיב SSIS Drived Column
רכיב Derived Column ב-SSIS משנה את התוכן של הנתונים בדרך למקור ליעד: מוסיף עמודה, מחשב ערך חדש או מחליף ערך קיים. זה שונה מ-Data Conversion, ששינה רק את סוג הנתונים.
השלבים בדוגמה
1. מיקום: ב-Data Flow של Products, תחת Common, מפרידים את הקשר בין ה-Flat File Source ל-Data Conversion ומכניסים ביניהם Derived Column.
2. עמודה חדשה: בוחרים Add a new column (ברירת המחדל) או Replace להחלפת עמודה קיימת. כאן נוספת עמודה לפי Unit Price עם מחיר כולל מע"מ.
3. הנוסחה: מחיר כפול 1.17. כיוון שהעמודה עדיין טקסט, צריך Type Cast. DT_UI4 חותך את מה שאחרי הנקודה העשרונית, ולכן בחרו DT_NUMERIC עם precision 18 ו-scale 2, כמו שמוגדר ב-SQL Server לעמודת money.
4. Data Conversion: את העמודה החדשה ממירים שוב ל-numeric (DT_NUMERIC, precision 18, scale 2), כי הפלט של Derived Column נשאר מחרוזת.
5. Mapping: ב-Destination ממפים את ה-Unit Price מהעמודה החדשה של Data Conversion ולא מהמקורית. יש להיזהר מהעמודות ה-Unicode הדומות.
6. הרצה ובדיקה: Execute Container מנקה וטוען מחדש. בהרצה הראשונה הטבלה לא התנקתה, כי ה-TRUNCATE הצביע על My Products ולא על MyProductDemo. אחרי תיקון ה-TRUNCATE והרצת שני הרכיבים, המחיר של הצ'אי עלה מ-18 ל-21.06, שהוא 18 כפול 1.17.
שימו לב
המחיר הקודם נשאר בטבלה אם ה-Mapping ממשיך להצביע על העמודה המקורית או אם טבלת היעד לא נוקתה. בהדגמה הבאה יוצגו פונקציות נוספות לעבודה על נתוני המקור.
אחרי ההרצאה אפשר להוסיף עמודה מחושבת ב-SSIS, להמיר אותה לסוג הנכון ולמפות אותה ליעד.
השיעור הבא בקורס: הדגמה של טרנספורמציה של הנתונים ב-SSIS

פרקי ההרצאה: טרנספורמציה של הנתונים - רכיב SSIS Drived Column

  1. 00:00

    Derived Column לעומת Data Conversion

  2. 00:55

    הוספת Derived Column לזרימה

  3. 01:34

    יצירת עמודת מחיר כולל מס

  4. 02:29

    המרת טקסט למספר בנוסחה

  5. 03:22

    המרה ל-Numeric עם Precision ו-Scale

  6. 04:37

    המשך ההמרה ב-Data Conversion

תמלול ההרצאה: טרנספורמציה של הנתונים - רכיב SSIS Drived Column

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

  1. 00:02

    שלום. בשיעורנו היום אנחנו נעסוק בקומפוננט הנוספת שעוזרת לנו לבצע טרנספורמציה של הנתונים. ניכנס לתוך Product Data Flow של ה-Products ונראה בתוך תחת Common שיש לנו Data Conversion כפי שראינו ו-Derived Column, היכולת שלנו לקבל נתונים מתוך ה-Source ולפני שאנחנו מוציאים אותם

  2. 00:26

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

  3. 00:42

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

  4. 00:59

    כיצד לעשות זאת? מיד בדוגמה הקרובה. נפתח את הקשר בין ה-flat file source לבין ה-data conversion ונזרוק לכאן את ה-derived column שנמצא ביניהם.

  5. 01:11

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

  6. 01:22

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

  7. 01:37

    למשל עבור יוניט פרייס אנחנו רוצים לבצע שינוי של המחיר על מנת שתופיע לי עמודה נוספת יוניט פרייס מחיר פלוס מע"מ.

  8. 01:47

    מה ה-derived column שאנחנו רוצים אותו ואנחנו מציינים. העמודה שאותה אנחנו רוצים לבצע זו עמודת יוניט פרייס בואו ניתן לה שם. Unit with tax, אנחנו רוצים להוסיף לה את עלות המיסים.

  9. 02:01

    אנחנו ב-Derived column, יש לנו שתי אפשרויות. או להוסיף עמודה חדשה, כפי שנותנת לי כאן by default Add a new column, או לחלופין לעשות Replace, להחליף עמודה קיימת.

  10. 02:14

    כלומר, לשנות את הדאטה בתוך העמודה הנוכחית. אנחנו ניצור עמודה חדשה, ולכן נכתוב כאן Add a new column, ואת העמודה עצמה ניתן לה את הנוסחה שבה אנחנו רוצים לבצע את החישוב.

  11. 02:29

    מהו החישוב? החישוב הוא לקחת את העמודת unit price ולהכפיל אותה ב-1.17. מאחר ואנחנו בעמודה שהיא לא מספר עשרוני, אלא שהיא עדיין מסוג טקסט, אז אנחנו לא יכולים להכפיל אותה ב-1.17 ולכן אנחנו צריכים לבצע עליה שינוי.

  12. 02:50

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

  13. 03:18

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

  14. 03:28

    נזרוק את הנומריק כאן, dt-numeric, כשיש לנו כאן בעצם את החלוקה של הנתונים בעצמם. בואו נביא את הנומריק בעצמו, והנה כאן אנחנו צריכים לציין כמה אנחנו רוצים לעשות עבור העמודה של ה-unit price, כמה ספרות מצד ימין של הנקודה, החלוקה כמה אנחנו רוצים בפרסיז'ן וכמה

  15. 03:51

    אנחנו רוצים בסקייל, נוכל לראות אם ניכנס בתוך ה-SQL Server. שוב פעם, בניתוח העמודה עצמה של ה-Unit Price, נוכל לראות כיצד מוגדר לנו כרגע שזה Money.

  16. 04:03

    Money, ההגדרה שלו זה בעצם Numeric Float Number של 18, כאשר יש שתי ספרות מצד ימין של הנקודה העשרונית. אז נשנה זאת כאן ל-18, שהסקייל שלנו כאן הוא בעצם 2. את כל זה אנחנו מריצים על ה-unit price ואת כל המידע עצמו זה הקאסטינג שאנחנו עושים ל-unit price.

  17. 04:30

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

  18. 04:49

    נלחץ כאן על אוקיי, נמשוך את הנתונים מתוך ה-Derived column, ניכנס שוב פעם לתוך הדאטה קונברז'ן, נבחר את העמודה שזה החלטה יצרנו, שזה ה-Unit Price Derived column Unit Price with Task Derived column Unit Price.

  19. 05:07

    מה אנחנו רוצים לעשות לה? אנחנו נשאיר אותה בעצם כ-Derived column

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

ההרצאה הקודמת: סוגי טרנספורמציה של הנתונים ב-SSIS

ההרצאה הבאה: הדגמה של טרנספורמציה של הנתונים ב-SSIS

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

  • רכיב ה-TreeView
  • הסבר על widget column ועל widget row
  • זיהוי מגע בתוך רכיב
  • חיבור של רכיב לטופס עם React Hook

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

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