ژانویه 11, 2020

انبار داده

انبار داده و ارتباطش با هوش تجاری

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

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

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

 

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

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

 

انبار داده

 

خصوصيت اصلي انبار داده

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

موضوع‌گرا (Subject Oriented):

انبار داده براي پاسخ‌گويي به پرسش‌هاي مختلف در مورد يک موضوع خاص بهينه‌سازي مي‌شود. . مثلا یک فروشگاه می‌خواهد رفتار خریداران خود را بررسی کند. پس موضوع در این‌جا رفتار خریداران است. پس باید داده‌هاي مرتبط با رفتار مشتریان را در خود نگاه دارد و اين داده‌ها را به منظور استخراج مفاهيم و نتايج خاصي به شكلي ويژه سازماندهي ‌کند.

مجتمع (Integrated):

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

نگهدار زمان‌های مختلف (Timevariying):

هر ساختار کليدي در انبار داده شامل عنصر زمان يا همان مهر زماني است  اين مهر زماني به عنوان کليدي به ساير جداول عمل مي‌کند. به این معنا که در انبار داده، داده‌های قدیمی‌تر نیز ذخیره می‌شوند. مثلا اگر اطلاعات فروش ۱ماه اخیر را خواستیم می‌توانیم از انبار داده پیدا کنیم. سيستم انبار داده داده‌ها هرگز به روز آوري‌ نمي‌شوند. بلكه داده‌هاي جديد و يا تغيير يافته با مهرهاي زماني جديد به انبار اضافه مي‌شوند.

غیر فرَار (none-volatile):

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

 

مزیت‌های انبار داده ها

انبار داده شامل یک کپی از اطلاعات است که از سیستم‌های تبادل داده‌ای به دست می‌آید. این معماری فرصتی برای موارد زیر به دست می‌دهد:

  •  یکپارچه‌سازی داده‌ها از چند منبع در یک پایگاه داده و مدل داده‌ای واحد/ تجمیع بیشتر داده‌ها در یک پایگاه داده منفرد به طوری که با یک موتور کوئری بتوان داده‌ها را در یک ODS عرضه کرد.
  •   رفع مشکل رقابت بر سر قفل در سطح ایزولاسیون پایگاه داده در سیستم‌های پردازش تراکنش که ناشی از کوئری‌های تحلیلی بزرگی است که به مدتی طولانی در پایگاه‌های داده پردازش تراکنش اجرا می‌شوند.
  • نگهداری سابقه داده حتی در مواردی که سیستم‌های تراکتش منبع این کار را انجام نمی‌دهند.
  •  یکپارچه‌سازی داده‌ها از سیستم‌های منبع چندگانه و ایجاد امکان مشاهده مرکزی در کل سطح سازمان. این مزیت همواره ارزشمند است؛ اما زمانی که سازمان از طریق ادغام با شرکت یا سازمانی دیگر بزرگ می‌شود، اهمیتی دوچندان می‌یابد.
  •  بهبود کیفیت داده از طریق ارائه کدها و توصیف‌های مداوم و رفع مشکل داده‌های نامناسب
  •  ارائه مداوم اطلاعات سازمان
  • ارائه یک مدل داده ستون مفرد برای همه داده‌های مورد نظر صرف‌نظر از منبع داده
  •  بازسازی داده‌ها به طرزی که برای کاربران تجاری معنی‌دار باشد.
  •  بازسازی داده‌ها به طوری که عملکرد کوئری حتی برای کوئری‌های تحلیلی بدون تأثیر بر سیستم‌های عملیاتی بهبود یابد.
  • افزودن ارزش به برنامه‌های تجاری عملیاتی و به طور قابل توجه به سیستم‌های مدیریت رابطه مشتری (CRM)
  •  آسان‌تر ساختن نوشتن کوئری‌های پشتیبان تصمیم
  • سازمان‌دهی و ابهام‌زدایی از بازاریابی داده‌ها.

 

روش‌های طراحی

رویکردهای طراحی انبار داده

طراحی پایین به بالا

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

طراحی بالا به پایین

این رویکرد توسط آقای رالف کیمبل (Ralph Kimball) معرفی شده است. در واقع در این رویکرد Data Mart های کوچک متناسب با نیاز هر بخش سازمان (فروش، منابع انسانی و …) طراحی می شود و سپس انبار داده جامع سازمان از تجمیع این Data Mart ها به وجود می آید.  از مزایای این رویکرد می توان به پیاده سازی سریع این رویکرد اشاره کرد.

طراحی Star

Star schema ساده‌ترین روش پیاده سازی Data Warehouse، طراحی ستاره ای به طراحی گفته می شود که جدول Fact در مرکز قرار گرفته و توسط جداول Dimension محاصره می شود. در این مدل جداول Dimension با یکدیگر ارتباط ندارند و فقط از طریق کلید با جدول Fact ارتباط دارند. این نوع طراحی برای گزارش گیری بسیار بهینه است.

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

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

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

  • كارايي بالاي گزارش  گيري از داده هاي تاريخي ساليانه
  •  انعطاف پذيري بالا براي تحليل داده هاي چندبعدي
  •  پشتيباني از بسياري از سيستم هاي مديريت پايگاه داده هاي رابطه اي
  •  تحليل ساده تر داده ها نسبت به پايگاه هاي نرماليزه شده.

طراحی Snow Flake

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

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

مزايا و معايب مدل دانه برفي

  •  در اين مدل اندازه جداول بعد كاهش مي يابد و از افزونگي جلوگيري جلوگيري مي شود.
  • برنامه هاي كاربردي منعطف تر مي شوند.
  • كارآيي به خصوص سرعت پايين تر است چرا كه با افزايش تعداد جداول به تعداد بيشتري عملگر كند اجتماع نياز داريم.
  • به علت افزايش تعداد جداول، هزينه نگهداري بالا مي رود.

 

star

 

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

عمدتا سه نوع معماری Datawarehouse وجود دارد:

معماری تک لایه

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

معماری دو لایه

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

معماری سه لایه

این معماری پرکاربرد است.

از طبقه بالا ، میانه و پایین تشکیل شده است.

Bottom Tier:

بانک اطلاعاتی سرورهای Datawarehouse به عنوان سطح پایین. این معمولاً یک سیستم پایگاه داده رابطه است. داده ها با استفاده از ابزارهای back-end در این لایه پاک ، تبدیل و بارگذاری می شوند.

لایه میانی:

ردیف میانی در انبار داده یک سرور OLAP است که با استفاده از مدل ROLAP یا MOLAP پیاده سازی می شود.

الف) (Relational OLAP (ROLAP: یک سیستم مدیریت پایگاه داده رابطه‌ای گسترده است. ROLAP عملیات بر روی داده‌های چند بعدی را به عملیات‌های رابطه‌ای استاندارد تبدیل می‌کند.

ب) (Multidimensional OLAP (MOLAP: که به طور مستقیم داده‌های چند بعدی و عملیات را اجرا می کند.

 

(ONLINE ANALYTICAL PROCESSING (OLAP چیست ؟

OLAP در واقع نرم افزاری برای دستکاری داده های چند بعدی از منابع مختلف است. داده ها اغلب در یک Data Warehouse ذخیره می شوند. نرم افزار OLAP  به کاربر در ایجاد query ها ، نما ها و گزارشات کمک می کنند.

Top-Tier:

لایه بالایی، لایه client یا front-end است. این می تواند ابزار پرس و جو ، ابزار گزارش ، ابزار پرس و جو مدیریت شده ، ابزار تجزیه و تحلیل و ابزار کاوی باشد.

 

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

مراحل و نحوه ایجاد انبار داده در سازمان

۱- استخراج داده های تراکنشی از پایگاه های داده به یک مخزن واحد

۲٫تبدیل داده ها: از آنجائیکه سیستمهای اطلاعاتی و برنامه های کاربردی یک سازمان غالبا توسط افراد و پروژه های مختلف به مـرور زمان در مواجهـه با نیـازهای جدید سـاخته یا تغییر شـکل داده می شـوند، یکسـان سـازی آنها امری ضروری می باشد.در بسیاری از موارد نیز سیستمهای اطلاعاتی در بستر های مختلف پایگاه داده مانند Microsoft SQL Server ،Oracle ، Sybase ، Microsoft Access و غیره طراحی گردیده اند. بررسی جداول، برقراری ارتباط بین فیلدها و یک شکل سازی داده ها در این مرحله صورت می پذیرد.

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

۴- تولید مقادیر از پیش محاسبه شده جهت افزایش سرعت گزارش گیری: مـقادیر از پیـش محاسـبه شده را تراکـم نیـز مـی نامـند. ایـن مرحلــه توســط سیستـمهایی نظــیر Microsoft SQL  Server  Analysis  Services  بسیار ساده تر شده است. ایـن تراکم ها کـه در ابـعاد مختلـف انبار داده سـاخته می شوند، موجب می شوند که سرعت انجام عملیات گزارش گیری به شکل محسوسی افزایش یابد. بایدتوجه داشت که عملیات ساخت این مقادیر بسیار زمان گیر بوده و نیازمند حافظه زیادی بر روی سروراست.

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

 

ابزارها:

 

sql server

۱) QuerySurge

۲) CloverDX

۳) Xplenty

۴) Skyvia

۵) Panoply

۶) Oracle

۷) Amazon RedShift

۸) Domo

oracle۹) Teradata Corporation

۱۰) SAP

۱۱) SAS

۱۲) IBM – DataStage

۱۳) Informatica

۱۴) MS SSIS

۱۵) Talend Open Studio

۱۶) The Ab Initio software

۱۷) Dundas

۱۸) Sisense:

۱۹) TabLeau

۲۰) MicroStrategy

۲۱) Pentaho

۲۲) BigQuery

۲۳) Numetric

۲۴) Solver BI360 Suite

۲۵) MarkLogic

با توجه به اينکه انتخاب ابزار جهت ايجاد انباره داده وابستگي زيادي به نوع فعاليت سازمان و وابستگي فرآيندها با يکديگر دارد، به همين دليل پس از شناخت (Feasibility Study) نسبت به انتخاب ابزار براي ايجاد انباره داده اقدام مي شود. ولي عموماً يکي از دو ابزار SQL Server و يا Oracle براي اين بخش مناسب مي باشند.

 

تفاوت انبار داده و پایگاه داده چیست

  • از لحاظ مدل‌های داده‌ای؛ پایگاه‌های داده برای مدل OLTP بهینه سازی شده که براساس مدل داده رابطه‌ای امکان پردازش تعداد زیادی تراکنش همروند_ که اغلب حاوی رکورد‌های اندکی هستند_ را دارد. اما در انبارهای داده که برای پردازش تحلیلی آنلاین طراحی شده‌اند امکان پردازش تعداد کمی‌ پرس و جو پیچیده برروی تعداد بسیار زیادی رکورد داده فراهم می‌شود. سرورهای OLAP هم می‌توانند رابطه‌ای باشند ( ROLAP ) وهم می‌توانند چند‌بعدی باشند (MOLAP ).
  • از لحاظ کاربران؛ کاربران پایگاه داده کارمندان دفتری و مسئولان می‌باشند در حالی که کاربران انبار داده مدیران و تصمیم‌گیرنده‌ها هستند.
  • از لحاظ عملیات قابل اجرا برروی آنها؛ عملیاتی که برروی پایگاه داده‌ها صورت می‌‌گیرد، عموماً شامل عملیات ‌بهنگام سازی است در حالی که عمل خواندن از انبار،عمده عملیات قابل اجرا بر روی انبار داده را تشکیل می‌دهد.
  • از لحاظ مقدار داده‌ها؛ مقدار داده‌های یک پایگاه داده در حدود چند مگابایت تا چند گیگابایت است در حالیکه این مقدار در انبار داده در حدود چند گیگابایت تا چند ترابایت است

 

مدل‌های انباره داده

از منظر معماری‌های انباره داده، ما سه مدل انباره داده داریم:

۱٫انباره داده مجازی

انبارداری داده های مجازی چیست؟

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

كيفيت و سازگاري داده‌ها تضمين نمي‌شود. زيرا فعاليت‌های آماده سازی داده‌ها صورت نمي‌گيرند.

به طور معمول، داده‌های تاريخي وجود ندارند.

زمان دسترسي كاربر نهايي بسته به وجود يا عدم وجود منابع عملياتي، ‌بار شبكه و پيچيدگي درخواست، غير قابل پيش بيني است.

۲٫دیتا مارت

Mart data یک الگوی ساختار / دسترسی ویژه برای محیط های انبار داده است که برای بازیابی داده های مشتری مداری استفاده می شود. مارت داده زیر مجموعه ای از انبار داده ها است و معمولاً به یک خط یا تیم تجاری خاص هدایت می شود. در حالی که انبارهای داده دارای عمق گسترده ای در سازمان هستند ، اطلاعات موجود در مارتهای داده مربوط به یک واحد واحد است در واقع دیتا مارت‌ها به موضوعات محدود می‌شوند.

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

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

در کل سه نوع مختلف بازار داده (Data Mart) وجود دارد. وابسته (Dependent)، مستقل (Independent) و ترکیبی (Hybrid).

بازار داده وابسته (Dependent Data Mart) :

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

بازار داده مستقل    (Independent Data Mart) :

در این حالت انبار داده ای وجود ندارد و داده های عملیاتی پس از بررسی تبدیل به دیتامارت های مختلف می شوند.  میتوان گفت بر عکس بازار داده وابسته است که می‌تواند بدون دخالت انبار داده، داده‌ها را از منابع داده استخراج کرده و ذخیره کند. در اين نوع Data Mart زمان پاسخ دهي سيستم بيشتر خواهد بود.

حالت ترکیبی :

حالت ترکیبی  این دیتامارت ها ترکیبی از دو روش قبلی هستند، هم حالتی است که هم از انبار داده استفاده می‌کند و هم به صورت مستقیم از منابع داده، بازار داده را می‌سازد.

 

دیتا مارت