اگر قصد داشته باشید تا از اطلاعات ذخیره شده در Cube توسط QlikView گزارش و یا داشبورد ایجاد کنید، باید پس از برقراری ارتباط میان این دو توسط کانکتور OLEDB، از عبارات MDX برای فراخوانی جداول حقایق و ابعاد استفاده کنید.
استفاده از تمامی Factها و Dimensionها در کلیک ویو نیازمند عبارات MDX پیشرفته و پیچیده است، به همین دلیل پیشنهاد میشود در صورت امکان، ارتباط کلیک ویو با انبار داده را به صورت مستقیم برقرار نمایید.
در این آموزش فرض بر آماده بودن یک مدل OLAP برروی سیستم شما است.
توجه: از آنجایی که در این آموزش از پایگاه داده AdventureWorksDW2008 استفاده شده است، باید آن را به بانک اطلاعاتی خود اضافه نمایید. پیشتر نحوه استفاده از AdventureWorksDW2008 در اینجا شرح داده شده است.
به منظور انجام این کار مراحل زیر را دنبال کنید.
1- ابتدا باید یک پروژهی OLAP ایجاد و سپس آن را Deploy و پردازش کرد تا بانک اطلاعاتی آن در Analysis Services قرار گیرد.
برای این کار میتوانید از Adventure Works Sample نیز استفاده نمایید.
2- به صفحهی Edit Script در qlikview رفته و از قطعه کد زیر جهت برقراری ارتباط با Analysis Services استفاده نمایید.
OLEDB CONNECT TO [Provider=MSOLAP.5;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=نام بانک اطلاعاتی;Data Source=نام سرور];
قطعه کد بالا ارتباط Cube با qlikview را برقرار میکند.
3- برای خواندن جداول ابعاد و حقایق باید از عبارات MDX استفاده شود. برای مثال عبارت MDX زیر معیار Internet Sales Amount و اطلاعات جداول Ship Date و Product را به QlikView اضافه میکند.
SELECT NON EMPTY {[Measures].[Internet Sales Amount] } ON COLUMNS, NON EMPTY
{ ([Ship Date].[Date].[Date].members* [Product].[Category].[Category].members)}
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Adventure Works]
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
تصویر زیر نحوه قراگرفتن قطعه کدهای بالا در محیط اسکریپت نویسی کلیک ویو را نشان میدهد.
همانطور که در تصویر زیر ملاحظه میکنید، دو نمودار و یک جدول از اطلاعات موجود در Cube ایجاد شده است. نمودار دایرهای بیانگر مبلغ فروش به تفکیک محصول، نمودار خطی، روند فروش محصولات در بازه زمانی و جدول نیز مبلغ فروش محصولات به تفکیک محصول و تاریخ فروش نمایش میدهد.
OLAP مجموعهای از مکعبها (Cubes) است. داخل این مکعبها دادههایی قرار دارند که از پیش انتخاب شدهاند. ارتباطات بین ابعاد از قبل تعریف شده و همه ابعاد (نتایج) از قبل محاسبه و پیشبینی شده است. هنگامی که یک مکعب ایجاد میشود، یک واسط کاربر نهایی که میتواند یک داشبورد باشد برای یک فرد واقعی پیادهسازی میشود که کاربر نهایی(مدیران و تصمیم گیرندگان سازمان) بتواند با جوابهای داخل مکعب تعامل داشته باشد.
اما فرض کنید در یک مکعب برای تحلیل فروش در یک سازمان مقدار و مبلغ فروش را بر اساس ابعادِ مناطق فروش، فروشنده (بازاریاب)، مشتری و ماه یا سال داشته باشیم. زمانی که این مکعب فرضی ساخته میشود، نرمافزار مبتنی بر OLAP کلیه ترکیبات عناصر دادهها را محاسبه و ذخیره میکند، کاربر نهایی به این دادهها از طریق داشبوردها و یا یک سری فرمها مثلا Pivot Table ها یا انواع دیگر فرمها دسترسی خواهد داشت.
در این مثال فرضی کاربر نهایی محدود به تحلیل در محدوده ابعاد از قبل تعریف شده مثل مناطق، نمایندگیها، مشتریها و ماه است. اگر کاربر بخواهد درباره فروش هفتگی، روزهای هفته یا محصولات فروخته شده (و یا صدها ترکیب دیگر از دادهها) اطلاعاتی کسب کند دیگر شانسی برای بدست آوردن آن ندارد، باید صبر کند که مکعب دیگری از اطلاعات مورد نیاز او ایجاد شود که این یعنی محدودسازی و کاهش بهرهوری و اثربخشی برای تصمیمگیران آن سازمان. به عبارت دیگر کاربر نهایی باید نیازهای خود را از پیش شناخته و برای این نیازها Cubeها، جداول حقایق (Fact) و ابعاد (Dimension) مورد نیاز را پیاده سازی کند تا با کنار هم قرار دادن گزارشات مختلف تا حدودی به دانش استخراج شده و مورد نیاز خود دست پیدا کند.OLAP برخی از قابلیتهای تحلیل را فراهم میکند، اما تقریبا میتوان گفت در کشورهای پیشرفته یک رویکرد قدیمی است و متاسفانه در کشور ما همچنان ناشناخته! یا کمتر شناخته شده است. در حال حاضر انواع مختلف OLAPوجود دارد، مثل MultiDimensiona OLAP (MOLAP) که به آن MMD نیز گفته میشود و Relational OLAP (ROLAP) یاRDBMS و سیستم های OLAP از نوع
HOLAP.
در پست جداگانه به تشریح انواع OLAP و مقایسه آنها میپردازم.
کتابهای آموزشی ماکروسافت در حوزه Business Intelligence، برای طرح مثالهای خود از پایگاه دادههای AdventureWorks استفاده میکند. در واقع AdventureWorks نام سازمانی است که اطلاعات آن در یک انبار داده با همان نام گردآوری شده است. در انبار دادههای AdventureWorks جداول و Viewهایی برای استفاده در پروژههای مختلف BI ایجاد شده است. ممکن است در برخی از مثالها از انبار دادهی AdventureWorks استفاده کنم که لازم است پیشتر آن را نصب کرده باشید.
جهت اضافه کردن پایگاه دادههای AdventureWorks به SQL Server مراحل زیر را انجام دهید.
برای دریافت فایل مورد نظر به اینجا مراجعه کنید.
فایل دانلود شده را از حالت فشرده خارج کنید و AdventureWorks2008R2_SR1 را اجرا نمایید.
بر روی Setup کلیک کنید.
در صفحه SQL Server 2008R2 Database Installer چک باکس I accept the license terms را انتخاب و Next را کلیک کنید.
مطابق شکل زیر، بر روی Install کلیک کنید.
اگر در زمان نصب نرم افزار، آدرس محل نصب را تغییر دادید، باید در این قسمت نیز از همان آدرس استفاده کنید.
پس از پایان نصب بر روی Finish کلیک کنید.
همان طور که در شکل زیر می بینید، انبار داده AdventureWorks2008R2 به همراه چند پایگاه دادهی دیگر بهSQL Server 2008 اضافه شده است.
جدول حقایق (Fact)
این نوع جداول در انبار داده Fact یا جدول حقایق نامیده میشوند که مقادیر معیارها را شامل میشوند. معمولا در جدول حقایق، مقادیر عددی از اطلاعات سازمانها نظیر مقدار فروش و مبلغ فروش و همچنین کلیدهای خارجی (foreign key) برای برقرای ارتباط با ابعاد وجود دارد.
مکعب (Cube)
مکعبهای دادهای هستند که اطلاعات را به صورت چند بُعدی در خود ذخیره میکنند.
معیار (Measure)
به هر یک از مقادیر عددی نظیر مبلغ فروش و مقدار فروش که در Fact وجود دارد Measure گفته میشود.
گروه معیار(Measures Group)
یک یا چند معیار، گروه معیار را تشکیل میدهند. در واقع هر جدول حقایقی که در SSAS مورد استفاده قرار میگیرد یک Measures Group است.
ابعاد (Dimension)
اطلاعات تکمیلی و جزئیات جداول حقایق توسط ابعاد مشخص میشود. جداول ابعاد مجموعهای از ویژگیهای داده است. بعنوان مثال کد استان و نام استان درکنار هم میتواند بعد استان را تشکیل دهند.
ویژگیها (Attribute)
هر جدول بُعد دارای یک یا چند ویژگی است. ویژگیها جزئیات بشتر و بهتری از بُعد را فراهم میکنند. برای مثال کد استان و نام استان ویژگیهای دایمنشن استان را مشخص میکند.
عضوها (Members)
عدد "100" عضوی از ویژگیِ کد استان و "تهران" عضوی از ویژگی نام استان است.
سلسله مراتبها (Hierarchies)
در صورتی که ویژگیهای یک دایمنشن را به طوری مرتب کنید که بتوان به صورت معنادار در سطوح مختلف حرکت نمود، سلسله مراتب ایجاد کردهاید. بعنوان مثال سال، فصل، ماه، هفته و روز، یک سلسله مراتب از ویژگیهای بعد زمان است.
عضو محاسباتی(Calculated Member)
شامل عضوهای جداول ابعاد و یا گروه معیارها است که با استفاده از عبارات محاسباتی بصورت داینامیک اجرا و محاسبه میشود. هر عضو محاسباتی ایجاد شده فقط در Cube ذخیره میشود. بعنوان مثال میتوان یک عضو محاسباتی ایجاد کرد که محتوای دو معیار را با یکدیگر جمع نماید.
شاخصهای ارزیابی عملکرد (KPI)
در واقع معیارهای قابل سنجشی هستند که به صورت نمودارهای عقربهای (Gage) نمایش داده میشوند. اطلاعات مورد نیاز برای نمایش در گیج، طبق فرمولی از پیش مشخص میشود.
Actionها
در واقع Action عملی است که قصد داریم در زمان نیاز انجام شود. به عبارت دیگر Action رویدادی از پیش نوشته شده است که مشخص است در زمان وقوع چه عملی را باید انجام دهد. این عمل باعث هوشمندتر شدن Cubeها میشود. بعنوان مثال فرض کنید کاربر میخواهد با کلیک بر روی نام هر شهر نقشهی آن نمایش داده شود؛ برای حل این مسئله میتوان یک Action ایجاد کرد که پس از انتخاب هر شهر نقشهی آن توسط google mapsنمایش داده شود.