انبار داده چیه و چه کارآیی داره؟ آیا همون پایگاه داده ست یا این دوتا باهم فرق دارن؟ اصلاً استفاده از این تکنولوژی مزایا و معایبی هم داره؟ اگه دنبال جواب این سوالها و یه توضیح کامل و جامع درباره Data Warehouse هستین تا آخر این پست همراه من باشین و خوب به حرفام گوش بدین ^-^
انبار داده چیه؟
انبار داده Data Warehouse DW or DWH به سیستمی میگن که داده ها رو از منابع مختلف برای ارائه پیش بینیهای منطقی در کسب و کار جمع آوری و مدیریت می کنه. یه Data Warehouse معمولاً برای تولید گزارش و تجزیه و تحلیل داده های تجاری از منابع مختلف استفاده میکنه. بهتره بدونین که DW هسته اصلی BI به حساب میاد که خود Business Intelligence یا هوش تجاری هم برای تجزیه و تحلیل و گزارش دهی ساخته شده. (کمک از ویکی پدیا)
انبار داده یا Data Warehouse یه پایگاه داده رابطهای هست که داده های فعلی و گذشته رو تو یه مکان واحد جمع آوری میکنه و هدف اصلیش پوشش گزارش گیری و رسیدگی به نیازهای تحلیلی یه سازمانه.
ضمناً یه پروسه است که برای تبدیل داده به اطلاعات و به موقع تحویل دادن اونها به کاربران شکل گرفته تا بلکه تغییری تو رفتار آینده شرکت یا سازمان به وجود بیاد!
سیستم Data Warehouse با اسامی زیر هم شناخته میشه:
- سیستم پشتیبانی تصمیم گیری Decision Support System
- سیستم اطلاعات اجرایی Executive Information System
- سیستم اطلاعات مدیریت Management Information System
- راه حل هوشمندی کسب و کار Business Intelligence Solution
- برنامه تحلیلی Analytic Application
- پایگاه داده تحلیلی Data Warehouse
از DW معمولاً برای ارتباط داده های تجاری گسترده استفاده میشه تا بینش اجرایی بیشتری نسبت به عملکرد شرکتها ارائه بشه.
نحوه عملکرد DW
Data Warehouse به عنوان یه مخزن مرکزی، که تو اون اطلاعات از یک یا چند منبع داده به دست میاد، کار میکنه. داده ها از طریق سیستم تراکنش و همچنین پایگاه های داده مرتبط، به یه انبار داده راه پیدا میکنن. داده ها ممکنه به حالت های زیر باشن:
- ساختار یافته، Structured
- نیمه ساختار یافته Semi-structured
- داده های بدون ساختار Unstructured
داده ها پردازش، تبدیل و آماده میشن تا کاربران بتونن از طریق ابزارهای اطلاعاتی کسب و کار ، زبان پرس و جوی ساختار یافته یا Structured Query Language یا SQL و صفحات گسترده Spreadsheets به این داده های پردازش شده در انبار داده دسترسی پیدا کنن. یه Data Warehouse ، اطلاعاتی که از منابع مختلف هستن رو با یه پایگاه داده جامع ادغام میکنه.
حالا با ادغام همه این اطلاعات تو یه مکان، سازمان میتونه مشتریهاش رو بهتر تحلیل کنه. این امر کمک میکنه که مطمئن بشین همه اطلاعات موجود رو در نظر گرفتین، همچنین انبار داده باعث میشه تا داده کاوی Data Mining امکانپذیر بشه و همونطور که میدونین داده کاوی میتونه به فروش و سود بیشتر منجر بشه 🙂
انبار داده چه فرقی با پایگاه داده Database داره؟
انبار داده از یه طرح متفاوت نسبت به پایگاه داده استفاده میکنه. وظیفه اصلی پایگاه داده ، پشتیبانی از تراکنش های آنلاین و پردازش کوئری است که به این سیستم پردازش تراکنش آنلاین یا OLTP میگیم و بیشتر عملیات روزمره یه سازمان رو پوشش میده. از طرف دیگه انبار داده به کاربر، خدماتی در نقش تحلیل گر و تصمیم گیرنده ارائه میده که میتونه داده ها رو از چندتا منبع، تجزیه و تحلیل کنه و درمورد اختلافات در طرح ذخیره سازی با استفاده از فرایند ETL بحث کنه. البته سیستم ها در این مدل میتونن داده ها رو تو قالبهای مختلفی برای هماهنگی با نیازهای متفاوت کاربران سازماندهی کنن و ارائه بدن که بهشون سیستم پردازش تحلیلی آنلاین یا OLAP هم میگیم.
چندتا دیگه از تفاوتهای انبار داده و پایگاه داده به صورت خلاصه:
- کابران پایگاه داده، کارمند دفتری و مسئولان هستند در حالی که کاربران انبار داده مدیران و تصمیم گیرندگانند.
- مقدار داده یه پایگاه داده کمتر از انبار داده است، در انبار داده این مقدار بین چند گیگ تا چند ترابایته در حالی که در پایگاه داده بین چند مگابایت تا چند گیگابایته.
- پایگاه داده برای مدلهای OLTP بهینه شدن در حالی که انبار داده برای پردازش تحلیلی آنلاین طراحی شدند.
انواع Data Warehouse
ما سه تا مدل اصلی برای انبار داده هامون داریم که عبارتند از:
1. انبار داده های سازمانی Enterprise Data Warehouse
Enterprise Data Warehouse یه انبار متمرکزه که خدمات پشتیبانی و تصمیم گیری رو در سراسر شرکت ارائه میده. این مدل همچنین یه روش یکپارچه برای سازماندهی و نمایش داده ها ارائه میده. و امکان طبقه بندی داده ها رو با توجه به موضوع و امکان دسترسی به داده ، مطابق با این بخشها فراهم میکنه.
2. انبار داده های عملیاتی Operational Data Store
انبار داده های عملیاتی که ODS هم نامیده میشه، چیزی نیست به جز داده های مورد نیاز برای وقتی که نه Data warehouse و نه سیستم OLTP از نیازهای سازمان پشتیبانی نمیکنن. در ODS انبار داده بلافاصله تجدید میشه برای همین هم بیشتر برای فعالیتهای روزمره مثل ذخیره سازی سوابق کارمندها مناسبه.
3. بازار داده Data Mart
بازار داده یا Data Mart برای یه خط ویژه از کسب و کار ، مثل فروش یا امور مالی طراحی شده. تو یه بازار داده مستقل، داده ها میتونن مستقیماً از خود منابع جمع آوری بشن.
تکامل DW در کاربرد سازمانی
از خیلی سال پیش، سازمان ها شروع کرده بودن خیلی ساده از انبار سازی داده ها استفاده کنن؛ با این حال با گذشت زمان، این استفاده هی پیچیدهتر و پیچیدهتر شد.
1. انبار داده عملیاتی آفلاین
در این مرحله، داده ها فقط از یه سیستم عامل رو یه سرور دیگه کپی میشن. در این روش بارگیری، پردازش و گزارش داده های کپی شده بر عملکرد سیستم عملیاتی تأثیری نمیذاره.
2. انبار داده آفلاین
داده های موجود در انبار داده به طور منظم آپدیت میشن و داده های داخل DW برای تحقق اهداف انبار داده ، نقشه برداری و تبدیل میشن.
3. انبار داده لحظه ای
تو این مرحله، هروقت تراکنشی در پایگاه داده انجام بشه، انبار داده به روز میشه. مثلاً سیستم رزرواسیون هواپیمایی یا راه آهن.
4. انبار داده یکپارچه
تو این مدل، داده ها رو از بخشهای مختلف کسب و کار گردآوری میکنن و برای همین هم کاربران میتونن اطلاعاتی که از سیستمهای دیگه نیاز دارن رو ببینن.
ویژگیهای DW
ما تو DW یه سری ویژگیها داریم که داده ها رو تعریف میکنن حالا این ویژگی شامل چی میشن؟
موضوع محوری
هر انباری، داده های مربوط به یه موضوع خاص رو تو خودش نگه میداره و این داده ها رو به منظور استخراج نتایج و مفاهیم کلی به یه شکل خاصی سازماندهی میکنه پس این طوری سرعت جستجو افزایش پیدا میکنه. گردآوری اشیای مورد نیاز، موضوع محوری نامیده میشه.
یکپارچگی/اجتماع
تو سیستمهای مختلف، داده ها ممکنه از جنبههای متفاوتی مثل: قراردادهای نام گذاری، خصوصیات فیزیکی داده و اندازه گیری متغیرها و غیره با هم نامتناسب باشن. این ناسازگاری ها باید حذف بشن و داده های یه انبار داده ، یکپارچه بشن. حالا چون ما میدونیم منابع داده متفاوته، باید قبل از ذخیره سازی اونها در DW از تکنیکهای پاکسازی داده و یکپارچه سازی استفاده کنیم.
متغیر با زمان
سیستمهای عملیاتی بخاطر پشتیبانی از عملیات هر روزه، مقادیر فعلی رو نشون میدن اما DW نشان دهنده داده هایی با مقیاس زمانی طولانی مدتتریه. یعنی این که انبار داده شامل داده های تاریخیه. این انبار برای داده کاوی و پیش بینی استفاده میشه، مثلاً اگه یه کاربری دنبال یه الگوی خرید باشه باید داده هایی که مربوط به خریدهای الان و گذشته است رو یه نگاه بندازه.
غیر فرّار
داده های داخل انبار ، خوندنی هستن! یعنی چی؟ یعنی اینکه لازم نیست اونها رو تغییر بدین یا آپدیتشون کنین و نیازی به ایجاد و دسترسی انحصاری به داده ها نداریم، فقط به دوتا فعالیت کلیدی احتیاج داریم: باز کردن داده و دسترسی به داده.
جمع بندی
داده های Data Warehouse تو سطحهای متفاوتی جمع بندی میشن. مثلاً کاربر DW اول به واحدهای فروش کلی یه محصول تو یه منطقه نگاه میکنه و سپس به آمار اون منطقه نگاهی میندازه و در نهایت ممکنه فروشگاههای تکی رو تو منطقه خاصی بررسی کنه. پس معمولاً تحلیل از سطحهای بالاتر آغاز میشه و برای این که جزئیات رو پیدا کنن به سطحهای پایینی منتقل میشه.
مزایا
- به کاربران مشاغل اجازه میده تا به سرعت به داده های مهم بعضی منابع در همه جا دسترسی پیدا کنن.
- اطلاعات کاملی راجع به فعالیتهای مختلف عملکردی ارائه میده و از گزارش موقت و پرس و جو پشتیبانی میکنه.
- به ادغام خیلی از منابع داده کمک میکنه تا استرس رو در سیستم تولید کاهش بدن.
- به کاهش زمان کل گردش مالی برای تجزیه و تحلیل و گزارش دهی کمک میکنه.
- تجدید ساختار و ادغام رو برای گزارش و تجزیه و تحلیل آسان میکنه.
- امکان دسترسی به داده های منابع موجود در یه مکان رو میده و موجب صرفه جویی در وقت کاربر برای بازیابی داده از چندتا منبع میشه.
- داده های تاریخی رو ذخیره میکنه و باعث میشه کاربر، با استفاده از اطلاعات دورههای مختلف، پیش بینی دقیقتری برای آینده داشته باشه.
معایب
- گزینه ایدهآلی برای داده های بدون ساختار نیست.
- ایجاد و پیاده سازی اون زمان بر و گیج کنندهست.
- میتونه سریعاً منسوخ بشه.
- ایجاد تغییر تو انواع داده، دامنه، طرح واره منابع داده، فهرستها و نمایش داده ها کار سختیه.
- ممکنه آسون به نظر برسه ولی برای کاربران سطح متوسط خیلی پیچیدهست.
- علیرغم بهترین تلاشها در مدیریت پروژه، دامنه انبار داری داده ها همیشه افزایش پیدا میکنه.
- گاهی وقتها کاربران انبار داده، قوانین مختلف کسب و کار رو واسه خودشون توسعه میدن!!
- سازمان باید انرژی زیادی رو برای آموزش و اجرای اهداف صرف کنه.