دیتا ورهاوس Data Warehouse

X
اگر این مطلب را مفید میدانید، لطفا برای حمایت از ما روی این دکمه کلیک کنید.

مقدمه ای بر انباره داده ها (Data warehouse)

تعریف Ralph Kimball از انباره داده : یک DW نسخه ای از داده های تراکنشی است که به صورت اختصاصی برای پرس و جو ها و گزارش گیری ،سازمان دهی شده است.
A data warehouse is a copy of transaction data specifically structured for querying and reporting.

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

تاریخچه:

 سیستم  های کامپیوتری در دهه های گذشته پیشرفتهای زیادی داشته اند. از Mainframe ها در سال 1960، Mini computer ها در سال 1970، PC ها در سال 1980، Client/Serverها در سال 1990.

 یک واقعیت قابل توجه ای است که با توجه به تغییراتی که در سکوها(platform)، معماری، ابزارها و تکنولوژیها داده شده است بیشتر برنامه های تجاری هنوز هم بر روی Mainframeهای سال 1970 اجرا می شوند. طبق یک تخمین، بیشتر از هفتاد درصد اطلاعات سازمانهای مختلف بر روی Mainframeها هستند. یک دلیل مهم این است که این سیتم ها آنقدر پیشرفت کرده اند که انتقال آن به یک محیط جدید، هزینه بر و مشکل است.

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

داده های عملیاتی برای بدست آوردن اطلاعاتی در مورد کارههای روزانه یک سازمان مناسب هستند، اما یک راه و روش سیستماتیک برای آنالیز کردن و تعیین استراتژی یک سازمان ندارد.

در اواسط 1970، E.F.Codd یک مدل رابطه ای برای پایگاههای داده معرفی کرد که کاربران مستقیما می توانستند با استفاده از محصولات DBMS به داده دسترسی پیدا کنند. مدل رابطه ای یک مفهوم مهمی در تاریخچه پایگاه داده است، زیرا یک مدل ساختاری برای پایگاه داده معرفی کرد.

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

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

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

OLAP در مقابل OLTP

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

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

 

  ویلیام اینمان (William Inman)، ویژگیهای Data Warehouse را به صورت زیر تعریف میکند:

1- موضوع گرا

2- یکپارچگی

3- از بین نرفتنی

4- متغییر با زمان

 

دلایل استفاده از 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 به علت مهم نبودن زمان انتظار برای پاسخ ، موثر خواهد بود.

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

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

  1. برای ساختن انبار داده باید داده را از یک محل به محل دیگری منتقل کنیم که نیاز به فضای ذخیره سازی زیادی دارد. البته این مشکل زیاد مهمی نیست چون داده ها متوانند خلاصه شده و سپس به انبار داده منتقا شود و از طرفی هزینه حافظه ها رو به کم شدن است.
  2. یک نتیجه مهم کچی داده ها از یک محل به محل دیگر این است که داده ها در انبار داده قدیمی شده و ممکن است متناقض با منابع  اصلی باشد.
  3.  چون داده ها در انبار داده به صورت متناوبی به روز میشوند اگر کاربری نیاز به اطلاعات تحلیلی به روز داشته باشد نمیتواند از
  4.  طریق انبار داده به این اطلاعات دسترسی پیدا کند.
  5.  داشتن چند انبار داده یعنی اینکه چندین مکانیزم سیستماتیک برای دستیابی به منابع و به روز کردن آنها وجود دارد.
  6.  داده ای که به انبار داده فرستاده میشود باید از قبل تعیین شود که ممکن است کاربران نیایی نتوانند داده ای را که قرار است به  انبار داده فرستاده شود تشخیص دهند.

  همه این دلایل یعنی اینکه انبار داده وقتی که داده های بدست آمده توسط کاربران نهایی قابل پیشگویی نباشد، ممکن است بهترین راه حل نباشد.

 

مزیتهای Data Warehousing

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

 با یک داده در Data Warehouse کاربران سازمان لازم نیست با مدلهای مختلفی از داده سروکار داشته باشند و آنها را بدانند و لازم نیست که برای آنالیز کردن چند زبان اجرای Query را بدانند و همچنین یکپارچگی داده ها طراحی پردازشهای سیستم را ساده میکند، مثلأ نیازی به بهینه کردن Query برای منابع ناهمگون نیست زیرا که اجرای Query برای منابع ناهمگون یکی از مشکلات روشهای سنتی و قدیمی است.

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