Integrating SSIS with C# to deliver very scalable Data-Driven Solution


نوضح في هذه المقاله استخدام ال SSIS  لبناء C# application to get very scalable data-driven solution  و كيفيه ارتباط ال C#  بالـ SSIS

ما هم ال SSIS  ؟؟ كيفيه الحصول عليه ؟؟ وماهي مميزاته؟؟ وفيما يستخدم اكثر؟؟

اولا SSIS  تعني SQL Server Integration Services  وهى احدى منتجات ميكروسوفت ويأتي مع جميع نسخ ال SQL Server  ما عدا ال Express  كان يسمى فيما سبق DTS  لكن SSIS  يعتبر منتج جديد وليس تحديثا من ال DTS

هي اداه قامت ميكروسوفت بتطويره و اخراجه للسوق عام 2007 وتهدف الى نقل البيانات من اكثر من Data Repository  الى Data Repository  اخر مثلا نقل البيانات من ملف نصي، ملف Excel  او قاعاده بيانات SQL or Access  الى جدول في قاعده بيانات في ال SQL Server  دون الحاجه لوجود SQL Server  ولا يجب مصدر البيانات او وصول البيانات SQL Server بأختصار يكمن استخدمها لنقل البيانات من ملف نصي الى قاعده بيانات Oracle تعتبر ال SSIS  اداه ETL (Extract, Transform, and Load)  اي انها تقوم بأخد البيانات من المصادر تحسين البيانات بشكل وتنظيمه وبعد هذا نقلها الى نقطه الوصول.

تستخدم في تطوير Business Intelligence Applications حيث ان هذه ال Applications تعتمد على مستودعات بيانات ضخمة Huge Data Repository تسمى Data Warehouse ويتم تطوير ال Data Warehouse بأخذ البيانات من المصادر المختلفه وتكوين ال Data Warehouse وكما قلنا ان ال SSIS من يقوم بعمل هذا.
من احدى مميزات ال SSIS انه يمكن تحميل البيانات من مصادر مختلفه و وضعها في DataReader في بيئه ال .NET ويمكن الدمج بين C# Application و SSIS Package و تعتبر ال SSIS Package هي الناتج من عمل ال SSIS كما سوف نتعلم في هذه المقاله.
تطبيق :
سنحاول في هذا التطبيق فصل ال Developer عن مركز تواجد البيانات حيث انه من الممكن ان يوجد اكتر من مركز للبيانات ولكن نريد ان نعرض هذه البيانات في Application دون الحاجه للتعديل في أي شيء، وبدلاً من بناء اكثر من اداه لهذا الغرض ، لدينا SSIS لتقدم لنا حل الدمج بين ال Application و ال SSIS .

اولا نبدأ بعمل ال SSIS Package وسوف نقوم الان خطوه بخطوه بكيفيه بنائها

1- افتح Microsoft Visual Studio 2008 من القائمه اختار File -> New->Project من Project types اختار Business intelligence projects ثم Integration Services Project و نسميه DataCollector


2- نلاحظ وجود SSIS Packages في ال Server Explorer نسميه DataCollectorPackage.dtsx ونسحب Data Flow Task من شريط الادوات ونضعه في Control Flow كما هو مبين

3- ننقر مرتين على ال Data Flow Task لكي نبني تحميل الData من اكتر من مصدر كما هو في حالتنا تحميله من Excel File و Text File و قاعده بيانات ووضعها في Data Reader كما سنشاهد تباعا
4- نسحب من شريط الادوات جزء Data Flow Sources 3 مصادر للبيانات Excel Source و ADO.NET Source و Flat File Source كما هو مبين

نلاحظ وجود علامه x حمراء تدل على وجود خطأ ما وهذا ناتج على عدم وجود اتصال هذه المصادر بمصادر بيانات حقيقيه وهو ما سنحاول التخلص من هذه العلامه الحمراء الامر الذي لن يستغرق غير بضع ثوان.

5- نضغط بالزر الايمن للماوس على Excel Source لربطه بملف Excel واختار Edit يظهرلك Dialog اختار New لعمل Connection Manager لهذا الملف كما هو مبين

بعد ذلك Preview للتأكد من صحة البيانات و اختار بعد ذلك OK
6- كرر عد ذلك هذه العمليه مع باقي مصادر البيانات.
7- نسحب من شريط الادوات جزء ال Data Transformation مايسمى بال Data Conversion والسبب هنا ان البيانات تأتي من اكتر من مصدر حيث ال String من قاعده البيانات يختلف مع الملف النصي مع ال Excel Sheet لذا يجب وهذا الزام ان نوحد نوع البيانات و طولها. اسحب السهم الاخضر من كل مصدر الى واحد من ال Data Conversion
8- اضغط بالازر اليمن للماوس على واحد من ال Data Conversion حيث سوف نقوم بتكرار هذه العمليه مع الباقي وبعد ذلك Edit

وبعد ذلك OK . لا تنس ان تكرر هذه العمليه مع الباقي!!

9- اسحب من شريط الادوات جزء ال Data Transformation مايسمى بال Union All وواضح من الاسم انه يجمع اكتر من شكل للبيانات في وحده واحده. كل ما عليك ان تسحب كل الاسهم الخارجه من ال Data Conversion ووادخالها في ال Union All
10- اسحب من شريط الادوات جزء ال Data Transformation مايسمى بال Sort لترتيب البيانات المجمعه من اكتر من مصدر البيانات

11- اسحب من شريط الادوات جزء ال Data Flow Destination مايسمى بال Data Reader Destination ونسحب السهم الخارج من Sort لل Data Reader Destination ونسمي هذا DataReaderDest
12- لقد انتهينا بالفعل وال Data Flow يجب ان يكون مثل هذا

13- اضغط F5 لبناء ال Package يجب ان تظهرك جميع البيانات مرتبه (ستجد الملفات مدمجه مع هذا المقال) ان وجد خطأ لا تتردد في سوألي.
14- حان الوقت لبناء ال C# Application وهذا سوف يأخد وقت صغير و هو كل ما عليك فعله اضافه مشروع من نوع C# Windows Forms Application وادراج DataGridView و Button من شريط الادوات

15- من القائمه الرئيسيه Project ثم Add reference لهذه الملفات
16- نقرتين على ال Button لتنفيذ ال Event Handler لل Click ونكتب هذه الاسطر

مؤكد ان هذه الاسطر لكن لنشرحها أيضاً ، بنظره مبدأيه هنا نعتبر ال Package مثل قاعده البيانات نأخد منها البيانات لذا يجب توافر شيئين مهمين اولا ال Connection String و Command
بالنسبه لل Connection String يمكن الحصول على ال Package بأكثر من طريقه الاختصار هنا نحصل عليها وهي موجوده في ال HDD لذا في ال Connection String كلمة /FILE نأتي لل Command ونعطيه الشئ الذي يحصل على البيانات منه وهو ال Data Reader Destination وكما سمناه في ال Package DataReaderDest و ننفذ هذا ال Command ، الناتج سيعود بكائن من النوعReader لذلك اخذنا instance من IDataReader والباقي هو تحميل هذه البيانات الي ال DataGridView كما هو موضح

والسلام عليكم ورحمه الله وبركاته

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: