مجتبی نمازی فرد
مجتبی نمازی فرد
خواندن ۱۳ دقیقه·۴ سال پیش

انبار داده (data warehouse)

چکیده

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


مقدمه

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


بیان مسئله

می توان تعاریف مختلفی را برای Data warehouseداشته باشیم:

1- تعریف Ralph Kimball از انباره داده : یک DW نسخه ای از داده های تراکنشی است که به صورت اختصاصی برای پرس و جو ها و گزارش گیری،سازمان دهی شده است.

گرچه به این تعریف دو ایراد وارد است:که اولاً گاهی داده هایی که در یک DW ذخیره می شوند ،غیرتراکنشی هستند . اگرچه معمولاً 95 تا 99 درصد داده ها تراکنشی هستند . ثانیاً خروجی اصلی سیستم های DW ، لیست گیری های فهرست وار (queries) در حجم کم و یا گزارش های اداری در حجم زیاد هستند.

2- اگر تعاریف زیر برقرار باشد:

داده : حقیقت قابل مشاهده ، فایل ضبط شده

اطلاعات : مجموعه سازماندهی شده از داده ها ؛ داده های با ارتباط و هدف

سیستم عملیاتی : محیطی از داده ها و برنامه های لازم برای ادامه فعالیتهای یک سازمان

انبار داده ی اطلاعی :مجموعه ای از داده و برنامه ها، برای "تحلیل" و "تصمیم گیری "، جدا از سیستم عملیاتی

یک انباره داده(DW) معماری جداگانه ای است برای نگهداری داده های حساس تاریخی که این داده ها از انبار داده های عملیاتی به دست آمده اند و به صورتی قابل درک برای عملیات تحلیل سازمان درآمده اند.

3- یک تعریف از : W.H.INMON

یک DW مجموعه ای از اطلاعات یکپارچه که دارای قابلیت آنالیز کردن و استخراج داده ها (query)میباشد

بعضی از خصوصیاتData warehouse ها از این قرارند :

1) یکپارچه بودن

2) متغیر با زمان

3) غیر فرار

4) موضوع گرا (Subject-oriented)


تاریخچه:

بعد از رشد استفاده از TPS (Transaction processing system)ها به عنوان سیستمهای پردازش تراکنش در بخش های عملیاتی سازمان، نیاز جدی به سیستمهای اطلاعاتی که بتوانند عملیات گزارش گیری را علی الخصوص در رده گزارشهای مدیریتی ساماندهی کنند احساس می شد. علی الخصوص بوجود آمدن تعدد فنآوریها، سیستمهایی که به صورت جدا از هم فعالیت می کرد و امکان تهیه گزارشات ترکیبی از اطلاعات سیستمهای مختلف و انجام پرس و جو ها را مشکل و یا غیر ممکن می نمود.

بنابراین حرکت به سمت سیستمهای اطلاعات مدیریت (Management Information System) و بویژه سیستمهای گزارشگیری مدیریتی (MRS: Management Reporting System) آغاز شد. اما مشکل آنجا بود که این سیستمها به شدت به TPS ها وابسته بودند و داده هایشان اغلب یکی بود. این باعث می شد که تغییر یکی باعث انتشار تغییرات در همه سیستمها شود. از سوی دیگر ساختار داده ای مشابه، امکان تهیه گزارشات زمانی و موضوعی را مشکل می ساخت. این شد که مدل جدیدی از تفکر ایجاد شد به نام انباره داده ها.


دلایل استفاده از DW ها :

1) تهیه گزارشات (Reports) و انجام پرس و جو هایی (Query) که نیاز به عملیات ورودی/خروجی(IO) بسیاری هستند: از اهداف سیستمهای پردازش تراکنش (TPS:Transaction Processing System) آن است که گزارشات مورد نیاز بخش های عملیاتی و مدیریتی را تولید کنند. تهیه این گزارشات معمولا سخت و باحجم زیاد IO همراه است و باعث کند شدن خود سیستمها می گردد. بنابراین شرکت های تجاری به دنبال راهی هستند تا در کمترین زمان و با کمترین هزینه به سیستم هایی دست یابند که زمان پردازش تراکنش ها در آن ها قابل قبول باشد . بهترین راهکار استفاده از DW هایی بود که از منابع IO مجزایی برای گزارش گیری و انجام پرس و جو استفاده می کردند.

2) استفاده از مدل های داده ای و یا تکنولوژی های سرور به منظور بالا بردن سرعت عملیات گزارش گیری و پرس و جو ها که سیستم های عادی پردازش تراکنش ها(TPS) برای آن ها مناسب نیست.

3) ایجاد محیطی برای تسهیل و آسان نمودن به دست آوردن گزارش ها و پرس و جو ها و یا ایجاد وسیله ای برای سرعت بخشیدن به عملیات گزارش گیری: اغلب می توان DW ای ساخت که کاربرانی باسطح آگاهی کمتر بتوانند گزارش ها و پرس و جوهای ساده ای را تهیه کنند .

4) برای ایجاد انباری از داده های تصفیه شده ی سیستم های پردازش تراکنش ها(TPS)که می توانند به طور پیوسته گزارش از آن تهیه نمود. این انبار الزاماً احتیاجی به ثابت بودن TPS ها ندارد : DW ها این امکان را به شما می دهند که داده ها را بدون تغییر دادن سیستم های پردازش تراکنش ها ،تصفیه کنند. (clean up) توجه کنید که در برخی از پیاده سازی ها ، DW ها به گونه ای هستند که در آن ها امکان یافتن اصلاحات انجام شده بر روی داده های DW و فرستادن feedback بهTPS ها برای اعلام این تغییرات ، وجود دارد. گاهی اوقات این گونه رفتار کردن با تغییرات داده ها بامعناتر از این است که تغییرات را به طور مستقیم بر روی خود TPS ها اعمال کنیم .

5) برای آن که بر اساس قواعد ، گزارش گیری و پژوهش را بر روی داده هایی که از چندین TPS مختلف می آیند و یا از یک منبع داده ای خارجی می آیند، یا اینکه داده هایی هستند که تنها برای گزارش گیری و انجام تحقیقات باید ذخیره شوند ، تسهیل بخشیم:برای مدت زمان مدیدی ، شرکت هایی که نیاز به گزارش هایی بر پایه ی داده های چندین TPS مختلف ، داشتند ؛ مجبور بودند داده های هر TPS را بیرون کشیده ، سپس آن ها را مرتب نموده و در هم ادغام نمایند تا به داده ی چکیده ای برسند که مناسب گزارش گیری است .در بسیاری از موارد این روش مناسب است. اما در شرکت هایی که با حجم عظیمی از داده هایی مواجه هستند که مرتباً نیاز به مرتب سازی و ادغام دارند ؛ در صورتی که نیاز به گزارش گیری از داده های تصفیه شده ی TPS ها داشته باشیم ؛ DW ها کارایی بیشتری دارند.

6) برای ایجاد مخزنی از داده های TPS ها ، که شامل داده های یک بازه ی زمانی بسیار طولانی هستند وبه همین دلیل کارایی کنترل آن ها توسط خود TPS پایین می آید . :داده های قدیمی تر غالباً از یک TPS خالی می شوند تا زمان پاسخ مورد انتظار دراین سیستم ها ، به راحتی کنترل شود . برای انجام تحقیقات و گزارش ها ممکن است داده های قدیمی و داده های جاری مورد نیاز باشند که در این موارد استفاده از DW به علت مهم نبودن زمان انتظار برای پاسخ ، موثر خواهد بود.


خب Data warehouse چیست؟

انباره داده یک مجموعه‌ از داده‌های موضوع‌گرا (Subject Oriented)، مجتمع(Integrated)،نگهدار زمان‌های مختلف(Timevariying) و غیر فرَار (none-volatile) است که پشتیبان فرآیندهای تصمیم سازی مدیریتی است.

در این تعریف به ۴ویژگی در انبار داده اشاره شده است. اجازه بدهید تک تک این تعاریف را مورد بررسی قرار دهیم:

موضوع‌گرا (Subject Oriented): به این معنا است که انبار داده‌ای که شما می‌سازید بایستی در مورد یک موضوع مشخص (یا یک سری موضوع مشخص) باشد. مثلا یک فروشگاه می‌خواهد رفتار خریداران خود را بررسی کند. پس موضوع در این‌جا رفتار خریداران است. برای همین بایستی اطلاعاتی که در مورد رفتار خریداران در نرم‌افزارهای مختلف سازمان (مثلا CRM یا سیستم حسابداری) موجود است را در یک انبار داده جمع آوری کنید.

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

نگهدار زمان‌های مختلف(Timevariying): به این معنا که در انبار داده، داده‌های قدیمی‌تر نیز ذخیره می‌شوند. مثلا اگر اطلاعات فروش ۱ماه اخیر را خواستیم می‌توانیم از انبار داده پیدا کنیم. اگر اطلاعات فروش ۱سال پیش را نیز خواستیم بایستی در انبار داده موجود باشد.

غیر فرَار(none-volatile): به این معنا که اگر داده‌ای در انبار داده ثبت شد، دیگر امکان تغییر آن وجود ندارد. برای مثال در یک پایگاه داده عادی (غیر انبار داده‌ای) اگر یک شخص آدرس خود را عوض کرد، آدرس جدید جایگزین آدرس قبلی می‌شود، ولی در انبار داده سابقه آدرس‌های شخص ذخیره می‌شود و تغییرات آدرس یک شخص به صورت جدید‌تر در انبار داده ثبت می‌شود و آدرس‌های قبلی نیز در انبار داده جهت بررسی موجود می‌باشد[2,4].

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

خب حالا به بررسی انواع الگو های نگهداری داده در انبار داده ها میپردازیم:

الگو اول:

الگو دوم:

الگو سوم:

روش کار:

در DW فرایندی داریم به نام ETL: Extract, Transform, Load که در طی آن داده ها از سیستمهای پردازش تراکنش استخراج می شود (E) تغییر فرمت های لازم در آن صورت می گیرد(T) و سپس در قالب داده ای جدید مناسب برای گزارشگیری آماده می شود (L) پس از آن از طریق داده کاوی (Data Mining ) و مکانیزم هایی مانند OLAP پرس و جو ها ایجاد و گزارشات مورد نیاز تهیه می شود.[3]


سیستم های پردازشی به دو دسته تقسیم می شوند:

1. سیستم های پشتیبانی تصمیم گیری (DSS)

2. سیستم های پردازش زنده (Online) اطلاعات (OLTP)

این دو دسته هر یک راه های کاملا متفاوتی را جهت حل مسائل تجاری ارائه می کنند. قبل از آنکه به ارزش انباره های داده پی ببریم لازم است تفاونهای این دو را بشناسیم.

سیستم OLTP چیست؟

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

سیستم هایOLTP در کلیه خدمات بازرگانی دیده می شوند از جمله سیستم های رزرواسیون، دستگاه های فروش ، کنترل انبار، سهام و فروش و ... . این سیستم ها غالبا به زمان پاسخی بین 1 تا 3 ثانیه در 100 در صد اوقات نیاز دارند. تعداد کاربران آنها در ساعات مختلف روز ، هفته و ماه می تواند بشدت متغیر باشد و درتمامی این اوقات به همان زمان پاسخ قبلی نیاز دارند. در این گونه سیستم ها معمولا بجای ارتیاط با بانکهای اطلاعاتی(Database Servers) به سیستم های تعاملی (Transaction Servers) متصل می شوند. البته این گونه ارتباط لازمه دستیابی به سرعت مورد نیاز Clients است.

سیستم DSS چیست؟

سیستم پشتیبانی از تصمیم (Decision Support System) و یا به طور مخفف DSS ، یک سیستم تصمیم‌گیر تحلیل‌گر بر اساس مجموعه‌ای از اطلاعات و برنامه‌ها می‌باشد. این اطلاعات می‌تواند از داده‌های وارد شده توسط انسان (تراکنشهای ذهنی) و یا از داده‌های تحلیل شده به وسیله یک نرم‌افزار (تراکنش های یک برنامه کامپیوتری) باشد. DSS به طور عموم، در جهت کمک به تصمیم‌گیری انتخاب صحیح یک کار و یا اقدام و در نتیجه بهبود کارایی سیستم استفاده می‌شود.[1]

خصوصیات عمومی DSS

1. کاربر می‌تواند، با استفاده از پارامترهای بیرونی كه به DSS تزریق می‌كند رفتار سیستم را بروز كند.

2. به كمك وب سرويس ميتوانيد ارتباط ساده تري بين فرايندهاي مختلف ايجاد كنيد.

3. از پایگاههای داده ، مدلهای تحلیلی و محاسباتی و سیستم های خبره درحل مسائل استفاده می کند.

4. سیستم DSS دستیابی به انواع مختلف منابع داده با فرمتهای گوناگون را فراهم می‌کند.

مقایسه سیستم های DSS وOLTP


اطلاعات چند بعدی (OLAP)

در واقع OLAP سیستمی است جهت پردازش داده‌های برخط (Online). در واقع OLAP خلاصه‌شده‌ی Online Analytical Processing و بیان‌گر این موضوع است که می‌توان داده‌هایی را که در پایگاه‌داده‌های مختلف وجود دارند را تحلیل کرد. داده‌ها در انبار داده از منابع گوناگون جمع‌آوری می‌شوند. حال OLAP سیستمی است که می‌تواند بر روی این داده‌های چند بُعدی عملیات تحلیلی را انجام دهد.

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

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

نوع ROLAP: مخففRelational OLAP یاOLAP رابطه‌ای است. این نوع OLAP از پایگاه‌داده‌های رابطه‌ای مانند SQL Server و MySQL جهت پیاده‌سازی استفاده می‌کند. اگر یک مکعب داده را در پایگاه‌داده‌ی رابطه‌ای مانند SQL Server و با جداول (Tables) پایگاه‌داده پیاده‌سازی کنیم، در واقع نمونه‌ای از ROLAP را انجام داده‌ایم.

نوع MOLAP: مخفف Multidimentional OLAP یا OLAP چند بُعدی است.

نوع HOLAP: مخفف Hybrid OLAP یا OLAP ترکیبی است. در واقع ترکیبی ازMOLAP وROLAP می‌باشد. در این‌جا مقادیری که تجمیع شده‌اند.




طراحی سیستم:

میشه گفت ETL فرآیند اصلی در فناوری سنتی انبار داده است که نمی تواند داده های بدون ساختار را اداره کند. [5] در این سیستم ، ما به یک فرآیند انعطاف پذیر ETL نیاز داریم که می تواند چندین مسئله کیفیت داده را کنترل کند ، به عنوان مثال داده های تکراری ، داده های ناسازگار و داده های دور ریز ، سیستم پیشنهادی را می توان در شکل 1 مشاهده کرد. در این سیستم ، ترکیبی بین Hadoop و (Relational database management system) RDBMS وجود دارد. Hadoop می تواند RDBMS را به عنوان ابزار نگهداری / دسته بندی داده ، و همچنین قابلیت مدیریت داده و بستر ارائه داده را نیز افزایش دهد.

شکل1. سیستم پیشنهادی
شکل1. سیستم پیشنهادی


شکل2 . معماری سیستم
شکل2 . معماری سیستم


معماری سیستم پیشنهادی ارائه شده است. داده های ساختار یافته در طرح ما جمع می شوند ، در حالی که داده های غیر ساختاری داده های غیرقابل پیش بینی هستند و معمولاً قالب قابل شناسایی رایانه ای ندارند. نمونه های داده های بدون ساختار متن آزاد ، تصاویر ، فیلم ها ، صفحات وب ، داده های متا و گزارش های وب سرور است. در سیستم پیشنهادی ما ، داده های بدون ساختار با انجام طبقه بندی و فیلتر کردن پردازش می شوند و سپس در داده های متنی ذخیره می شوند. داده های دسته بندی نشده در داده های خام باقی می مانند. بعد ، از طریق فرایند جستجوی روابط یا الگوها ، داده های موجود در داده های متنی در داده های مرتبط ذخیره می شوند. سپس ، داده های مرتبط که قبلاً پردازش شده اند و می توانند با ساختارهای از پیش تعریف شده سازگار شوند ، در آنها ذخیره می شوند داده های کاوش شده سرانجام ، امکان ادغام بین داده های کاوش شده و داده های کل قابل تجزیه و تحلیل با استفاده از تکنیک های OLAP و هوش تجاری وجود دارد. [6,7]

پیاده سازی و آزمایش

در این بخش در مورد اجرای سیستم مطابق با تجزیه و تحلیل و طراحی سیستم بحث خواهد شد. داده های ساخت یافته از پایگاه های داده PostgreSQL تهیه می شوند ، در حالی که داده های غیر ساختاری از رسانه های اجتماعی مانند فیس بوک ، توییتر و LinkedIn حاصل می شود.

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

شکل 3. صفحه تجزیه و تحلیل برنامه DSS.
شکل 3. صفحه تجزیه و تحلیل برنامه DSS.


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

شکل 4. صفحه نمودار برنامه DSS .
شکل 4. صفحه نمودار برنامه DSS .




خب به پایان مقاله رسیدیم امیدوارم تونسته باشم اطلاعات کمی درباره انبار داده ها به شما منتقل کنم.

ممنون از همراهی شما عزیزان




منابع:

[1] Turban, Efraim, Jay E. Aronson, Ting-Peng. Liang, and R. Sharda (2004) “Decision Support and Business Intelligence Systems”, 10th ed., New Jersey: Pearson Education, Inc.

[2] Youssef, Bassil (2012) “A Data Warehouse Design for A Typical University Information System”, Journal of Comp. Sci. & Research 1(6): 12-17, Dec. 2012.

[3] Dell’Aquila, Carlo, Francesco Di Tria, Ezio Lefons, and Filippo Tangorra. (2007) “An Academic Data Warehouse”, Proceedings of the 7th WSEAS Int. Conf. on Applied Informatics and Communications, Athens, Greece, August 24-26.

[4] Mirabedini, Shirin (2014) “The Role of Data warehousing in Educational Data Analysis”, Journal of Novel Applied Sciences 3(5): 1439-1445.

[5] Salinas, Sonia Ordonez and Alba C.N. Lemus. (2017) “Data Warehouse and Big Data integration” Int. Journal of Comp. Sci. and Inf. Tech. 9(2): 1-17.

[6] S. G. Manikandan and S. Ravi. (2014) “Big Data Analysis Using Apache Hadoop,” in International Conference on IT Convergence and Security (ICITCS) 2014, pp. 1–4.

[7] J. Nandimath, E. Banerjee, A. Patil, P. Kakade, and S. Vaidya. (2013) “Big data analysis using Apache Hadoop,” 2013 IEEE 14th Int. Conf. Inf. Reuse Integr., pp. 700–703, 2013.

انبار دادهdata warehouseolapdssoltp
شاید از این پست‌ها خوشتان بیاید