در علم محاسبات یا رایانش، یک انبار داده (DW یا DWH) که به نام انبار داده سازمانی (EDW) نیز نامیده میشود، سیستمی است که برای گزارشدهی و تحلیل داده استفاده میشود و به عنوان جزء اصلی هوش تجاری محسوب میشود. انبارهای داده، مخازن مرکزی دادههای یکپارچه از یک یا چند منبع پراکنده هستند. انبارهای داده، دادههای کنونی و سابق را در یک محل گرد هم میآورند که متعاقباً برای ایجاد گزارشهای تحلیلی برای کارمندان بخشهای مختلف سازمان مورد استفاده قرار میگیرد.
در این مقاله قصد داریم اشاره ای به سه روش عمده که برای طراحی انبار داده وجود دارد به بررسی آنها بپردازیم:
طراحی پایین به بالا
در رویکرد طراحی انبار داده پایین به بالا، دادهگاهها به طور مقدماتی برای قابلیتهای گزارشدهی و تحلیلی برای پردازشهای خاص تجاری ایجاد میشوند. سپس این دادهگاهها را میتوان یکپارچه ساخت تا یک انبار داده جامع ایجاد کرد. معماری گذرگاه انبار داده به طور ابتدایی یک پیادهسازی از «گذرگاه» به معنی مجموعهای از ابعاد معین و واقعیتهای معین است که در آن ابعاد بین واقعیتها در یک یا چند دادهگاه مشترک هستند.
طراحی بالا به پایین
رویکرد طراحی انبار داده بالا به پایین با استفاده از یک مدل داده سازمانی طراحی میشود. داده اتمیک (Atomic data) به معنی داده در بالاترین سطح از جزییاتش است که در انبار داده ذخیره میشود. دادهگاههای ابعادی باید شامل دادههای مورد نیاز برای پردازشهای خاص تجاری یا بخشهای مشخص از سازمان باشند و از انبارهای دادهای ساخته میشوند.
طراحی ترکیبی
انبار داده غالباً به صورت معماری hub and spokes تشبیه میشود. سیستمهای موروثی (Legacy systems) که انبارهای داده را تغذیه میکنند، اغلب شامل مدیریت رابطه با مشتری و برنامهریزی منابع سازمانی هستند که حجمهای بالاتری از داده را تولید میکنند. برای یکپارچهسازی این مدلهای داده مختلف و تسهیل پردازش بار تبدیل استخراج، انبارهای داده در اغلب موارد از انبارهای دادهی عملیاتی استفاده میکنند، یعنی اطلاعاتی که متعاقباً به صورت انبارهای داده واقعی تجزیه میشوند. برای کاستن از افزونگی دادهها، سیستمهای بزرگتر غالباً دادهها را به روشی نرمالسازی شده ذخیره میکنند. سپس میتوان دادهگاههایی برای گزارشهای خاص بر روی این انبارهای دادهای ساخت.
یک پایگاه داده ترکیبی به صورت 3NF یعنی شکل نرمال سوم نگهداری میشود تا افزونگی دادهها حذف شود. با این حال، یک پایگاه داده رابطهای نرمال برای گزارشهای هوش تجاری که مدلسازی ابعادی در آن رایج است، چندان بهینه محسوب نمیشود. دادهگاههای کوچک را میتوان از روی انبارهای داده منسجم ساخت و از دادههای فیلتر شده مشخص برای جداول واقعیت و ابعاد مورد نیاز استفاده کرد. انبار داده یک منبع منفرد اطلاعاتی ارائه میکند که از روی آن میتوان دادهگاههایی را ایجاد کرد و طیف متنوعی از اطلاعات تجاری را ارائه میکند. معماری ترکیبی امکان جایگزینی مخزن مدیریت داده اصلی را با انبار داده مهیا میسازد که در آن میتوان اطلاعات عملیاتی و نه استاتیک را ذخیره کرد.
اجزای مدلسازی data vault از معماری hub and spokes تبعیت میکنند. این سبک مدلسازی یک طراحی هیبرید است که شامل بهترین رویههای «شکل نرمال سوم» و «شِمای ستارهای» (star schema) است. مدل data vault یک شکل واقعی نرمال سوم نیست و برخی از قواعد آن را نقض میکند؛ اما یک معماری بالا به پایین با طراحی پایین به بالا محسوب میشود. مدل data vault طوری تنظیم شده است که به طور صریح یک انبار داده باشد. این تنظیم در جهت افزایش دسترس آن برای کاربر نهایی نبوده است و هنگامی که ساخته شود برای مقاصد تجاری همچنان نیازمند نواحی انتشاری بر مبنای شِمای ستارهای یا دادهگاه خواهد بود.
خصوصیات انبار داده
برخی ویژگیهای مقدماتی وجود دارند که دادهها را در انبار داده تعریف میکنند و شامل موضوع محوری، یکپارچهسازی داده، زمان متغیر، دادههای غیر فرّار و دانهبندی (Granularity) داده است.
- موضوع محور: دادهها در انبار داده بر خلاف سیستمهای عملیاتی پیرامون موضوعات سازمان (نرمالیزاسیون پایگاه داده) گرد هم میآیند. جهتگیری موضوعی برای تصمیمگیری واقعاً مفید است. گردآوری اشیای مورد نیاز، موضوع محوری نامیده میشود.
- یکپارچه: دادههای موجود درون یک انبار داده یکپارچه هستند. از آنجا که این دادهها از چند سیستم عملیاتی میآیند همه ناسازگاریها میبایست حذف شوند. خصوصیات آن شامل قراردادهای نامگذاری، اندازهگیری متغیرها، ساختارهای انکودینگ، خصوصیات فیزیکی داده و مواردی از این دست است.
- زمان متغیر: با این که سیستمهای عملیاتی به دلیل پشتیبانی از عملیاتهای هر روزه مقادیر فعلی را نشان میدهند؛ اما انبارهای داده، نشاندهنده دادههایی در افق زمانی بلندمدتتر (تا 10 سال) هستند. این بدان معنی است که انبار داده حاوی دادههای تاریخی است. انبار داده به طور عمده برای دادهکاوی و پیشبینی استفاده میشود، چون اگر کاربری در جستجوی یک الگوی خرید برای یک مشتری خاص باشد، میبایست به دادههایی در مورد خریدهای فعلی و گذشته نگاه کند.
- غیر فرّار: دادههای موجود در انبار داده تنها خواندنی هستند، یعنی نمیتوان آنها را بهروزرسانی، ایجاد یا حذف کرد.
- جمعبندی: دادهها در انبار داده در سطوح مختلفی جمعبندی میشوند. کاربر انبار داده به واحدهای فروش کلی یک محصول در کل یک منطقه نگاه میکند. سپس کاربر به آمار آن منطقه نگاه میکند. در نهایت ممکن است فروشگاههای منفردی را در منطقهای خاص بررسی کند. بدین ترتیب معمولاً تحلیل در سطوح بالاتر آغازمی شود و برای یافتن جزییات به سطوح پایینتر منتقل میشود.