محمد حسین حاجی وندی
محمد حسین حاجی وندی
خواندن ۵ دقیقه·۲ سال پیش

OLTP vs OLAP

عنوان رو هوش مصنوعی به عکس تبدیل کرده!
عنوان رو هوش مصنوعی به عکس تبدیل کرده!


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

به دلیل اینکه در سامانه های OLTP و OLAP تعامل با کاربر وجود دارد از کلمه ی برخط (Online) در نام‌گذاری این سامانه ها استفاده شده است.

اما منظور از تراکنش چیست؟

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

بیشتر کاربرد سامانه‌های OLTP در موارد زیر است:

  • دستگاه‌های خودپرداز
  • سیستم‌های رزواسیون
  • سیستم‌های خرید اینترنتی

و …

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

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

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

از لحاظ تاریخی هم، کسب و کار ها ابتدا از سامانه های OLTP استفاده می کردند و پرس‌و‌جو های خود را به زبان SQL تبدیل میکردند و روی سامانه ها اجرا می کردند و جواب را دریافت می‌کردند. تا اینکه در اواخر دهه ۸۰ میلادی نیازمندی های تحلیلی پیشی گرفتند و سازمان ها شروع کردند به توسعه و به کارگیری سامانه‌های OLAP و پایگاه های داده ی مجزایی برای اینکار اختصاص دادند تا پرس‌و‌جو های تحلیلی را روی آن اجرا کنند که به این پایگاه داده ها، پایگاه داده ی تحلیلی گفته می شود.

پایگاه‌داده‌ی تحلیلی چیست؟

پایگاه‌داده‌ی تحلیلی یک پایگاه داده ی مجزاست که به تحلیل گران این امکان را می دهد که پرس‌و‌جوهای خود را اجرا کنند بدون اینکه سامانه های OLTP را تحت تأثیر قرار دهند. فلسفه ی وجودی پایگاه‌داده‌ی تحلیلی از آن جا می آید که سامانه های OLTP می بایست دسترس پذیری بالا و تاخیر کم داشته باشند همچنین برای نیاز های مختلف پایگاه داده های متفاوتی وجود دارد (مثلا بخش فروش بخش بازاریابی و بخش نظرات یک سایت فروش آنلاین را در نظر بگیرید) قبل از وجود پایگاه‌داده‌ی تحلیلی تحلیل گران می رفتند و پرس‌و‌جو های خود را به صورت ad-hoc روی سامانه های OLTP اجرا می‌کردند و تعداد زیادی رکورد را درگیر محاسبات و پردازش می‌کردند که باعث آسیب رسیدن به کارایی آن سامانه ها می‌شد بنابر این پایگاه‌داده‌ی تحلیلی به وجود آمد که مستقل از سامانه ی OLTP به نیاز های تحلیل‌گران پاسخ دهد بدون اینکه تاثیر منفی روی سامانه ی OLTP بگذارد.

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

ارتباط بین سامانه های OLTP و OLAP و پایگاه‌داده‌ی تحلیلی
ارتباط بین سامانه های OLTP و OLAP و پایگاه‌داده‌ی تحلیلی


از دیدگاه ناظر بیرونی پایگاه‌داده‌ی تحلیلی و سامانه های OLTP شبیه به هم هستند و همگی دارای پشتیبانی از SQL به عنوان زبان اجرای پرس‌و‌جوها هستند اما از نظر معماری داخلی تفاوت های مهمی دارند چون برای انواع مختلفی از الگو های اجرا و دسترسی به پرس‌و‌جو پیاده سازی شده اند. ممکن است برخی از توسعه‌دهندگان سامانه‌های پایگاه داده بخواهند ازیکی یا هر دو در یک سامانه ی یکپارچه استفاده بکنند. مثلا برخی از پایگاه‌های داده تجاری مثل Microsoft SQL Server و SAP HANA از هردو سامانه پشتیبانی می کنند.

از جمله پایگاه‌داده‌های تحلیلی متن‌باز می‌توان به موارد زیر اشاره کرد:

بیشتر این پایگاه‌داده‌های تحلیلی متن‌باز از Google’s Dremel ایده گرفته اند.

جدول زیرخلاصه ای از تفاوت بین سامانه های OALP و OLTP است:

تفاوت های سامانه های OLAP و OLTP
تفاوت های سامانه های OLAP و OLTP



منابع


سعی کردم توی این نوشتار به طور خلاصه در مورد تفاوت بین OLAP وOLTP توضیحاتی بگم این اصطلاحات رو ممکنه وقتی درباره‌ی کلان‌داده یا مهندسی‌داده یا مطالب مرتبط با داده مقالاتی می خونید ببینید همچنین خوشحال میشم اگر نقد یا توضیحات تکمیلی در مورد این پست دارید در بخش نظرات برام بنویسید یا به آدرس ایمیلم mhhajivandy@gmail.com ارسال کنید.


مهندسی دادهolap
مهندس نرم افزار
شاید از این پست‌ها خوشتان بیاید