شرکت ماکروسافت سرویس SSIS را برای ایجاد راهحلهای مختلف جهت مدیریت و انتقال دادهها فراهم کرده است.
با یک مثال به معرفی بهتر SSIS میپردازم؛ فرض کنید توسط SSAS یک پروژهی بزرگ سازمانی که شامل چندین Cube، Dimension، KPI و ... است، ایجاد کردهاید و از آنجایی که در این پروژه از روش ذخیرهسازی MOLAP استفاده شده، در هر بار به روز رسانی دادهها در انبار داده باید مکعبهای داده و ابعاد نیز پردازش شوند. از طرفی نه درست است و نه منطقی که کاربر نهایی هر روز وارد SSAS شود و Solution را پردازش کند.
بهترین روشی که برای حل این مشکل معرفی میشود، استفاده از SSIS است. در SSIS با ایجاد یک Package و استفاده از کامپننتهای مربوطه این کار به راحتی انجام میشود. کاربرد SSIS تنها برای پردازش Solutionها نیست. در واقع SSIS یک پلتفرم (Platform) سطح بالا برای فراهم کردن راهکارهای مختلف جهت مدیریت و انتقال اطلاعات است. از این سرویس برای کپی کردن یا دانلود فایل، ارسال و دریافت ایمیل، بهروز رسانی انبار داده، پاکسازی و کاوش در دادهها، مدیریت شیءها (Objects) و دادههای SQL استفاده میشود. علاوه بر این SSIS توانایی استخراج (Extract) و تبدیل کردن (Transform) دادهها از فایلهای دادهای XML و منابع داده رابطهای و بارگذاری (Load) در یک یا چند مقصد را دارد.
گرافیکی بودن ابزارها از دیگر مزایای SSIS است. به سادگی میتوان از این ابزارها برای ساخت Package استفاده نمود بدون نیاز به حتی یک خط کد نویسی! البته در صورت نیاز به کد نویسی ابزار و شرایط آن فراهم است.
هر پکیج دارای یک یا چند کامپننت است که میتوانند به تنهایی و یا با ترکیبی از هم اجرا شوند. هر پکیج نیز میتواند به تنهایی یا با هماهنگی با سایر پکیجها اجرا شود.
معمولا برای مقایسه رکوردهای دو جدول از کوئریهای پیچیده استفاده میشود. دو دستور INTERSECT و EXCEPT نتایج مقایسه رکوردهای دو کوئری را بدون نمایش رکوردهای تکراری نمایش میدهد.
EXCEPT رکوردهایی که در کوئری اول (سمت چپ) وجود دارد و در کوئری دوم (سمت راست) وجود ندارد را نمایش میدهد.به زبان سادهتر، رکوردهایی که در اولی هست و در دومی نیست.
INTERSECT رکوردهایی که در هر دو کوئری مشترک هستند را نمایش میدهد.
به دو کوئری زیر توجه کنید
USE AdventureWorks; GO SELECT ProductID FROM Production.Product INTERSECT SELECT ProductID FROM Production.WorkOrder ; --Result: 238 Rows (products that have work orders) |
در دو جدول Product و WorkOrder تعداد 238 رکورد وجود دارد که ProductID آنها مشترک است.
USE AdventureWorks; GO SELECT ProductID FROM Production.Product EXCEPT SELECT ProductID FROM Production.WorkOrder ; --Result: 266 Rows (products without work orders) |
تعداد 266 رکورد وجود دارد که ProductID آنها در جدول Product (اولی) وجود دارد و در جدول WorkOrder (دومی) وجود ندارد.
جهت دریافت و نصب بانک اطلاعاتی AdventureWorks به اینجا مراجعه کنید.
منبع:
http://msdn.microsoft.com/en-us/library/ms188055(v=sql.100).aspx
اگر با Stored Procedures نویسی در SQL آشنا باشید، به خوبی با مفهموم Roll Back و ضرورت استفاده از آن اطلاع دارید. گاهی نیاز به Roll Back در پکیج ضروری است. به این معنا که اگر یکی از کامپننتها با خطا مواجه شد کل عملیات باید لغو شود و همه چیز به حالت اول برگردد. یکی از روشهای انجام اینکار در SSIS استقاده از Sequence Container است. در واقع Sequence Container دسته بندیهای اجرای کامپننتها را بر عهده دارد. کامپننتهای موجود در هر Sequence Container با هم اجرا میشوند و سپس اجرای سایر کامپننتها یا Sequence Containerها انجام میشود.
با این وجود مسئلهی Roll Back همچنان وجود دارد. برای حل این مسئله باید از خصوصیت TransactionOption استفاده کنیم. به صورت پیش فرض این خصوصیت Supported است، آن را به Required تغییر دهید.
کار تمام است! حال در صورتی که یکی از کامپننتهای داخل Sequence Container با خطا مواجه شود تمامی کارهای انجام شده Roll Back شده و به حالت اول باز میگردد.
چرخه حیات داده کاوی شامل 6 بخش است. شکل زیر مراحل این فرآیند را نمایش میدهد. در این سیکل حرکت به عقب و جلو امری عادی است. خروجی هر مرحله رابطه مستقیم با انجام وظایف در مرحله بعدی دارد و حرکت فلشها برای وابستگیهای میان مراحل بسیار مهم است.
در ادامه هر سیکل را به طور خلاصه شرح میدهم.
درک و فهم موضوع (Business understanding)
اولین مرحلهی این چرخه، تمرکز بر روی هدف و درک نیازمندیها و موضوع پروژه است. تبدیل اطلاعات اولیه به آگاهی و رسیدن به تعریفی مناسب برای حل مسئله دادهکاوی و طراحی برنامه اولیه جهت دسترسی به هدف مورد نظر اولین قدم در یک پروژهی دادهکاوی است. ممکن است گذر از این مرحله ماهها طول بکشد که البته به نوع سازمان نیز بستگی دارد.
درک و فهم دادهها (Data understanding)
این مرحله با جمع آوری دادههای اولیه از منابع داده، بررسی ویژگیها و کیفیت داده، پردازش فعالیتها به منظور آشنایی با دادهها، شناسایی مشکلات و اکتشاف بینش اولیه از دادهها شروع میشود.
آماده سازی دادهها (Data preparation)
مرحله آماده سازی دادهها، تمامی فعالیتها را برای ساخت دادههای خام اولیه به مجموعه دادههای نهایی پوشش میدهد. این فعالیتها شامل پاک سازی، ادغام و قالب بندی دادهها است. از آنجایی که از این دادهها در مراحل بعدی استفاده میشود این مرحله بسیار مهم میباشد.
مدل سازی (Modeling)
در این مرحله تکنیکهای مدل سازی مختلف انتخاب و اعمال میشوند تا پارامترهای آنها به مقادیر مطلوب برسند. پس از انتخاب روش مدل سازی باید یک مدل آزمون ایجاد کنیم تا کیفیت و اعتبار مدل را آزمایش کنیم. در نهایت یک مدل نهایی که به نظر میرسد از لحاظ تجزیه و تحلیل داده دارای کیفیت بالایی است، ساخته میشود.
ارزیابی (Evaluation)
قبل از استقرار نهایی مدل باید مشخص شود که آیا مدل انتخاب شده، ما را به هدفی که در اولین قدم تعیین نموده بودیم میرساند.
گسترش (Deployment)
حتی اگر هدف از ساخت مدل، افزایش دانش باشد، عموماً ساخت یک مدل پایان پروژه نیست. اطلاعات حاصله احتیاج به سازماندهی و ارائه به روشهایی که کاربران نهایی بتوانند از آن استفاده کنند دارد. اغلب به کار بردن مداوم این مدل، در سازماندهی و فرایندِ ساخت تصمیمات مدنظر است.
در هر یک از این مراحل میتوانیم به مرحله قبل برگردیم و با بازنگری به پیشبرد هدف سازمان کمک کنیم. پس از مرحله گسترش نیز میتوانیم از ابتدا مراحل را مورد بررسی قرار داده و در صورت نیاز پروژه را گسترش دهیم.
برگرفته از CRISPWP
به تازگی متوجه شدم که مطالب بلاگم مورد توجه خیلی از دوستان قرار گرفته تا جایی که این مطالب از مقالات مختلف و بلاگهای دیگر سردر می آورند. اینکه توجه به هوش تجاری در حال گسترش است بسیار امیدوار کننده میباشد و هدف اصلی این بلاگ نیز همین بوده که هوش تجاری بیشتر و بهتر شناخته شود و منبع مناسبی برای کارشناسان تازه کار در این زمینه باشد. اما لطفا در صورتی که از این مطالب استفاده می کنید نام منبع (learnbi.ir) را ذکر نمایید. اگر هم به هر دلیلی علاقه ای به این کار نداشتید مهم نیست! همین که بتوانم به جامعه ی BI کمکی کرده باشم برایم کافی است.