مکعب اولاپ در اکسل چیست؟ ایجاد یک پروژه SSAS تحلیل چیست و چرا لازم است؟

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

انبار داده چیست؟

معمولاً - مکانی که تمام اطلاعات با ارزش تحلیلی جمع آوری می شود. الزامات چنین فروشگاه هایی با تعریف کلاسیک OLAP مطابقت دارد و در زیر توضیح داده خواهد شد.

گاهی اوقات Warehouse هدف دیگری دارد - یکپارچه سازی تمام داده های سازمانی، برای حفظ یکپارچگی و ارتباط اطلاعات در تمام سیستم های اطلاعاتی. که مخزن نه تنها اطلاعات تحلیلی، بلکه تقریباً تمام اطلاعات را جمع آوری می کند و می تواند آن را در قالب دایرکتوری ها به سیستم های دیگر ارائه دهد.

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

دوم، در حالی که پایگاه‌های داده سنتی در حین کار کاربران در معرض تغییر دائمی هستند، انبار داده نسبتاً پایدار است: داده‌های موجود در آن معمولاً طبق یک برنامه به‌روزرسانی می‌شوند (برای مثال، هفتگی، روزانه یا ساعتی، بسته به نیاز). در حالت ایده‌آل، فرآیند غنی‌سازی صرفاً افزودن داده‌های جدید در یک دوره زمانی بدون تغییر اطلاعات قبلی در انبار است.

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

انباری چگونه ساخته می شود؟

ETL- مفهوم اصلی: سه مرحله:
  • استخراج - استخراج داده ها از منابع خارجی در قالبی قابل فهم.
  • تبدیل - تبدیل ساختار داده های منبع به ساختارهای مناسب برای ساختن یک سیستم تحلیلی.
بیایید یک مرحله دیگر اضافه کنیم - تمیز کردن داده ها ( تمیز کردن) - فرآیند فیلتر کردن داده های نامربوط یا تصحیح داده های اشتباه بر اساس روش های آماری یا کارشناسی. به طوری که بعداً گزارش هایی مانند "فروش برای سال 20011" تولید نکنید.

به تحلیل برگردیم.

تحلیل چیست و چرا لازم است؟

تجزیه و تحلیل، مطالعه داده ها به منظور تصمیم گیری است. سیستم های تحلیلی سیستم های پشتیبانی تصمیم نامیده می شوند. DSS).

در اینجا شایان ذکر است که تفاوت کار با DSS و مجموعه ای ساده از گزارش های تنظیم شده و غیرقانونی وجود دارد. تجزیه و تحلیل در DSS تقریبا همیشه تعاملی و تکراری است. آن ها تحلیلگر داده ها را بررسی می کند، پرس و جوهای تحلیلی را تنظیم و تنظیم می کند و گزارش هایی را دریافت می کند که ساختار آنها ممکن است از قبل ناشناخته باشد. هنگامی که در مورد زبان پرس و جو صحبت می کنیم، در زیر با جزئیات بیشتری به این موضوع باز خواهیم گشت. MDX.

OLAP

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

فناوری تجزیه و تحلیل داده های چند بعدی پیچیده OLAP (پردازش تحلیلی آنلاین) نامیده می شود. OLAP جزء کلیدی انبار داده سنتی است. مفهوم OLAP در سال 1993 توسط Edgar Codd، محقق مشهور پایگاه داده و نویسنده مدل داده های رابطه ای توصیف شد. در سال 1995، بر اساس الزامات تعیین شده توسط Codd، آزمون به اصطلاح FASMI (تحلیل سریع اطلاعات چند بعدی مشترک) فرموله شد که شامل الزامات زیر برای برنامه های کاربردی برای تجزیه و تحلیل چند بعدی است:

  • ارائه نتایج تجزیه و تحلیل به کاربر در زمان قابل قبولی (معمولاً بیش از 5 ثانیه)، حتی به قیمت تجزیه و تحلیل کمتر.
  • توانایی انجام هر گونه تحلیل منطقی و آماری مشخصه این نرم افزار، و ذخیره آن به شکلی که برای کاربر نهایی در دسترس باشد.
  • دسترسی چند کاربره به داده ها با پشتیبانی از مکانیسم های قفل مناسب و وسایل دسترسی مجاز؛
  • نمایش مفهومی چند بعدی داده ها، از جمله حمایت کاملبرای سلسله مراتب و سلسله مراتب چندگانه (این یک نیاز کلیدی OLAP است).
  • امکان دسترسی به هر گونه اطلاعات ضروری، صرف نظر از حجم و محل ذخیره آن.
لازم به ذکر است که قابلیت OLAP قابل پیاده سازی است راه های مختلف، از ساده ترین ابزارهای تجزیه و تحلیل داده ها در برنامه های اداری شروع می شود و به سیستم های تحلیلی توزیع شده مبتنی بر محصولات سرور ختم می شود. آن ها OLAP یک فناوری نیست، اما ایدئولوژی.

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

مفاهیم چند بعدی

ما از پایگاه داده Northwind همراه با مایکروسافت برای نشان دادن اصول OLAP استفاده خواهیم کرد. SQL Serverو این یک پایگاه داده معمولی است که اطلاعات مربوط به عملیات تجاری یک شرکت فعال در تامین عمده فروشی مواد غذایی را ذخیره می کند. چنین داده هایی شامل اطلاعاتی در مورد تامین کنندگان، مشتریان، لیستی از کالاهای عرضه شده و دسته بندی آنها، داده های مربوط به سفارشات و کالاهای سفارش داده شده، لیستی از کارکنان شرکت است.

مکعب

بیایید به عنوان مثال جدول Invoices1 را در نظر بگیریم که حاوی سفارشات شرکت است. فیلدهای این جدول به صورت زیر خواهد بود:
  • تاریخ سفارش
  • یک کشور
  • شهر
  • نام مشتری
  • شرکت تحویل
  • نام محصول
  • مقدار کالا
  • قیمت سفارش
چه داده های انبوهی می توانیم از این دیدگاه به دست آوریم؟ معمولاً اینها پاسخ به سؤالاتی مانند:
  • ارزش کل سفارش های ارسال شده توسط مشتریان از یک کشور خاص چقدر است؟
  • ارزش کل سفارش هایی که توسط مشتریان در یک کشور خاص ارسال شده و توسط یک شرکت خاص تحویل داده می شود چقدر است؟
  • ارزش کل سفارش‌هایی که توسط مشتریان در یک کشور خاص در یک سال مشخص شده و توسط یک شرکت خاص تحویل داده شده است چقدر است؟
تمام این داده ها را می توان از این جدول با استفاده از پرس و جوهای کاملاً واضح SQL با گروه بندی به دست آورد.

نتیجه این پرس و جو همیشه ستونی از اعداد و لیستی از ویژگی های توصیف کننده آن خواهد بود (به عنوان مثال، کشور) - این یک مجموعه داده یک بعدی یا به زبان ریاضی یک بردار است.

بیایید تصور کنیم که ما باید اطلاعاتی در مورد هزینه کل سفارشات از همه کشورها و توزیع آنها بین شرکت های تحویل به دست آوریم - جدولی (ماتریسی) از اعداد به دست می آوریم که در آن شرکت های تحویل در عناوین ستون ها، کشورهای در ردیف فهرست می شوند. سرفصل ها، و در سلول ها مقداری از سفارش ها وجود خواهد داشت. این یک آرایه داده دو بعدی است. این مجموعه از داده ها جدول محوری نامیده می شود ( جدول محوری) یا crosstab.

اگر بخواهیم همان داده ها را به دست آوریم، بلکه براساس سال، تغییر دیگری ظاهر می شود، یعنی. مجموعه داده ها سه بعدی خواهد شد (یک تانسور مرتبه 3 شرطی یا یک "مکعب" 3 بعدی).

بدیهی است که حداکثر تعداد ابعاد، تعداد همه ویژگی‌ها (تاریخ، کشور، مشتری و غیره) است که داده‌های جمع‌آوری شده ما (مقدار سفارش‌ها، تعداد محصولات و غیره) را توصیف می‌کنند.

اینگونه است که به مفهوم چندبعدی و تجسم آن می رسیم - مکعب چند بعدی. ما چنین جدولی را " جدول حقایق" ابعاد یا محورهای مکعبی ( ابعاد) صفاتی هستند که مختصات آنها با مقادیر مجزای این صفات موجود در جدول واقعیت بیان می شود. آن ها به عنوان مثال، اگر اطلاعات مربوط به سفارشات از سال 2003 تا 2010 در سیستم نگهداری می شد، امسال محور شامل 8 نقطه متناظر خواهد بود. اگر سفارشات از سه کشور باشد، محور کشور شامل 3 نقطه و غیره خواهد بود. صرف نظر از اینکه چند کشور در فهرست کشور گنجانده شده است. نقاط روی یک محور «اعضای» نامیده می شوند ( اعضا).

در این مورد، داده های انباشته شده به خودی خود "اقدامات" نامیده می شوند ( اندازه گرفتن). برای جلوگیری از اشتباه گرفتن با "ابعاد"، دومی ترجیحا "محور" نامیده می شود. مجموعه اقدامات یک محور دیگر "Measures" را تشکیل می دهد ( معیارهای). تعداد اعضا (نقاط) به اندازه اندازه گیری ها (ستون های تجمیع شده) در جدول واقعیت است.

اعضای ابعاد یا محورها را می توان با یک یا چند سلسله مراتب ترکیب کرد ( سلسله مراتب). اجازه دهید با یک مثال توضیح دهیم که سلسله مراتب چیست: شهرها از راسته‌ها را می‌توان در ناحیه‌ها، ناحیه‌ها به مناطق، مناطق یک کشور، کشورها را در قاره‌ها یا موجودیت‌های دیگر متحد کرد. آن ها یک ساختار سلسله مراتبی وجود دارد - قاره - کشور-منطقه-منطقه-شهر– 5 سطح ( مرحله). برای یک منطقه، داده ها برای همه شهرهایی که در آن گنجانده شده اند جمع آوری می شود. برای منطقه ای در تمام مناطق که شامل همه شهرها و غیره است. چرا به چندین سلسله مراتب نیاز داریم؟ برای مثال، در محور تاریخ سفارش، ممکن است بخواهیم نقاط (به عنوان مثال روز) را در یک سلسله مراتب گروه بندی کنیم. سال ماه روزیا توسط سال-هفته-روز: در هر دو حالت سه سطح وجود دارد. بدیهی است که روزهای گروه هفته و ماه متفاوت است. سلسله مراتبی نیز وجود دارد که تعداد سطوح آنها قطعی نیست و به داده ها بستگی دارد. به عنوان مثال، پوشه های روی دیسک کامپیوتر.

تجمیع داده ها می تواند با استفاده از چندین تابع استاندارد رخ دهد: جمع، حداقل، حداکثر، میانگین، شمارش.

MDX

بیایید به زبان پرس و جو در داده های چند بعدی برویم.
زبان SQL در اصل نه برای برنامه نویسان، بلکه برای تحلیلگران طراحی شده بود (و بنابراین دارای نحوی است که شبیه زبان طبیعی است). اما با گذشت زمان این موضوع پیچیده تر و پیچیده تر شد و اکنون تعداد کمی از تحلیلگران می دانند که چگونه از آن به خوبی استفاده کنند. به ابزاری برای برنامه نویسان تبدیل شده است. زبان پرس و جو MDX، که شایعه شده است توسط هموطن سابق ما، موشا (یا موشا) پوسومانسکی در طبیعت مایکروسافت توسعه داده شده است، همچنین در ابتدا قرار بود برای تحلیلگران باشد، اما مفاهیم و نحو آن (که به طور مبهم یادآور SQL است، و کاملا بیهوده، یعنی چون فقط گیج می شود)، حتی پیچیده تر از SQL. با این حال، اصول آن هنوز به راحتی قابل درک است.

ما به طور مفصل به آن نگاه خواهیم کرد زیرا این تنها زبانی است که در چارچوب استاندارد پروتکل عمومی XMLA وضعیت استاندارد را دریافت کرده است و ثانیاً به دلیل اجرای متن باز آن در قالب پروژه Mondrian از طرف شرکت. پنتاهو. سایر سیستم های تجزیه و تحلیل OLAP (به عنوان مثال، Oracle OLAP Option) معمولاً از پسوندهای خود از نحو SQL استفاده می کنند، با این حال، آنها همچنین از MDX پشتیبانی می کنند.

کار با مجموعه داده های تحلیلی تنها به معنای خواندن آنهاست و به معنای نوشتن آنها نیست. که MDX هیچ بند برای تغییر داده ها ندارد، بلکه فقط یک بند انتخاب دارد - select.

در OLAP می توانید مکعب های چند بعدی بسازید برش ها- یعنی هنگامی که داده ها در امتداد یک یا چند محور فیلتر می شوند، یا طرح ها- هنگامی که مکعب در امتداد یک یا چند محور "جمع می شود"، داده ها را جمع می کند. به عنوان مثال، اولین مثال ما با مقدار سفارشات از کشورها، طرحی از مکعب بر روی محور کشور است. کوئری MDX برای این مورد به صورت زیر خواهد بود:

...Children on rows from را انتخاب کنید
اینجا چیه؟

انتخاب کنید- کلمه کلیدی صرفاً برای زیبایی در نحو گنجانده شده است.
نام محور است. تمام نام های مناسب در MDX در براکت نوشته می شود.
نام سلسله مراتب است. در مورد ما، این سلسله مراتب کشور-شهر است
- این نام عضو محور در سطح اول سلسله مراتب (یعنی کشور) همه است - این یک فراعضو است که همه اعضای محور را متحد می کند. در هر محور چنین فراترمی وجود دارد. به عنوان مثال، در محور سال "همه سال ها" و غیره وجود دارد.
فرزندانیک تابع عضو است. هر عضو دارای چندین عملکرد در دسترس است. مانند پدر و مادر. Level، Hierarchy، به ترتیب جد، سطح در سلسله مراتب و خود سلسله مراتبی را که عضو در این مورد به آن تعلق دارد، برمی گرداند. Children - مجموعه ای از اعضای فرزند این عضو را برمی گرداند. آن ها در مورد ما - کشورها.
روی ردیف ها– نحوه چیدمان این داده ها را در جدول به دست آمده مشخص می کند. در این مورد - در سرفصل خطوط. مقادیر ممکن در اینجا: در ستون ها، در صفحات، در پاراگراف ها و غیره. همچنین می توان به سادگی با شاخص، از 0 شروع کرد.
از جانب- این نشان دهنده مکعبی است که انتخاب از آن انجام شده است.

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

(...، ...) را در ردیف های از انتخاب کنید
بریس های فرفری در این مورد اعلان مجموعه ( تنظیم). یک مجموعه یک لیست است، شمارشی از اعضا از یک محور.

حالا بیایید برای مثال دوم خود یک پرس و جو بنویسیم - خروجی در زمینه یک شخص تحویل دهنده:

...فرزندان در ردیف ها .اعضا در ستون ها از را انتخاب کنید
اضافه شده در اینجا:
- محور؛
.اعضا– یک تابع محور که تمام عبارات موجود در آن را برمی گرداند. سلسله مراتب و سطح عملکرد یکسانی دارند. زیرا تنها یک سلسله مراتب در این محور وجود دارد، پس از آن می توان نشانه آن را حذف کرد، زیرا سطح و سلسله مراتب نیز یکسان است، سپس می توانید همه اعضا را در یک لیست نمایش دهید.

فکر می‌کنم از قبل واضح است که چگونه می‌توانیم این را با مثال سوم خود با جزئیات به سال ادامه دهیم. اما بیایید بهتر است به سال تمرین نکنیم، بلکه فیلتر کنیم - یعنی. یک برش بسازید برای این کار کوئری زیر را می نویسیم:

..کودکان در ردیف‌ها. اعضا در ستون‌ها از جایی که (.) را انتخاب کنید.
فیلتراسیون اینجا کجاست؟

جایی که- کلمه کلیدی
یکی از اعضای سلسله مراتب است . نام کامل، شامل تمام اصطلاحات، خواهد بود: .. ، اما به دلیل از آنجایی که نام این عضو در محور منحصربه‌فرد است، می‌توان تمامی توضیحات میانی نام را حذف کرد.

چرا عبارت تاریخ داخل پرانتز است؟ پرانتز یک تایی است ( چندتایی). یک تاپل یک یا چند مختصات در امتداد است مختلفتبرها به عنوان مثال، برای فیلتر کردن در امتداد دو محور به طور همزمان، در پرانتز دو عبارت از را فهرست می کنیم ناهمساناندازه گیری ها با کاما از هم جدا شده اند. یعنی تاپل یک "برش" از مکعب (یا "فیلتر کردن"، اگر چنین اصطلاحات نزدیکتر باشد) را تعریف می کند.

تاپل برای چیزی بیشتر از فیلتر کردن استفاده می شود. تاپل ها همچنین می توانند در هدر سطرها/ستون ها/صفحات و غیره باشند.

برای مثال برای نمایش نتیجه یک پرس و جو سه بعدی در یک جدول دو بعدی این امر ضروری است.

پیوند متقاطع (...Children, ..Children) را در ردیف‌ها انتخاب کنید. اعضا در ستون‌ها از جایی که (.)
متقاطعیک تابع است. مجموعه‌ای از تاپل‌ها را برمی‌گرداند (بله، یک مجموعه می‌تواند شامل تاپل‌ها باشد!) که از حاصل ضرب دکارتی دو مجموعه حاصل می‌شود. آن ها مجموعه حاصل شامل تمام ترکیبات ممکن از کشورها و سال ها خواهد بود. بنابراین سرصفحه های سطر حاوی یک جفت مقدار خواهند بود: کشور-سال.

سوال این است که نشانگر چه خصوصیات عددی باید نمایش داده شود کجاست؟ در این حالت از معیار پیش فرض تعریف شده برای این مکعب استفاده می شود، یعنی. قیمت سفارش. اگر بخواهیم معیار دیگری استخراج کنیم، به یاد می آوریم که اندازه ها اعضای یک بعد هستند معیارهای. و دقیقاً مانند سایر محورها عمل می کنیم. آن ها فیلتر کردن یک پرس و جو با یکی از معیارها دقیقاً این اندازه را در سلول ها نمایش می دهد.

سوال: تفاوت فیلتر در کجا و فیلتر کردن با تعیین اعضای محور در ردیف ها چیست؟ پاسخ: عملا هیچی. به سادگی در جایی که یک برش برای آن دسته از محورهایی که در تشکیل سرفصل ها شرکت نمی کنند نشان داده شده است. آن ها همان محور نمی تواندهمزمان حضور داشته باشد روی ردیف ها، و در جایی که.

اعضای محاسبه شده

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

با عضو. به‌عنوان '.CurrentMember / ..'، FORMAT_STRING='0.00%' ...کودکان در ردیف‌هایی را که از کجا انتخاب کنید.
محاسبه در بافت سلولی انجام می شود که در آن تمام ویژگی های مختصات آن مشخص است. مختصات (اعضا) مربوطه را می توان با تابع CurrentMember برای هر یک از محورهای مکعب به دست آورد. در اینجا ما باید درک کنیم که عبارت .عضو فعلی/..' یک عبارت را بر دیگری تقسیم نمی کند، بلکه تقسیم می کند داده های انبوه مربوطهبرش های مکعبی! آن ها برش برای قلمرو فعلی به یک برش برای همه مناطق تقسیم می شود، یعنی. ارزش کل تمام سفارشات FORMAT_STRING - قالب را برای نمایش مقادیر تنظیم می کند، به عنوان مثال. ٪.

مثال دیگری از یک عضو محاسبه شده، اما در محور سال:

با عضو. مانند '. - .'
بدیهی است که گزارش شامل یک واحد نخواهد بود، بلکه تفاوت بخش های مربوطه، یعنی. تفاوت در مقدار سفارشات در این دو سال.

نمایش در ROLAP

سیستم های OLAP به نوعی بر اساس نوعی سیستم ذخیره سازی و سازماندهی داده ها هستند. چه زمانی ما در مورددر مورد RDBMS، سپس آنها در مورد ROLAP صحبت می کنند (ما MOLAP و HOLAP را ترک می کنیم خودخوان). ROLAP - OLAP در یک پایگاه داده رابطه ای، به عنوان مثال. در قالب جداول دو بعدی معمولی توضیح داده شده است. سیستم های ROLAP کوئری های MDX را به SQL تبدیل می کنند. مشکل اصلی محاسباتی برای پایگاه داده ها تجمیع سریع است. برای تجمیع سریع‌تر، داده‌های پایگاه داده معمولاً به شدت غیرعادی می‌شوند، به عنوان مثال. از نظر فضای دیسک اشغال شده و نظارت بر یکپارچگی پایگاه داده بسیار کارآمد ذخیره نمی شوند. بعلاوه آنها حاوی جداول کمکی هستند که داده های تا حدی جمع آوری شده را ذخیره می کنند. بنابراین، برای OLAP، معمولاً یک طرح پایگاه داده جداگانه ایجاد می شود که فقط تا حدی ساختار پایگاه داده های اصلی تراکنش را از نظر دایرکتوری ها تکرار می کند.

جهت یابی

بسیاری از سیستم های OLAP ابزارهای ناوبری تعاملی را برای یک پرس و جو از قبل تولید شده (و بر این اساس داده های انتخاب شده) ارائه می دهند. در این مورد، به اصطلاح "حفاری" یا "حفاری" استفاده می شود. ترجمه مناسب تر به روسی کلمه "عمیق کردن" است. اما این موضوع سلیقه ای است، در برخی محیط ها کلمه حفاری گیر کرده است.

مته- این جزئیات گزارش با کاهش درجه تجمیع داده ها، همراه با فیلتر کردن در امتداد برخی از محورهای دیگر (یا چندین محور) است. چندین نوع حفاری وجود دارد:

  • مته کردن- فیلتر کردن در امتداد یکی از محورهای منبع گزارش با نمایش اطلاعات دقیق در مورد فرزندان در سلسله مراتب عضو فیلتر انتخاب شده. به عنوان مثال، اگر گزارشی در مورد توزیع سفارشات به تفکیک کشورها و سال ها وجود داشته باشد، با کلیک بر روی سال 2007، گزارشی به تفکیک همان کشورها و ماه های سال 2007 نمایش داده می شود.
  • سمت مته- فیلتر کردن زیر یک یا چند محور انتخاب شده و حذف تجمع در امتداد یک یا چند محور دیگر. به عنوان مثال، اگر گزارشی در مورد توزیع سفارشات به تفکیک کشورها و سال ها وجود داشته باشد، با کلیک بر روی سال 2007، گزارش دیگری به تفکیک شده، به عنوان مثال، بر اساس کشورها و تامین کنندگان با فیلتر تا سال 2007 نمایش داده می شود.
  • حفاری- حذف تجمع در امتداد همه محورها و فیلتر کردن همزمان در امتداد آنها - به شما امکان می دهد داده های منبع را از جدول واقعیت که مقدار گزارش از آن به دست آمده است مشاهده کنید. آن ها وقتی روی یک مقدار سلول کلیک می کنید، گزارشی با تمام سفارش هایی که این مقدار را داده اند نمایش داده می شود. نوعی حفاری فوری در "عمق" مکعب.
همین. اکنون، اگر تصمیم دارید خود را وقف هوش تجاری و OLAP کنید، وقت آن است که خواندن ادبیات جدی را شروع کنید.

برچسب ها: اضافه کردن برچسب

من مدت زیادی است که ساکن هابر هستم، اما هرگز مقالاتی در مورد مکعب های چند بعدی، OLAP و MDX نخوانده ام، اگرچه موضوع بسیار جالب است و هر روز بیشتر و بیشتر مرتبط می شود.
بر کسی پوشیده نیست که در طول مدت کوتاه توسعه پایگاه های داده، حسابداری الکترونیکی و سیستم های آنلاین، خود داده های زیادی جمع آوری شده است. در حال حاضر، تجزیه و تحلیل کامل از آرشیو، و شاید تلاش برای پیش بینی شرایط برای مدل های مشابه در آینده، نیز مورد توجه است.
از سوی دیگر، شرکت‌های بزرگ، حتی در طول چندین سال، ماه یا حتی هفته‌ها، می‌توانند آنقدر حجم زیادی از داده‌ها را جمع آوری کنند که حتی تجزیه و تحلیل اولیه آنها نیازمند رویکردهای فوق‌العاده و الزامات سخت‌افزاری سخت‌گیرانه است. اینها می توانند سیستم های پردازش تراکنش های بانکی، نمایندگان مبادلات، اپراتورهای تلفنو غیره.
من فکر می کنم همه به خوبی از 2 رویکرد مختلف برای طراحی پایگاه داده آگاه هستند: OLTP و OLAP. رویکرد اول (پردازش تراکنش آنلاین - پردازش تراکنش بلادرنگ) برای جمع‌آوری کارآمد داده‌ها در زمان واقعی طراحی شده است، در حالی که رویکرد دوم (پردازش تحلیلی آنلاین - پردازش تحلیلی بی‌درنگ) به طور خاص با هدف نمونه‌گیری و پردازش داده‌ها در کارآمدترین روش طراحی شده است. مسیر.

بیایید به قابلیت های اصلی مکعب های OLAP مدرن و مشکلاتی که آنها حل می کنند نگاهی بیندازیم (Analysis Services 2005/2008 به عنوان پایه در نظر گرفته شده است):

  • دسترسی سریعبه داده ها
  • پیش تجمع
  • سلسله مراتب
  • کار با زمان
  • زبان دسترسی به داده های چند بعدی
  • KPI (شاخص‌های کلیدی عملکرد)
  • استخراج خرما
  • ذخیره چند سطحی
  • پشتیبانی چند زبانه
بنابراین، اجازه دهید به قابلیت های مکعب های OLAP با کمی جزئیات بیشتر نگاه کنیم.

کمی بیشتر در مورد احتمالات

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

پیش تجمع
علاوه بر بازیابی سریع داده‌های موجود، این قابلیت را نیز فراهم می‌کند تا مقادیر «به احتمال زیاد مورد استفاده» را جمع‌آوری کند. به عنوان مثال، اگر ما رکوردهای روزانه فروش یک محصول خاص را داشته باشیم، سیستم شایدما همچنین می توانیم مبالغ فروش ماهانه و فصلی را پیش جمع آوری کنیم، به این معنی که اگر داده ها را به صورت ماهانه یا فصلی درخواست کنیم، سیستم فوراً نتیجه را به ما می دهد. چرا پیش تجمیع همیشه اتفاق نمی افتد زیرا از نظر تئوری ترکیبات کالا/زمان/غیره ممکن است؟ ممکن است تعداد زیادی وجود داشته باشد، به این معنی که شما باید قوانین روشنی داشته باشید که برای کدام عناصر تجمیع ساخته می شود و برای کدام نه. به طور کلی، موضوع در نظر گرفتن این قوانین و طراحی واقعی تجمعات بسیار گسترده است و به خودی خود شایسته یک مقاله جداگانه است.

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

کار با زمان
از آنجایی که تجزیه و تحلیل داده ها عمدتاً در مناطق زمانی انجام می شود، به زمان در سیستم های OLAP اهمیت ویژه ای داده می شود، به این معنی که با تعریف ساده برای سیستمی که در اینجا زمان داریم، در آینده می توانید به راحتی از توابعی مانند سال به تاریخ، ماه تا تاریخ استفاده کنید. ( دوره از ابتدای سال / ماه تا تاریخ جاری)، دوره موازی (در همان روز یا ماه، اما سال گذشته) و غیره.

زبان دسترسی به داده های چند بعدی
MDX(عبارات چند بعدی) - یک زبان پرس و جو برای دسترسی ساده و کارآمد به ساختارهای داده چند بعدی. و این گویای همه چیز است - چند نمونه در زیر وجود خواهد داشت.

شاخص های کلیدی عملکرد (KPI)
شاخص های اصلی عملکردیک سیستم اندازه گیری مالی و غیر مالی است که به سازمان کمک می کند تا دستیابی به اهداف استراتژیک را تعیین کند. شاخص های کلیدی عملکرد را می توان به سادگی در سیستم های OLAP تعریف کرد و در گزارش ها استفاده کرد.

تاریخ معدن
داده کاوی(داده کاوی) - اساساً، شناسایی الگوهای پنهان یا روابط بین متغیرها در مقادیر زیاد داده.
اصطلاح انگلیسی "داده کاوی" ترجمه واضحی به روسی ندارد (داده کاوی، داده کاوی، اطلاعات کاوی، استخراج داده/اطلاعات) بنابراین در بیشتر موارد در اصل استفاده می شود. موفق ترین ترجمه غیرمستقیم عبارت «داده کاوی» (DMA) است. با این حال، این یک موضوع جداگانه و نه کمتر جالب برای بررسی است.

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

پشتیبانی چند زبانه
بله بله بله. حداقل، Analysis Services 2005/2008 (اگرچه نسخه Enterprise) به طور بومی از چندزبانگی پشتیبانی می کند. کافی است ترجمه پارامترهای رشته داده های خود را ارائه دهید و کلاینتی که زبان خود را مشخص کرده است، داده های محلی را دریافت می کند.

مکعب های چند بعدی

پس این مکعب های چند بعدی دقیقاً چه هستند؟
بیایید فضایی سه بعدی را تصور کنیم که محورهای آن زمان، محصولات و مشتریان است.
یک نقطه در چنین فضایی نشان دهنده این واقعیت است که یکی از خریداران در یک ماه خاص محصول خاصی را خریداری کرده است.

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

مقداری MDX

بنابراین، به احتمال زیاد، زیبایی MDX در این است که نه اینکه چگونه می‌خواهیم داده‌ها را انتخاب کنیم، توضیح دهیم؟ دقیقا چه چیزیما میخواهیم.
مثلا،
انتخاب کنید
( . ) روی ستون ها،
( .، . ) روی ردیف ها
از جانب
جایی که (.، .)

یعنی من تعداد آیفون های فروخته شده در ماه ژوئن و جولای در موزامبیک را می خواهم.
در عین حال توصیف می کنم کهاین داده ای است که من می خواهم و چگونهمن می خواهم آنها را در گزارش ببینم.
زیباست، نه؟

اینجا کمی پیچیده تر است:

WITH MEMBER AverageSpend AS
. / .
انتخاب کنید
(متوسط ​​خرج) در ستون ها،
( ..، .. ) روی ردیف ها
از جانب
جایی که (.)

* این کد منبع با برجسته کننده کد منبع برجسته شده است.

در واقع، ابتدا فرمول محاسبه «میانگین اندازه خرید» را تعیین می‌کنیم و سعی می‌کنیم مقایسه کنیم چه کسی (چه جنسیتی) در یک بازدید از فروشگاه اپل پول بیشتری خرج می‌کند.

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

نتیجه

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

P.S.این اولین پست من در مورد OLAP و اولین انتشار در Habré است - برای بازخورد سازنده بسیار سپاسگزار خواهم بود.
به روز رسانی:من آن را به SQL منتقل کردم، به محض اینکه اجازه ایجاد وبلاگ جدید را بدهند، آن را به OLAP منتقل خواهم کرد.

برچسب ها: اضافه کردن برچسب

به عنوان بخشی از این کار، مسائل زیر در نظر گرفته خواهد شد:

  • مکعب های OLAP چیست؟
  • معیارها، ابعاد، سلسله مراتب چیست؟
  • چه نوع عملیاتی را می توان بر روی مکعب های OLAP انجام داد؟
مفهوم مکعب OLAP

فرض اصلی OLAP چند بعدی بودن در ارائه داده است. در اصطلاح OLAP، مفهوم مکعب یا ابر مکعب برای توصیف فضای داده گسسته چند بعدی استفاده می شود.

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

داده ها- این اطلاعات مربوط به اشیاء و رویدادهای شرکت است که مورد تجزیه و تحلیل قرار می گیرد. حقایق از همان نوع اندازه گیری ها را تشکیل می دهند. اندازه گیری نوع مقدار در یک سلول مکعب است.

اندازه گیری ها- اینها عناصر داده ای هستند که با استفاده از آنها حقایق تجزیه و تحلیل می شوند. مجموعه ای از چنین عناصری یک ویژگی بعد را تشکیل می دهد (به عنوان مثال، روزهای هفته می توانند ویژگی بعد زمانی را تشکیل دهند). در وظایف تجزیه و تحلیل کسب و کار برای شرکت های تجاری، ابعاد اغلب شامل مقوله هایی مانند «زمان»، «فروش»، «محصولات»، «مشتریان»، «کارمندان»، «موقعیت جغرافیایی» است. اندازه گیری ها اغلب هستند ساختارهای سلسله مراتبی، که دسته بندی های منطقی هستند که کاربر می تواند داده های واقعی را تجزیه و تحلیل کند. هر سلسله مراتب می تواند یک یا چند سطح داشته باشد. بنابراین، سلسله مراتب بعد "موقعیت جغرافیایی" ممکن است شامل سطوح "کشور - منطقه - شهر" باشد. در سلسله مراتب زمانی، می‌توانیم به عنوان مثال، ترتیب سطوح زیر را تشخیص دهیم: یک بعد می‌تواند چندین سلسله مراتب داشته باشد (هر سلسله مراتب یک بعد باید همان ویژگی کلیدی جدول ابعاد را داشته باشد).

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

شکل 1 نمونه ای از مکعب طراحی شده برای تجزیه و تحلیل فروش فرآورده های نفتی توسط یک شرکت خاص را بر اساس منطقه نشان می دهد. این مکعب دارای سه بعد (زمان، محصول و منطقه) و یک پیمانه (حجم فروش به صورت پولی) است. مقادیر اندازه گیری در سلول های مربوط به مکعب ذخیره می شود. هر سلول به طور منحصربه‌فرد توسط مجموعه‌ای از اعضای هر بعد مشخص می‌شود که تاپل نامیده می‌شود. برای مثال، سلولی که در گوشه سمت چپ پایین مکعب قرار دارد (شامل مقدار 98399 دلار است) توسط تاپل مشخص می شود [ژوئیه 2005، شرق دور، دیزل]. در اینجا ارزش 98399 دلار حجم فروش (بر حسب پولی) دیزل در خاور دور برای ژوئیه 2005 را نشان می دهد.

همچنین شایان ذکر است که برخی از سلول ها هیچ مقداری ندارند: این سلول ها خالی هستند زیرا جدول واقعیت حاوی داده هایی برای آنها نیست.

برنج. 1.مکعب با اطلاعات فروش فرآورده های نفتی در مناطق مختلف

هدف نهایی از ایجاد چنین مکعب هایی به حداقل رساندن زمان پردازش پرس و جوهایی است که اطلاعات مورد نیاز را از داده های واقعی استخراج می کنند. برای انجام این کار، مکعب ها معمولاً شامل مجموع از پیش محاسبه شده هستند که نامیده می شوند تجمعات(تجمعات). آن ها مکعب فضای داده ای بزرگتر از فضای واقعی را پوشش می دهد - نقاط منطقی و محاسبه شده در آن وجود دارد. توابع تجمع به شما این امکان را می دهد که مقادیر نقاط را در فضای منطقی بر اساس مقادیر واقعی محاسبه کنید. ساده ترین توابع تجمع عبارتند از SUM، MAX، MIN، COUNT. بنابراین، برای مثال، با استفاده از تابع MAX، برای مکعب داده شده در مثال، می توانید تشخیص دهید که اوج فروش دیزل در خاور دور چه زمانی رخ داده است و غیره.

یکی دیگر از ویژگی های خاص مکعب های چند بعدی دشواری در تعیین منشا است. به عنوان مثال، چگونه نقطه 0 را برای بعد محصول یا مناطق تعیین می کنید؟ راه حل این مشکل، معرفی یک ویژگی خاص است که تمام عناصر بعد را ترکیب می کند. این ویژگی (به طور خودکار ایجاد می شود) فقط شامل یک عنصر - همه است. برای توابع تجمع ساده مانند مجموع، عنصر All معادل مجموع مقادیر همه عناصر در فضای واقعی یک بعد معین است.

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

عملیات بر روی مکعب های OLAP

عملیات زیر را می توان بر روی یک مکعب OLAP انجام داد:

  • تکه؛
  • چرخش؛
  • تحکیم؛
  • جزئیات
تکه(شکل 2) یک مورد خاص از یک زیر مکعب است. این روشی برای تشکیل یک زیرمجموعه از یک آرایه داده چند بعدی مربوط به یک مقدار واحد از یک یا چند عنصر بعدی است که در این زیر مجموعه گنجانده نشده است. به عنوان مثال، برای اطلاع از اینکه چگونه فروش فرآورده های نفتی در طول زمان تنها در یک منطقه خاص، یعنی در اورال پیشرفت کرده است، باید بعد "محصولات" را در عنصر "اورال" ثابت کنید و زیرمجموعه (زیر مکعب) مربوطه را از زیر استخراج کنید. مکعب
  • برنج. 2.برش مکعب OLAP

    چرخش(شکل 3) - عملیات تغییر مکان اندازه گیری های ارائه شده در یک گزارش یا در صفحه نمایش داده شده. به عنوان مثال، یک عملیات چرخش ممکن است شامل تنظیم مجدد ردیف ها و ستون های یک جدول باشد. علاوه بر این، چرخش یک مکعب داده، ابعاد خارج از جدول را با ابعاد موجود در صفحه نمایش داده شده در جای خود قرار می دهد و بالعکس.

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

    انبارهای داده (محل OLAP در ساختار اطلاعاتشرکت ها)

    اصطلاح "OLAP" به طور جدایی ناپذیر با اصطلاح "انبار داده" (Data Warehouse) پیوند خورده است.

    در اینجا تعریفی است که توسط «پدر» بنیانگذار انبار داده، بیل اینمون، فرموله شده است: «انبار داده مجموعه‌ای از داده‌های خاص، محدود به زمان و تغییرناپذیر برای پشتیبانی از تصمیم‌گیری مدیریت است.

    داده‌های موجود در انبار از سیستم‌های عملیاتی (سیستم‌های OLTP) می‌آیند که برای خودکارسازی فرآیندهای تجاری طراحی شده‌اند. علاوه بر این، مخزن را می توان از منابع خارجی، مانند گزارش های آماری، پر کرد.

    چرا انبارهای داده بسازیم - به هر حال، آنها حاوی اطلاعات آشکارا اضافی هستند که قبلاً در پایگاه داده ها یا فایل های سیستم عامل "زندگی" دارند؟ پاسخ می تواند مختصر باشد: تجزیه و تحلیل مستقیم داده های سیستم عامل غیرممکن یا بسیار دشوار است. این به دلایل مختلفی از جمله تکه تکه شدن داده ها، ذخیره سازی آن در فرمت های مختلف DBMS و در "گوشه های" مختلف شبکه شرکت است. اما حتی اگر یک شرکت تمام داده های خود را بر روی یک سرور پایگاه داده مرکزی ذخیره کند (که بسیار نادر است)، یک تحلیلگر تقریباً مطمئناً ساختار پیچیده و گاهی گیج کننده آنها را درک نخواهد کرد. نویسنده تجربه بسیار غم انگیزی از تلاش برای "تغذیه" تحلیلگران گرسنه با داده های "خام" سیستم های عملیاتی دارد - معلوم شد که "برای آنها خیلی زیاد" است.

    بنابراین، هدف مخزن ارائه "مواد خام" برای تجزیه و تحلیل در یک مکان و در یک ساختار ساده و قابل درک است. رالف کیمبال، در مقدمه کتاب خود "مجموعه ابزار انبار داده" می نویسد که اگر پس از خواندن کل کتاب، خواننده تنها یک چیز را بفهمد - یعنی ساختار انبار باید ساده باشد - نویسنده به نظر خود می پردازد. کار تکمیل شد.

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

    به نظر من، یک مخزن لزوما به معنای انباشت غول پیکر از داده ها نیست - نکته اصلی این است که برای تجزیه و تحلیل راحت است. به طور کلی، یک اصطلاح جداگانه برای تجهیزات ذخیره سازی کوچک وجود دارد - Data Marts (کیوسک های داده)، اما در روسی ما اغلب آن را نمی شنوید.

    OLAP - یک ابزار تجزیه و تحلیل مناسب

    تمرکز و ساختار مناسب تمام چیزی نیست که یک تحلیلگر به آن نیاز دارد. او هنوز به ابزاری برای مشاهده و تجسم اطلاعات نیاز دارد. گزارش‌های سنتی، حتی آنهایی که بر روی یک مخزن ساخته شده‌اند، فاقد یک چیز هستند - انعطاف‌پذیری. آنها را نمی توان "پیچان"، "بسط" یا "جمع کرد" تا نمای مورد نظر از داده ها را به دست آورد. البته، شما می توانید با یک برنامه نویس تماس بگیرید (اگر می خواهد بیاید) و او (اگر مشغول نیست) به اندازه کافی سریع گزارش جدیدی تهیه می کند - مثلاً ظرف یک ساعت (من این را می نویسم و ​​باور نمی کنم آن را خودم - در زندگی آنقدر سریع اتفاق نمی افتد. معلوم می شود که یک تحلیلگر نمی تواند بیش از دو ایده در روز را آزمایش کند. و او (اگر تحلیلگر خوبی باشد) می تواند در هر ساعت چندین ایده از این دست داشته باشد. و هر چه تحلیلگر «برش‌ها» و «بخش‌های» بیشتری از داده‌ها را ببیند، ایده‌های بیشتری دارد، که به نوبه‌ی خود، «برش‌های» بیشتری را برای تأیید نیاز دارد. اگر فقط ابزاری داشت که به او اجازه می داد داده ها را به سادگی و به راحتی جمع و جور کند! OLAP به عنوان چنین ابزاری عمل می کند.

    اگرچه OLAP یک ویژگی ضروری یک انبار داده نیست، اما به طور فزاینده ای برای تجزیه و تحلیل اطلاعات انباشته شده در انبار استفاده می شود.

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

    برنج. 1. ساختار انبار داده

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

    به طور خلاصه، ما می توانیم OLAP را به عنوان مجموعه ای از ابزارها برای تجزیه و تحلیل چند بعدی داده های انباشته شده در یک انبار تعریف کنیم. از نظر تئوری، ابزارهای OLAP را می توان مستقیماً بر روی داده های عملیاتی یا نسخه های دقیق آنها اعمال کرد (به طوری که با کاربران عملیاتی تداخل نداشته باشد). اما به این ترتیب ما در معرض خطر قرار گرفتن بر روی سطحی که قبلاً در بالا توضیح داده شد، می‌شویم، یعنی شروع به تجزیه و تحلیل داده‌های عملیاتی می‌کنیم که مستقیماً برای تجزیه و تحلیل مناسب نیستند.

    تعریف و مفاهیم اولیه OLAP

    ابتدا، بیایید رمزگشایی کنیم: OLAP یک پردازش تحلیلی آنلاین است، یعنی تجزیه و تحلیل داده های عملیاتی. 12 اصل تعیین کننده OLAP در سال 1993 توسط E. F. Codd، "مخترع" پایگاه داده های رابطه ای فرموله شد. بعداً، تعریف آن به‌اصطلاح آزمون FASMI تغییر یافت، که مستلزم آن است که برنامه OLAP توانایی تجزیه و تحلیل سریع اطلاعات چند بعدی مشترک را ارائه دهد.

    تست FASMI

    سریع(سریع) - تجزیه و تحلیل باید به همان سرعت در تمام جنبه های اطلاعات انجام شود. زمان پاسخ قابل قبول 5 ثانیه یا کمتر است.

    تحلیل و بررسی(تحلیل) - باید بتوان انواع پایه ای از تحلیل های عددی و آماری را که توسط توسعه دهنده برنامه از پیش تعریف شده یا آزادانه توسط کاربر تعریف شده است، انجام داد.

    به اشتراک گذاشته شده است(به اشتراک گذاشته شده) - بسیاری از کاربران باید به داده ها دسترسی داشته باشند، در حالی که کنترل دسترسی به اطلاعات محرمانه ضروری است.

    چند بعدی(چند بعدی) اصلی ترین و ضروری ترین مشخصه OLAP است.

    اطلاعات(اطلاعات) - برنامه باید بدون توجه به حجم و مکان ذخیره سازی آن، بتواند به هر اطلاعات لازم دسترسی داشته باشد.

    OLAP = نمای چند بعدی = مکعب

    OLAP ابزاری راحت و سریع برای دسترسی، مشاهده و تجزیه و تحلیل اطلاعات کسب و کار فراهم می کند. کاربر یک مدل داده طبیعی و بصری دریافت می کند و آنها را به شکل مکعب های چند بعدی (مکعب) سازماندهی می کند. محورهای سیستم مختصات چند بعدی ویژگی های اصلی فرآیند تجاری تحلیل شده است. به عنوان مثال، برای فروش می تواند محصول، منطقه، نوع خریدار باشد. زمان به عنوان یکی از ابعاد استفاده می شود. در تقاطع محورها - ابعاد (ابعاد) - داده هایی وجود دارد که از نظر کمی فرآیند را مشخص می کند - اندازه گیری ها (Measures). این می تواند حجم فروش به صورت قطعه ای یا به صورت پولی، موجودی سهام، هزینه ها و غیره باشد. کاربر با تجزیه و تحلیل اطلاعات می تواند مکعب را بر اساس جهت های مختلف، خلاصه (مثلاً بر اساس سال) یا برعکس، جزئیات (بر اساس هفته) را دریافت کند و دستکاری های دیگری را که در طول فرآیند تحلیل به ذهن او می رسد انجام دهد.

    همانطور که در مکعب سه بعدی نشان داده شده در شکل. 2، مقادیر فروش استفاده می شود و زمان، محصول و فروشگاه به عنوان ابعاد استفاده می شود. اندازه‌گیری‌ها در سطوح خاصی از گروه‌بندی ارائه می‌شوند: محصولات براساس دسته‌بندی گروه‌بندی می‌شوند، فروشگاه‌ها بر اساس کشور گروه‌بندی می‌شوند، و داده‌های زمان‌بندی تراکنش براساس ماه گروه‌بندی می‌شوند. کمی بعد با جزئیات بیشتری به سطوح گروه بندی (سلسله مراتب) خواهیم پرداخت.


    برنج. 2. مثال مکعب

    "برش" یک مکعب

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

    یک نمایش دو بعدی از یک مکعب را می توان با "برش" آن در یک یا چند محور (بعد) به دست آورد: مقادیر همه ابعاد به جز دو را ثابت می کنیم و یک جدول دو بعدی منظم به دست می آوریم. محور افقی جدول (سربرگ ستون ها) یک بعد، محور عمودی (سرصفحه های ردیف) نشان دهنده بعد دیگر و سلول های جدول مقادیر اندازه گیری ها را نشان می دهد. در این حالت، مجموعه ای از اندازه گیری ها در واقع به عنوان یکی از ابعاد در نظر گرفته می شود - ما یا یک اندازه را برای نمایش انتخاب می کنیم (و سپس می توانیم دو بعد را در عنوان ردیف و ستون قرار دهیم)، یا چندین اندازه را نشان می دهیم (و سپس یکی از محورهای جدول با نام اندازه گیری ها اشغال می شود و دیگری - مقادیر تنها بعد "برش نشده").

    به انجیر نگاهی بیندازید. 3 - در اینجا یک برش دو بعدی از مکعب برای یک پیمانه - فروش واحد (قطعات فروخته شده) و دو بعد "بریده نشده" - فروشگاه (فروشگاه) و زمان (زمان) آورده شده است.


    برنج. 3. برش مکعب 2 بعدی برای یک پیمانه

    در شکل شکل 4 تنها یک بعد «برش‌نخورده» را نشان می‌دهد - فروشگاه، اما مقادیر چندین معیار - فروش واحد (واحد فروخته شده)، فروش فروشگاه (مبلغ فروش) و هزینه فروشگاه (هزینه‌های فروشگاه) را نشان می‌دهد.


    برنج. 4. برش مکعب 2 بعدی برای اقدامات متعدد

    نمایش دو بعدی یک مکعب نیز زمانی امکان پذیر است که بیش از دو بعد "بریده نشده" باقی بماند. در این حالت، دو یا چند بعد از مکعب "برش" روی محورهای برش (ردیف ها و ستون ها) قرار می گیرد - به شکل 1 مراجعه کنید. 5.


    برنج. 5. تکه مکعب دوبعدی با ابعاد متعدد در یک محور

    برچسب ها

    مقادیر " گذاشته شده " در امتداد ابعاد، اعضا یا برچسب نامیده می شوند. برچسب‌ها هم برای «برش» مکعب و هم برای محدود کردن (فیلتر کردن) داده‌های انتخابی استفاده می‌شوند - زمانی که در ابعادی که «برش‌نخورده» باقی می‌ماند، ما به همه مقادیر علاقه‌مند نیستیم، بلکه به زیرمجموعه‌ای از آنها علاقه‌مندیم، مثلاً به سه شهر. از چند ده مقادیر برچسب در نمای مکعب دوبعدی به عنوان سرفصل های ردیف و ستون ظاهر می شوند.

    سلسله مراتب و سطوح

    برچسب ها را می توان در سلسله مراتب متشکل از یک یا چند سطح ترکیب کرد. برای مثال، برچسب‌های بعد فروشگاه به طور طبیعی در یک سلسله مراتب با سطوح گروه‌بندی می‌شوند:

    کشور

    حالت

    شهر

    فروشگاه.

    مقادیر کل بر اساس سطوح سلسله مراتبی محاسبه می شود، به عنوان مثال حجم فروش برای ایالات متحده آمریکا (سطح "کشور") یا برای کالیفرنیا (سطح "ایالت"). می توان بیش از یک سلسله مراتب را در یک بعد پیاده سازی کرد - مثلاً برای زمان: (سال، ربع، ماه، روز) و (سال، هفته، روز).

    معماری برنامه های OLAP

    همه آنچه در بالا در مورد OLAP گفته شد اساساً به ارائه چند بعدی داده ها مربوط می شود. نحوه ذخیره سازی داده ها، به طور کلی، به کاربر نهایی و توسعه دهندگان ابزاری که مشتری استفاده می کند مربوط نمی شود.

    چند بعدی بودن در برنامه های OLAP را می توان به سه سطح تقسیم کرد:

    • نمایش داده های چند بعدی - ابزارهای کاربر نهایی که تجسم چند بعدی و دستکاری داده ها را ارائه می دهند. لایه نمایش چند بعدیاز ساختار فیزیکی داده ها انتزاع می کند و داده ها را چند بعدی می داند.
    • پردازش چند بعدی - ابزاری (زبان) برای فرمول بندی پرس و جوهای چند بعدی (رابطه ای سنتی) زبان SQLمعلوم می شود که در اینجا نامناسب است) و پردازنده ای که قادر به پردازش و اجرای چنین درخواستی است.
    • ذخیره سازی چند بعدی وسیله ای برای سازماندهی فیزیکی داده ها است که اجرای کارآمد پرس و جوهای چند بعدی را تضمین می کند.

    دو سطح اول در همه ابزارهای OLAP اجباری است. سطح سوم، اگرچه گسترده است، اما ضروری نیست، زیرا داده های یک نمایش چند بعدی را می توان از ساختارهای رابطه ای معمولی استخراج کرد. پردازشگر پرس و جو چند بعدی در این مورد پرس و جوهای چند بعدی را به پرس و جوهای SQL ترجمه می کند که توسط DBMS رابطه ای اجرا می شوند.

    محصولات خاص OLAP، به عنوان یک قاعده، یا یک ابزار نمایش داده چند بعدی، یک کلاینت OLAP (به عنوان مثال، Pivot Tables در Excel 2000 از Microsoft یا ProClarity از Knosys)، یا یک سرور چند بعدی DBMS، یک سرور OLAP (به عنوان مثال، Oracle) هستند. سرور اکسپرس یا خدمات مایکروسافت OLAP).

    لایه پردازش چند بعدی معمولاً در سرویس گیرنده OLAP و/یا سرور OLAP ساخته می شود، اما می تواند به شکل خالص آن مانند مؤلفه Pivot Table Service مایکروسافت جدا شود.

    جنبه های فنی ذخیره سازی داده های چند بعدی

    همانطور که در بالا ذکر شد، ابزارهای تحلیل OLAP همچنین می توانند داده ها را مستقیماً از سیستم های رابطه ای استخراج کنند. این رویکرد در آن روزها که سرورهای OLAP در لیست قیمت سازندگان پیشرو DBMS قرار نمی گرفتند، جذاب تر بود. اما امروزه، Oracle، Informix، و Microsoft سرورهای OLAP تمام عیار را ارائه می دهند، و حتی آن دسته از مدیران IT که دوست ندارند یک "باغ وحش" نرم افزار از تولید کنندگان مختلف در شبکه های خود ایجاد کنند، می توانند خرید کنند (یا بهتر است بگوییم، درخواست مربوطه را به مدیریت شرکت ) سرور OLAP با همان نام تجاری سرور اصلی پایگاه داده.

    سرورهای OLAP یا سرورهای پایگاه داده چند بعدی می توانند داده های چند بعدی خود را به روش های مختلف ذخیره کنند. قبل از در نظر گرفتن این روش ها، باید در مورد جنبه مهمی مانند ذخیره سازی واحدها صحبت کنیم. واقعیت این است که در هر انبار داده - اعم از معمولی و چند بعدی - به همراه داده های دقیق استخراج شده از سیستم های عملیاتی، شاخص های خلاصه (شاخص های تجمیع، تجمیع) نیز ذخیره می شود، مانند مجموع حجم فروش به تفکیک ماه، طبقه بندی کالاها و غیره. انبوه ها به صراحت تنها با هدف تسریع در اجرای پرس و جوها ذخیره می شوند. از این گذشته ، از یک طرف ، به عنوان یک قاعده ، حجم بسیار زیادی از داده ها در انبار انباشته می شود ، و از طرف دیگر ، تحلیلگران در بیشتر موارد به شاخص های دقیق ، بلکه به شاخص های تعمیم یافته علاقه مند هستند. و اگر برای محاسبه کل فروش سال باید هر بار میلیون ها فروش جداگانه جمع شود، به احتمال زیاد سرعت غیر قابل قبول خواهد بود. بنابراین، هنگام بارگذاری داده ها در یک پایگاه داده چند بعدی، تمام شاخص ها یا بخشی از آنها محاسبه و ذخیره می شوند.

    اما، همانطور که می دانید، شما باید برای همه چیز هزینه کنید. و برای سرعت پردازش درخواست ها برای داده های خلاصه، باید برای افزایش حجم داده ها و زمان بارگذاری آنها هزینه کنید. علاوه بر این، افزایش حجم می تواند به معنای واقعی کلمه فاجعه بار باشد - در یکی از موارد منتشر شده آزمونهای استانداردمحاسبه کامل مجموع ها برای 10 مگابایت داده اصلی نیاز به 2.4 گیگابایت دارد، یعنی داده ها 240 برابر شده اند! درجه "تورم" داده ها هنگام محاسبه انبوه ها به تعداد ابعاد مکعب و ساختار این ابعاد بستگی دارد، یعنی نسبت تعداد "پدرها" و "فرزندان" در سطوح مختلف اندازه گیری. برای حل مشکل ذخیره سازی انبوه ها، گاهی اوقات از طرح های پیچیده استفاده می شود که امکان دستیابی به افزایش قابل توجهی در عملکرد پرس و جو هنگام محاسبه نه همه انباشته های ممکن را فراهم می کند.

    اکنون در مورد گزینه های مختلف برای ذخیره اطلاعات. هم داده‌های دانه‌ای و هم می‌توانند در ساختارهای رابطه‌ای یا چند بعدی ذخیره شوند. ذخیره سازی چند بعدی به شما امکان می دهد داده ها را به عنوان یک آرایه چند بعدی در نظر بگیرید که محاسبات سریع کل شاخص ها و تبدیل های چند بعدی مختلف را در هر یک از ابعاد تضمین می کند. مدتی پیش، محصولات OLAP از ذخیره سازی رابطه ای یا چند بعدی پشتیبانی می کردند. امروزه، به عنوان یک قاعده، همان محصول هر دو نوع ذخیره سازی و همچنین نوع سوم - مخلوط را فراهم می کند. شرایط زیر اعمال می شود:

    • MOLAP(OLAP چند بعدی) - هم داده های دقیق و هم مجموعه ها در یک پایگاه داده چند بعدی ذخیره می شوند. در این حالت، بیشترین افزونگی به دست می آید، زیرا داده های چند بعدی کاملاً حاوی داده های رابطه ای هستند.
    • ROLAP(OLAP رابطه ای) - داده های دقیق در جایی که در ابتدا "زندگی می کرد" - در پایگاه داده رابطه ای باقی می ماند. انباشته ها در یک پایگاه داده در جداول خدمات ویژه ایجاد شده ذخیره می شوند.
    • HOLAP(OLAP ترکیبی) - داده های دقیق در محل خود باقی می مانند (در یک پایگاه داده رابطه ای) و مجموعه ها در یک پایگاه داده چند بعدی ذخیره می شوند.

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

    هنگام ذخیره سازی داده ها در ساختارهای چند بعدی، یک مشکل بالقوه "نفخ" به دلیل ذخیره مقادیر خالی وجود دارد. از این گذشته، اگر در یک آرایه چندبعدی فضایی برای همه ترکیب‌های ممکن از برچسب‌های ابعادی در نظر گرفته شده باشد، اما در واقع فقط بخش کوچکی پر شده باشد (مثلاً تعدادی از محصولات فقط در تعداد کمی از مناطق فروخته می‌شوند)، آنگاه بیشتر مکعب خالی خواهد بود، اگرچه فضا اشغال خواهد شد. محصولات مدرن OLAP می توانند با این مشکل کنار بیایند.

    ادامه دارد. در آینده در مورد محصولات خاص OLAP تولید شده توسط تولید کنندگان پیشرو صحبت خواهیم کرد.

    04/07/2011 درک کامینگور

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

    مکعب چیست؟

    پایگاه داده های رابطه ای برای رسیدگی به هزاران تراکنش همزمان با حفظ عملکرد و یکپارچگی داده ها طراحی شده اند. با طراحی، پایگاه های داده رابطه ای در جمع آوری و جستجوی حجم زیادی از داده ها کارآمد نیستند. برای جمع آوری و بازگرداندن حجم زیادی از داده ها، یک پایگاه داده رابطه ای باید یک پرس و جو مبتنی بر مجموعه را دریافت کند، که اطلاعات آن در لحظه جمع آوری و تجمیع می شود. چنین پرس‌و‌جوهای رابطه‌ای بسیار پرهزینه هستند، زیرا به چندین اتصال و اتصال متکی هستند توابع جمع; پرس و جوهای رابطه ای انبوه به ویژه هنگام کار با داده های زیاد بی اثر هستند.

    مکعب ها موجودیت های چند بعدی هستند که برای رفع این کمبود در پایگاه های داده رابطه ای طراحی شده اند. با استفاده از یک مکعب، می‌توانید ساختار داده‌ای را در اختیار کاربران قرار دهید که پاسخ سریع به پرس‌و‌جوها با حجم‌های تجمعی زیاد را ارائه می‌دهد. مکعب‌ها این «جادوی تجمع» را با جمع‌آوری داده‌ها (ابعاد) در ابعاد چندگانه انجام می‌دهند. قبل از تجمع مکعب معمولاً در طول پردازش انجام می شود. هنگامی که یک مکعب را پردازش می کنید، تجمیع داده های از پیش محاسبه شده را تولید می کنید که به شکل باینری روی دیسک ذخیره می شوند.

    مکعب ساختار داده مرکزی در است سیستم عاملتجزیه و تحلیل داده های OLAP سرویس های تحلیلی سرور SQL (SSAS). مکعب ها معمولاً از یک پایگاه داده رابطه ای زیربنایی به نام مدل بعدی ساخته می شوند، اما موجودیت های فنی جداگانه ای هستند. از نظر منطقی، مکعب یک انبار داده است که از ابعاد (ابعاد) و اندازه‌گیری‌ها (اندازه‌ها) تشکیل شده است. ابعاد شامل ویژگی ها و سلسله مراتب توصیفی هستند، در حالی که ابعاد حقایقی هستند که شما در ابعاد توصیف می کنید. ابعاد در ترکیبات منطقی به نام گروه های بعدی گروه بندی می شوند. شما ابعاد را به گروه های اندازه گیری بر اساس یک مشخصه مرتبط می کنید - درجه جزئیات.

    که در سیستم فایلیک مکعب به عنوان دنباله ای از فایل های باینری پیوند شده پیاده سازی می شود. معماری باینری مکعب، بازیابی سریع حجم زیادی از داده های چند بعدی را تسهیل می کند.

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

    لطفا توجه داشته باشید که مدل های ابعادی بر اساس کاربرد طبقه بندی می شوند. دیتا مارت یک مدل بعدی است که برای یک فرآیند تجاری واحد، مانند مدیریت فروش یا موجودی، طراحی شده است. انبار داده یک مدل ابعادی است که برای ثبت فرآیندهای تجاری اجزا طراحی شده است، به طوری که تجزیه و تحلیل فرآیند بین کسب و کار را تسهیل می کند.

    الزامات نرم افزاری

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

    مکعب فروش اینترنتی من از پایگاه داده آزمایشی AdventureWorksDW 2005 ساخته خواهد شد. شکل 1 طرح اولیه جداول پایگاه داده را نشان می دهد. از آنجایی که من از نسخه 2005 استفاده می کنم، می توانید دستورالعمل های من را با استفاده از SQL Server 2005 یا SQL Server 2008 دنبال کنید.

    شکل 1. زیرمجموعه Adventure Works Internet Sales mart

    پایگاه داده آموزشی Adventure WorksDW 2005 را می توان در وب سایت CodePlex یافت: msftdbprodsamples.codeplex.com. پیوند «پایگاه‌های اطلاعاتی نمونه محصول SQL Server 2005 هنوز موجود است» را بیابید (http://codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004). پایگاه داده آموزشی در فایل AdventureWorksBI.msi (http://msftdbprodsamples.codeplex.com/releases/view/4004#DownloadId=11755) موجود است.

    همانطور که گفته شد، شما باید به یک نمونه از SQL Server 2008 یا 2005، از جمله اجزای SSAS و Business Intelligence Development Studio (BIDS) دسترسی داشته باشید. من از SQL Server 2008 استفاده خواهم کرد، بنابراین اگر از SQL Server 2005 استفاده می کنید، ممکن است تفاوت های ظریفی را مشاهده کنید.

    ایجاد یک پروژه SSAS

    اولین کاری که باید انجام دهید این است که یک پروژه SSAS با استفاده از BIDS ایجاد کنید. BIDS را در منوی Start و سپس در منو پیدا کنید مایکروسافت SQL Server 2008/2005 زیر آیتم SQL Server Business Intelligence Development Studio. با کلیک بر روی این دکمه، BIDS با صفحه نمایش پیش فرض پخش می شود. ايجاد كردن پروژه جدید SSAS با انتخاب File, New, Project. کادر محاوره ای New Project را می بینید که شکل 1 نشان می دهد پوشه Analysis Services Project را انتخاب کرده و توضیحات پروژه را روی SQLMAG_MyFirstCube تنظیم کنید. روی OK کلیک کنید.

    پس از ایجاد پروژه، روی آن در Solution Explorer کلیک راست کرده و انتخاب کنید منوی زمینهمورد خواص. اکنون بخش Deployment را در سمت چپ کادر محاوره‌ای SQLMAG_MyFirstCube: Property Pages انتخاب کنید و تنظیمات Target Server و Database را بررسی کنید، همانطور که در شکل 2 نشان داده شده است ویژگی Target Server با نام سروری که قرار است در آن مستقر شوید. وقتی از تنظیمات استقرار این پروژه SSAS راضی هستید، روی OK کلیک کنید.

    تعریف منبع داده

    اولین شیئی که باید ایجاد کنید منبع داده است. یک شی منبع داده، طرح و داده های مورد استفاده برای ساخت اشیاء مرتبط با و در پایه مکعب را فراهم می کند. برای ایجاد یک شی منبع داده در BIDS، از Source Wizard استفاده کنید داده هاجادوگر منبع.

    با کلیک راست بر روی پوشه Data Source در پنل Solution Explorer و انتخاب New Data Source، جادوگر Data Source را شروع کنید. متوجه خواهید شد که ایجاد اشیاء SSAS در BIDS ماهیت توسعه ای دارد. ویزارد ابتدا شما را در فرآیند ایجاد شی و تنظیمات کلی راهنمایی می کند. و سپس شی SSAS به دست آمده را در طراح باز می کنید و در صورت لزوم آن را با جزئیات سفارشی می کنید. هنگامی که از صفحه اعلان عبور کردید، با کلیک کردن بر روی دکمه New یک اتصال داده جدید تعریف کنید. یک اتصال جدید بر اساس Native OLEDB\SQL Server Native Client 10 با اشاره به اتصالی که می خواهید انتخاب کنید و ایجاد کنید. سرور SQLسروری که نمونه پایگاه داده مورد نظر را در اختیار دارد. بسته به تنظیمات محیط SQL Server می توانید از احراز هویت ویندوز یا SQL Server استفاده کنید. برای اطمینان از اینکه اتصال پایگاه داده را به درستی شناسایی کرده اید، روی دکمه Test Connection کلیک کنید و سپس روی OK کلیک کنید.

    در مرحله بعدی اطلاعات جعل هویت قرار می گیرد که مانند ارتباط داده ها به نحوه ساختار محیط SQL Server بستگی دارد. قرض گرفتن امتیاز زمینه امنیتی است که SSAS هنگام پردازش اشیاء خود به آن متکی است. اگر استقرار خود را بر روی یک سرور اصلی، تک (یا لپ‌تاپ) مدیریت می‌کنید، همانطور که تصور می‌کنم اکثر خوانندگان اینگونه هستند، می‌توانید به سادگی گزینه Use the service account را انتخاب کنید. برای تکمیل Data Source Wizard روی Next کلیک کنید و AWDW2005 را به عنوان نام منبع داده تنظیم کنید. این کاملاً راحت است که می توانید از این روش برای اهداف آزمایشی استفاده کنید، اما در یک محیط تولید واقعی این بهترین نیست. بهترین تمرین- از یک حساب سرویس استفاده کنید. بهتر است دامنه را مشخص کنید حساب هابرای قرض گرفتن حقوق اتصال SSAS به منبع داده.

    نمای منبع داده

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

    بیایید جلو برویم و روی پوشه DSV کلیک راست کرده و New Data Source View را انتخاب کنیم تا جادوگر Create New DSV View Wizard را اجرا کنیم. در کادر محاوره ای، در مرحله Select a Data Source، یک اتصال پایگاه داده رابطه ای را انتخاب کرده و روی Next کلیک کنید. جداول FactInternetSales، DimProduct، DimTime، DimCustomer را انتخاب کنید و روی دکمه فلش سمت راست کلیک کنید تا این جداول به ستون Included منتقل شوند. در نهایت روی Next کلیک کنید و با پذیرفتن نام پیش فرض و کلیک بر روی Finish، ویزارد را تکمیل کنید.

    در این مرحله، شما باید یک نمای DSV در زیر پوشه Data Source Views در Solution Explorer داشته باشید. روی DSV جدید دوبار کلیک کنید تا طراح DSV راه اندازی شود. همانطور که در شکل 2 نشان داده شده است، باید هر چهار جدول را برای یک DSV مشخص ببینید.

    ایجاد ابعاد پایگاه داده

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

    پایگاه داده و ابعاد مکعب راه حلی زیبا برای مفهومی به نام "ابعاد نقش" ارائه می دهند. ابعاد نقش محور زمانی استفاده می شود که شما نیاز دارید چندین بار از یک بعد در یک مکعب استفاده کنید. تاریخ یک مثال عالی در این نمونه مکعبی است: شما یک بعد تاریخ واحد می سازید و برای هر تاریخی که می خواهید فروش آنلاین را تجزیه و تحلیل کنید، یک بار به آن ارجاع می دهید. تاریخ تقویم اولین بعدی خواهد بود که ایجاد می کنید. روی پوشه Dimensions در Solution Explorer کلیک راست کرده و New Dimension را انتخاب کنید تا Dimension Wizard راه اندازی شود. استفاده از جدول موجود را انتخاب کرده و در مرحله Select Creation Method روی Next کلیک کنید. در مرحله Specify Source Information، جدول DimTime را در لیست کشویی Main table مشخص کرده و روی Next کلیک کنید. حال در مرحله Select Dimension Attributes باید ویژگی های بعد زمان را انتخاب کنید. همانطور که در شکل 3 نشان داده شده است، هر ویژگی را انتخاب کنید.

    روی Next کلیک کنید. در مرحله آخر، Dim Date را در قسمت Name وارد کرده و روی Finish کلیک کنید تا Dimension Wizard کامل شود. اکنون باید بعد Dim Date جدید را در زیر پوشه Dimensions در Solution Explorer ببینید.

    سپس از Dimension Wizard برای ایجاد ابعاد محصول و مشتری استفاده کنید. برای ایجاد بعد پایه همان مراحل قبلی را دنبال کنید. هنگام کار با Dimension Wizard، مطمئن شوید که تمام ویژگی های بالقوه را در مرحله Select Dimension Attributes انتخاب کرده اید. مقادیر پیش‌فرض برای سایر تنظیمات برای نمونه مکعب تست مناسب است.

    ایجاد یک مکعب فروش اینترنتی

    اکنون که ابعاد پایگاه داده را آماده کرده اید، می توانید ساخت مکعب را شروع کنید. در Solution Explorer، روی پوشه Cubes کلیک راست کرده و New Cube را انتخاب کنید تا Cube Wizard راه اندازی شود. در پنجره انتخاب روش ایجاد، گزینه استفاده از جداول موجود را انتخاب کنید. در مرحله Select Measure Group Tables جدول FactInternetSales را برای Measure Group انتخاب کنید. در مرحله Select Measures علامت کادرهای کنار کلید تبلیغاتی، کلید ارز، کلید منطقه فروش و شماره تجدیدنظر را بردارید و روی Next کلیک کنید.

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

    برای رفتن به مرحله تکمیل جادوگر روی Next کلیک کنید و در قسمت Cube Name عبارت My First Cube را وارد کنید. برای تکمیل فرآیند Create Cube Wizard روی دکمه Finish کلیک کنید.

    بسط و پردازش یک مکعب

    اکنون شما آماده استقرار و پردازش اولین مکعب هستید. روی نماد مکعب جدید در Solution Explorer کلیک راست کرده و Process را انتخاب کنید. باکس پیامی خواهید دید که به نظر می رسد محتوا قدیمی است. برای استقرار مکعب جدید در سرور SSAS مورد نظر، روی Yes کلیک کنید. هنگامی که یک مکعب را مستقر می کنید، ارسال می کنید فایل XMLبرای تجزیه و تحلیل (XMLA) به سرور SSAS هدف، که یک مکعب در خود سرور ایجاد می کند. همانطور که گفته شد، پردازش یک مکعب باینری های آن را روی دیسک با داده هایی از منبع اصلی و همچنین ابرداده های اضافی که اضافه کرده اید (ابعاد، ابعاد و تنظیمات مکعب) پر می کند.

    هنگامی که فرآیند استقرار کامل شد، یک کادر محاوره ای مکعب فرآیند ظاهر می شود. برای شروع پردازش مکعب، که با پنجره Process Progress باز می شود، روی دکمه Run کلیک کنید. هنگامی که پردازش کامل شد، روی Close کلیک کنید (دو بار برای بسته شدن هر دو کادر محاوره ای) تا فرآیندهای استقرار و پردازش مکعب تکمیل شود.

    شما اکنون اولین مکعب خود را ساخته، استقرار و پردازش کرده اید. با کلیک راست روی آن در پنجره Solution Explorer و انتخاب Browse می توانید این مکعب جدید را مشاهده کنید. ابعاد را به مرکز جدول محوری و ویژگی های ابعاد را روی ردیف ها و ستون ها بکشید تا مکعب جدید خود را کاوش کنید. توجه کنید که مکعب با چه سرعتی پرس و جوهای مختلف تجمع را پردازش می کند. اکنون می توانید از قدرت نامحدود و در نتیجه ارزش تجاری مکعب OLAP قدردانی کنید.

    درک کامینگور ( [ایمیل محافظت شده]) یک معمار ارشد در B.I Voyage است که دارای وضعیت شریک مایکروسافت در زمینه تجزیه و تحلیل تجاری است. دارای عنوان SQL Server MVP و چندین گواهینامه مایکروسافت





  • 
    بالا