هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری
هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری

مراحل کلی در انجام عملیات داده کاوی


می‌توان گفت داده‌کاوی هدف اصلی و نهایی سازمان‌ها در بکارگیری از BI است. انجام عمل داده‌کاوی علاوه بر تخصص و توانایی فنی بالا و تسلط به کسب و کار مربوطه نیازمند مقدمات دیگری نیز هست و تا فراهم نشدن تمامی این مقدمات امکان پذیر نمی‌باشد. در ادامه هر یک از این پیش نیازها را بررسی می‌کنیم.


طراحی و پیاده سازی انبار داده:


بدون وجود انبار داده‌ای جامع و دقیق نمی‌توان به سوی داده کاوی قدم برداشت. پیش از انجام هر نوع عمل کاوش در داده‌ها ابتدا باید از یکپارچگی، صحت و تجمیع اطلاعات اطمینان حاصل شود. اطلاعات باید واقعی و دارای توالی به روز رسانی مشخص باشند. مراحل پیاده سازی انبار داده در اینجا شرح داده شده است.


 بررسی و انتخاب داده‌ها بر اساس نوع الگوریتم مورد استفاده:


فارغ از اینکه از چه ابزاری برای عملیات داده کاوی استفاده می‌کنیم، تعداد الگوریتم‌ها، تنوع و مقاصد آن‌ها متفاوت است. از این رو باید بر اساس نوع الگوریتمی که قصد استفاده از آن را داریم اطلاعات را انتخاب نماییم. الگوریتم‌های داده کاوی در اینجا شرح داده شده است.


تبدیل داده‌ها به فرمت و ساختار مورد نیاز الگوریتم:


هر الگوریتم داده کاوی بر اساس نوع خروجی و هدفی که دنبال می‌کند به فرمت خاص خود نیاز دارد. در این مرحله باید داده‌های مورد نیاز الگوریتم را به شکل و قالب قابل قبول برای الگوریتم تبدیل کنیم. انواع داده‌ای مورد استفاده در Microsoft Data Mining را اینجا مطالعه کنید.


کاوش در داده با استفاده از الگوریتم‌های داده کاوی:

در این مرحله کار را به الگوریتم انتخاب شده می‌سپاریم. الگوریتم بر اساس پارامترها و ورودی‌های مشخص شده شروع به کاوش در داده‌ها می‌کند و روابط و اطلاعات مورد نیاز جهت رسیدن به دانش را در اختیار ما قرار می‌دهد.

در این رابطه می‌توانید الگوریتم کلاسترینگ و سری زمانی را مطالعه نمایید.


تحلیل و تفسیر نتیجه :


بدیهی است که کسب دانش از داده‌ها نیازمند تجزیه و تحلیل و تفسیر خروجی مرحله قبل است. رسیدن به نتیجه مطلوب در کنار تلاش تیمی متشکل از افراد فنی و غیر فنی که تسلط کامل برروی اطلاعات و کسب وکار دارند میسر است.


واکشی داده‌ها از شیرپوینت و بارگذاری در SQL توسط SSIS

امروزه استفاده از شیرپوینت به عنوان ابزار ایجاد کننده وب‌ سایت‌ به دلیل سرعت بالا در ایجاد و راه‌اندازی بسیار گسترش پیدا کرده است و بسیاری از سازمان‌ها از آن استفاده می‌کنند. بنابراین می‌توان شیرپوینت را به عنوان منبع داد‌ه‌ها در نظر گرفت.

برای خواندن و بارگذاری داده‌های شیرپوینت در SQL Server از طریق SSIS چندین روش وجود دارد که در این مقاله به یکی از بهترین و ساده‌ترین آن‌ها که استفاده از SharePoint Web services است، می‌پردازم.

ابتدا باید Features مربوط به SharePoint List Source and Destination را از اینجا دریافت کنید.

پس از دانلود، مطابق تصاویر زیر مراحل نصب را انجام دهید.




بعد از اتمام مراحل نصب باید کامپننت‌های SharePoint List Source and Destination را به جعبه ابزار SSIS اضافه کنید. برای اینکار مراحل زیر را انجام دهید.

1- برنامه Business Intelligence Development Studio را باز کردهو  مطابق تصویر زیر یک پروژه‌ی جدید SSIS ایجاد کنید.


2- از منوی Tools گزینه Choose Toolbox Items را انتخاب کنید.




پنجره Choose Toolbox Items باز می‌شود.

3- از پنجره بازشده به سربرگ SSIS Data Flow Items رفته و چک‌باکس مربوط به SharePoint List Source و SharePoint List Destination را انتخاب نمایید. برروی Ok کلیک کنید.


این دو کامپننت به قسمت General در جعبه ابزار SSIS اضافه می‌شوند. شما می‌توانید هر یک از آن‌ها را به محل مناسب خود منتقل کنید.




آماده سازی یک لیست شیرپوینت جهت انجام یک مثال

 

1- ایجاد لیستی با عنوان TestSharePointList که شامل اطلاعات زیر باشد.

نام: کارمندان

ستون‌ها:

·         شماره پرسنلی (نوع: عدد)

·         نام کارمند(نوع: کاراکتر)

·         جنسیت (انتخابی؛ انتخاب اول، زن انتخاب دوم، مرد)



ایجاد یک جدول در SQL مطابق با لیست ایجاد شده در شیرپوینت

 

1- وارد SSMS شده و یک بانک اطلاعاتی با نام TestDB ایجاد کنید.



2- مطابق شکل زیر یک جدول با نام SharePointData ایجاد کنید.




استخراج داده‌ از لیست شیرپوینتی ساخته شده توسط SharePoint List Source

1- در این قسمت ابتدا باید یک اتصال دهنده شیرپوینتی ایجاد نمود. برای انجام اینکار مطابق تصاویر زیر عمل کنید.







این اتصال دهنده پس از نصب Features مربوط به شیرپوینت که مراحل نصب آن در ابتدای مقاله توضیح داده شد، به لیست Add SSIS Conection Manager اضافه می‌شود.




در صورتی که برای دسترسی به لیست‌های شیرپوینتی نیاز به دسترسی خاصی دارید باید در قسمت Custom Credentials نام کاربری و رمز عبور آن User مربوطه را وارد کنید.




2- از جعبه ابزار یک کامپننت Data Flow Tasks به پکیج خود اضافه کنید. مجدد از جعبه ابزار SharePoint List Source را درون Data Flow Tasks قرار دهید.




3- انجام تنظیمات مربوط به SharePoint List Source، برای اینکار برروی کامپننت SharePoint List Source دوبار کلیک کرده و مطابق تصاویر زیر عمل نمایید.




پس از وارد کردن آدرس مربوط به سایت لیست ساخته شده و نام آن در قسمت SiteUrl و SiteListName بر روی Refresh کلیک کنید تا ارتباط با لیست ساخته شده برقرار شود.


در این قسمت تنظیمات دیگری نیز وجود دارد که در مقاله‌ای جداگانه به آن‌ها خواهم پرداخت.

4- در مرحله بعد باید ستون‌های مورد نظر خود را انتخاب کنید. برای اینکار به سربرگ Column Mappings  بروید  تا فیلدهای لیست شیرپوینتی نمایش داده شود. برخی از این فیلدها توسط خود شیرپوینت ساخته می‌شود. فیلدهایی که قصد دارید آن‌ها را در خروجی داشته باشید را انتخاب کرده و بر روی Ok کلیک کنید.





5- از جعبه ابزار یک OLE DB Destination به پکیج اضافه کنید و تنظیمات آن‌ را مطابق تصاویر زیر انجام دهید.

برروی کامپننت OLE DB Destination دوبار کلیک کنید تا صفحه مربوط به تنظیمات آن باز شود. سپس جدولی که پیشتر در SQL ساخته بودید را انتخاب نمایید.




در قسمت Mapping فیلدهای جداول مبدا و مقصد را انتخاب کنید.





با کلیک برروی Ok کار تمام است و میتوانید پکیج را اجرا کنید.




داده‌های موجود در لیست شیرپوینت در جدول ساخته شده در SQL قرار می‌گیرند.




دسته بندی الگوریتم های داده کاوی

از داده‌کاوی برای کاوش در اطلاعات و بدست آوردن دانش استفاده می‌شود. برای اینکار الگوریتم‌های زیادی وجود دارد که هر یک برای هدف خاصی کاربرد دارند. در  SQL Server Business Intelligence Development Studioتعداد 9 الگوریتم مختلف برای انجام عمل داده‌کاوی وجود دارد که در پنج دسته کلی به شرح زیر تقسیم می‌شوند.   

 

الگوریتم‌های طبقه‌بندی(Classification algorithms)

در این نوع از الگوریتم‌ها پیش بینی بر اساس یک یا چند متغیر گسسته بر روی سایر ویژگی‌های موجود در مجموعه داده‌ها انجام می‌شود.   

 

الگوریتم‌های رگرسیون(Regression algorithms)

در این نوع از الگوریتم‌ها پیش بینی بر اساس یک یا چند متغیر پیوسته بر روی سایر ویژگی‌های موجود در مجموعه داده‌ها می‌شوند.  

 

الگوریتم‌های دسته‌بندی(Segmentation algorithms)

این الگوریتم‌ها اطلاعات را به چند گروه یا خوشه تقسیم می‌کنند. هر گروه ویژگی‌های مشابه دارد.  

 

الگوریتم‌های وابستگی(Association algorithms)

ارتباط میان ویژگی‌های مختلف موجود در مجموعه داده‌ها از طریق این الگوریتم کشف می‌شود. از این الگوریتم بیشتر در تجزیه و تحلیل سبد خرید کالا استفاده می‌شود.   

 

الگوریتم‌های تحلیل زنجیره‌ای(Sequence analysis algorithms)

این نوع الگوریتم‌ها  نتیجه‌ی رویدادهای خاص را دنبال می‌کنند. مانند دنبال کردن رخداد‌های آدرس‌ یک سایت اینترنتی.   

 

لازم به ذکر است که تعاریف و دسته‌بندی‌های بالا دلیلی برای محدود کردن استفاده از یک الگوریتم نیست. معمولا در یک تحلیل خوب از یک الگوریتم برای تعیین ورودی‌های موثر و از الگوریتم‌های دیگر برای بدست آوردن پیش‌ بینی‌های مناسب در خروجی استفاده می‌شود. برای مثال، در یک مدل داده‌کاوی می‌توانید از الگوریتم‌های خوشه‌بندی، درخت تصمیم و بیز جهت بررسی داده‌ها از جهات مختلف و کشف دانش استفاده کرد.

آشنایی با INTERSECT و EXCEPT

معمولا برای مقایسه رکوردهای دو جدول از کوئری‌های پیچیده استفاده می‌شود. دو دستور 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

MOLAP، ROLAP و HOLAP

در یک پروژه‌ی OLAP از یک یا چند مکعب داده‌ (Cube) استفاده می‌شود. از اینرو Cube به عنوان یکی از مزایای پروژه هوش تجاری شناخته می‌شود. قرار گرفتن داده‌ها در یک فرمت بهینه جهت ذخیره‌سازی به انجام سریع‌تر کوئری‌ها می‌انجامد. معمولا نحوه ذخیره‌سازی اطلاعات حجیم در Cube باعث تاخیر در ذخیره و بازیابی انبوه اطلاعات می‌شود. به طور معمول در SSAS پردازش داده‌ها از یک بانک اطلاعاتی رابطه‌ای به Cube منتقل می‌شود. پس از اتمام این ارتباط نه چندان طولانی میان پایگاه داده‌های رابطه‌ای و Cube اطلاعات وارد Cube می‌شوند و با تغییر داده‌ها در پایگاه داده هیچ تغییری در اطلاعات موجود در Cube ایجاد نمی‌شود مگر آنکه Cube را مجدد پردازش کنید.

در SSAS2008 سه نوع ذخیره‌سازی وجود دارد؛ MOLAP، ROLAP و HOLAP

در این پست هر یک از انواع ذخیره‌سازی را به صورت خلاصه شرح داده و در پایان با یکدیگر مقایسه می‌کنم. 

MOLAP(Multidimensional Online Analytical Processing) 

این نوع ذخیره‌سازی بیشترین کاربرد در ذخیره اطلاعات را دارد همچنین به صورت پیش فرض جهت ذخیره‌سازی اطلاعات انتخاب شده است. در این نوع تنها زمانی داده‌های منتقل شده به Cube به روز می‌شوند که Cube پردازش شود که این امر باعث تاخیر بالا در پردازش و انتقال داده‌ها می‌شود.    

ROLAP (Relational Online Analytical Processing) 

 در ذخیره‌سازی ROLAP زمان انتقال بالا نیست که از مزایای این نوع ذخیره‌سازی نسبت به MOLAP است. در ROLAP اطلاعات و پیش‌محاسبه‌ها (Aggregations) در یک حالت رابطه‌ای ذخیره می‌شوند و این به معنای زمان انتقال نزدیک به صفر میان  منبع داده (بانک اطلاعاتی رابطه‌ای) و Cube می‌باشد. از معایب این روش می‌توان به کارایی پایین آن اشاره کرد زیرا زمان پاسخ برای پرس‌و‌جوهای اجرا شده توسط کاربران طولانی است. دلیل این کارایی پایین بکار نبردن تکنیک‌های ذخیره‌سازی چند بعدی است.  

HOLAP (Hybrid Online Analytical Processing)  

این نوع ذخیره‌سازی چیزی مابین دو حالت قبلی است. ذخیره اطلاعات با روش ROLAP انجام می‌شود، بنابراین زمان انتقال تقزیبا صفر است. از طرفی برای بالابردن کارایی، پیش‌محاسبه‌ها به صورت MOLAP انجام می‌گیرد در این حالت SSAS آماده است تا تغییری در اطلاعات مبداء رخ دهد و زمانی که تغییرات را ثبت کرد نوبت به پردازش مجدد پیش‌محاسبه‌ها می‌شود. با این نوع ذخیره‌سازی زمان انتقال داده‌ها به Cube را نزدیک به صفر و زمان پاسخ برای اجرای کوئری‌های کاربر را زمانی بین نوع ROLAP و MOLAP می‌رسانیم.

  

مقایسه  انواع ذخیره سازی در جدول زیر نمایش داده شده است. 

 

مدت زمان انتقال داده

سرعت اجرای کوئری

محل ذخیره‌سازی پیش‌محاسبات

محل ذخیره‌سازی داده‌ها

بالا

بالا

Cube

Cube

MOLAP

پایین

متوسط

Cube

بانک اطلاعاتی رابطه‌ای

HOLAP

پایین

پایین

بانک اطلاعاتی رابطه‌ای

بانک اطلاعاتی رابطه‌ای

ROLAP

 
  این سه روش ذخیره‌سازی انعطاف‌پذیری مورد نیاز را برای اجرای پروژه فراهم می‌کند. انتخاب هر یک از این روش‌ها به نوع پروژه، حجم داده‌ها و ... بستگی دارد.  
در پایان می‌توان نتیجه گرفت که بهتر است زمان پردازش طولانی‌تری داشته باشیم تا اینکه کاربر نهایی در هنگام ایجاد گزارشات زمان زیادی را منتظر بماند.