
First row has column names. יש לוודא גרסת Excel ודרייבר מתאימים.mpid5 ו-mpid6 (עובד 5 ועובד 6).EmployeeID == 5 ו-EmployeeID == 6, עם שני outputs בשמות האלה. שימו לב לשווה כפול.LEFT ובמרכאות כפולות ולא בגרש כמו ב-SQL, בצורה LEFT(ShipCity,1) == "B". שורה שאינה אדומה אומרת שהביטוי תקין.הטקסט המלא של הדקות הראשונות בהרצאה «יצוא ויבוא נתונים בין Excel לבין SSIS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בשיעורי היום נכיר את היכולת לייצא ולייבא נתונים מתוך דאטאבס לתוך קובץ אקסל ומתוך קובץ אקסל לתוך הדאטאבס. בשלב הזה אני נמצא כאן בתוך ה-Control Flow, בתור תהליך ראשון אנחנו צריכים להוריד כאן את ה-Data Flow Task.
מדובר כאן על תהליך שבו אנחנו עובדים על הדאטה, ולכן אני מוריד כאן את הקומפוננטה של עבודה עם דאטה. מה אנחנו רוצים לעשות כאן? אנחנו רוצים לעשות Export to Excel.
דאבל קליק על הרכיב על מנת לקנפג אותו, והנה הגעתי לתוך ה-Data Flow. בתוך ה-Data Flow אני רוצה לבנות לעצמי Source ו-Destination. אני גולה למטה לתוך ה-Toolbox ומוריד לי את ה-Source שלנו, שה-Source שלנו זה יהיה בעצם בסיס נתונים, ולכן אני אבחר כאן OLEDB Source ונשים אותו, ואילו ה-Destination שלנו יהיה Excel Destination וגם אותו אנחנו נוריד
ונשים אותו כאן אצלנו. לפנינו. נגדיר את הרכיבים ונחבר ביניהם על ידי החצי כחול על מנת לגרום להעברת מידע מתוך הדאטאבס לתוך קובץ האקסל. בואו ניכנס ונגדיר את הסורס שלנו, את הדאטה, מקור הנתונים שממנו אנחנו רוצים להתחבר.
דבר ראשון שצריך להגדיר כאן זה קונקשן סטרינג, התחברות לתוך הדאטה. אין לי קונקשן סטרינג ולכן אני לוחץ כאן על New.
הוא מגדיר כאן את ה-ConnectionString והוא מוצא לי כמה קונקצ'נים שמוגדרים לי כרגע בדוגמאות קודמות אבל אנחנו לא נשתמש בהם אלא נגדיר את ה-ConnectionString את מקור הדאטה שלנו בעצמנו. מהו הסרבר, השרת שעליו אנחנו עובדים?
אנחנו נמצאים על אותו שרת שבו אנחנו שולפים את הנתונים עצמם, נעתיק את שם השרת, נדביק אותו, ברגע שהעתקתי אותו הוא כבר הצליח ליצור קונקצ'ן ולהתחבר לתוך SysDataBases ולשלוף לי את כל הדאטאבייסים שנמצאים אצלי באינסטנס בהשראת עצמו.
אני רוצה להתחבר לתוך דאטאבייס נורפרינד. אין לי צורך לעשות כבר טסט קונקשן כי ראיתי שהוא יודע להתחבר ולשלוף לי את כל הטבלאות שיש. אני לוחץ לו אוקיי אוקיי והנה יש לי כאן כבר קונקשן סטרינג למקור המידע.
ואנס הוא התחבר לתוך נורפרינד אני יכול עכשיו לבחור מה אני רוצה לשלוף מתוך הדאטאבייס. בשורה הזאת של דאטה אקסס מוד אני יכול לבחור האם אני רוצה טבלה או view, אם אני רוצה להשתמש דרך משתנה variable כדי לשלוף מהם או שאני רוצה ללכת ולכתוב את הפקודה בעצמי sql command select בעצמי.
ב-table of view ברגע שאני בוחר אותם תתמלא לי הרשימה הזאת בכל הטבלאות והוויואים שנמצאים בתוך הדאטאבס שמהם אני יכול לשלוף. לעומת זאת אם אני כותב sql command אז אני יכול לכתוב כאן פקודת סלקט שליפה של הנתונים שאולי מצריכה איזושהי join או איזושהי מניפולציה של הנתונים, איזושהי Workloads, איזושהי אגרגציה שאיתם
אני רוצה לסכום. אנחנו רוצים לשלוף את הטבלה S is ולכן ניקח אותה מתוך Table View. הטבלה שאותה אנחנו נשלוף, נשלוף מתוך טבלת Products.
נשלוף את כל המוצרים של טבלת Products, יש לנו טבלאות אחרות גם שנמצאות כאן. טבלת Orders, בואו נלך לטבלת Orders, טבלת ההזמנות שמהם אנחנו רוצים לשלוף. נעבור כאן ב-Tab מצד שמאל על העמודות עצמם, כאן יש לנו אפשרות לעשות סלקציה אילו עמודות אנחנו רוצים לשלוף ואילו עמודות אנחנו לא רוצים לשלוף.
ייתכן ויהיו עמודות שמיותרות לנו בשליפה וקיבלנו החלטה שאנחנו לא רוצים אותן, אני לא רוצה את צ'יפ סיטי או שאני לא רוצה את ריג'ן או שאני לא רוצה להביא את צ'יפ פוסטל קוד, את צ'יפ קאנטריק, וואטאבר, כל עמודה שאני רוצה אני יכול לבחור או לא לבחור אותה במסך הזה.
ברגע שסיימנו עם המסך אנחנו יכולים ללחוץ על אוקיי והגדרנו כרגע את הסורס דאטה שלנו. לאן אנחנו רוצים שזה יצא החוצה? אני בניתי קובץ אקסל. קובץ האקסל שלנו כאן מכיל כבר את שמות העמודות כפי שהן מופיעות בטבלת אורדרס.
קובץ מוכן, יש לו שם והוא גם שמור לי. על מנת לשלוף אותו בצורה נכונה, אני אשנה כאן את הגיליון לשם אחר. אנחנו נשנה אותו כאן להזמנות. סוגרים, סוגרים את הקובץ עצמו ובחזרה ל-Excel Destination.
בתוך ה-Excel Destination אנחנו צריכים לעשות מיפוי לתוך הקובץ אקסל, כדי לעשות זאת אין לי כאן מפוי אז אנחנו לוחצים על כפתור new ובתוך כפתור new אני הולך בפייל סיסטם על מנת להגיע לנתיב עצמו אם אני לא יודע לרשום אותו אני יכול להיעזר דרך כפתור browser והנה הגעתי
למקום שבו נמצא הקובץ עצמו לואוד דאטה שם אנחנו שולפים. במצב הזה צריך להבחין באותה גרסת אקסל שבה אנחנו עובדים. במידה ויש לנו גרסה כזו או אחרת צריך לוודא גם שיש לנו דרייבר שיודע לעבוד איתם.
אני כרגע עובד עם 2007-2010 ויש לי דרייבר מתאים שיודע לטעון לי את הנתונים מתוך הוויז'ואל סטודיו לשם. מאחר ויש לי שורת כותרת אז אני משאיר את השורה הזאת מסומנת first row has column names, השורה הזאת עם צ'קבוקס מסומנת על מנת לציין ששורה ראשונה שלי זו שורת הכותרת ואין לדרוס אותה על ידי הנתונים.
לחצתי על אוקיי ברגע שהוא מצליח ליצור קונקשן מול הקובץ אקסל כי אז הרשימה הזאת name of excel sheet תתמלא לי באותם גיליונות שקיימים בקובץ שהוא זיהה והנה הוא זיהה שיש לנו גיליון בשם orders שאליו אני רוצה לייצא את הנתונים שלי בשלב הזה לא מספיק ללחוץ על אוקיי השלב הזה מאוד מטעה וגם כאן לאחר שאנחנו עושים את
שיוך לקובץ חייבים לעבור לתוך הטאב השני מפינג שנמצא כאן מצד שמאל וללחוץ על מפינג רק כאשר נכנסנו למפינג המערכת יודעת לבצע את החיבורים עצמם לפני שנכנסנו למפינג הוא לא עושה את החיבורים עצמם רק אחרי שנכנסנו למפינג אז הוא יודע לבצע חיבורים ובלבד ששמות העמודות בקלט מאיפה שאנחנו באים שמות העמודות מהטבלה במקרה שלנו צריכות להיות זהות לחלוטין לשמות
העמודות כפי שהן מופיעות בקובץ אקסל. במידה והן לא זהות אין שום בעיה, פשוט נצטרך לעשות את המיפוי בצורה ידנית. אבל כאן הוויז'ואל סטודיו יודע לעשות את המיפוי בצורה אוטומטית מאחר והשמות זהים.
אז הוא יודע נקל להשוות את אורדר איי-די לתוך אורדר איי-די ואת קסטומר איי-די לתוך קסטומר איי-די ולשלוף את הנתונים ולטעון אותם מהמקור אל היעד בהתאמה.
שדות שלא שלפנו אותם אנחנו יכולים לראות אותם כאן למטה אין להם התאמה מבחינת האינפוט מאחר ולא הבאנו אותם מידע לא סימנו אותם בתוך ה-checkbox ביבוא של הנתונים מתוך הטבלה.
שדות אלו נשארים בתוך ה-destination כשדות ריקים ללא מיפוי מתוך ה-source אין שום בעיה הם פשוט כך יישארו בתוך הקובץ xl. סיימנו לקנפג את היצוא של הנתונים וכל שנותר לנו כאן זה להריץ את התהליך.
נחזור כאן לתוך ה-Control, נעמוד כאן על הרכיב הזה כי רק אותו אנחנו רוצים להריץ, לוחץ עליו קליק ימני, Execute Task, מריץ רק את התהליך עצמו.
כשאני מריץ את התהליך עצמו ואני עושה רק Execute Task במקום לעשות סטארט על כל הפרויקט, אני מריץ קומפוננטה אחת בלבד. נעשה סטופ, רואים שזה מצליח, נחזור רגע לקובץ עצמו, נפתח אותו, והרי לפנינו כל טבלת אורדרס שנשלפה לתוך התהליך עצמו.
בתוכנית הבאה, בשליפה לתוך קובץ אקסל, אני רוצה לחלק את הנתונים לגיליונות שונים. בואו נסתכל על הקובץ אקסל. ראשית, בואו ננקה אותו, קובץ אקסל, כדי שיגיע אלינו בצורה נקייה, נסמן את כל המידע עצמו ונמחק אותו.
מחקתי את כל הנתונים עצמם. כעת אני רוצה לייצר שתי גיליונות זהים לחלוטין בתוך הקובץ עצמו שני הגיליונות שנוצרים לי אנחנו ניתן להם שמות שונים חלוקה שלנו תהיה שאנחנו רוצים לשלוף נתונים נתוני מכירות בהתאמה לפי קוד העובד נעתיק את הגיליון עצמו ונשנה להם את השם כאן אנחנו נרצה לשלוף את כל ההזמנות שביצע עובד מספר 5 אז נרשום זאת: mpi d 5. לעומת זאת בגיליון
השני נשנה לו את השם וכאן נרצה לשלוף את כל ההזמנות שביצע עובד מספר 6. mpi d 5 לעומת mpi d 6. שתי הגיליונות הללו זהים במבנה שלהם, יש להם את אותם כותרות, הם רק שונים בשם שלהם והדאטה שיגיע אליהם יהיה שונה בהתאמה.
כאן נביא את הנתונים של מכירות של עובד מספר 5 וכאן ונביא את הנתונים של עובד מספר 6. נסגור את הקובץ ונחזור לתוך הוויז'ואל סטודיו. בתוך הוויז'ואל סטודיו אנחנו עכשיו רוצים לשלוף את הנתוני מכירות אבל רק כאלה של עובד מספר 5 ועובד מספר 6 ולהכניס אותם בהתאמה לגיליונות שונים.
לכן ראשית ננתק את הקשר בין ה-source ובין ה-destination ונוסיף כאן קומפוננטה חדשה. הקומפוננטה הזאת כשמה כן היא conditional split. הדאטה שלנו יגיע לתוך הקונדישנל ספליט אולם הקונדישנל ספליט יבצע חלוקה של הדאטה שלנו לשתי קבוצות שונות.
בואו נראה איך אנחנו עושים זאת דאבל קליק על קונדישנל ספליט בתוך קונדישנל ספליט אנחנו יכולים ליצור מידעים שונים כיצד אנחנו מייצרים זאת החלוקה שאותה אנחנו רוצים לעשות זה לפי העמודת אימפלואי איידי אנחנו רוצים לבדוק את כל אלו התנאי שלנו שהקבוצה הראשונה כל אלו שהאימפלואי איידי שלהם שווה ל-5.
אני לוקח את העמודת EmployeeID וגורר אותה לכאן. אני רוצה לקחת ולהביא את כל אלו שהם שווים ל-5. מבחינת הסנטקסט שבו אנחנו צריכים לרשום, זה לרשום שווה שווה.
בהתקיים התנאי הזה