اگر شما به دنیای دادهها و هوش تجاری علاقه دارید، احتمالا درباره تفاوت OLTP و OLAP کنجکاو شدهاید و دوست دارید با تفاوتهای این دو مفهوم بیشتر آشنا شوید. این دو سیستم دقیقا مانند دو همتای خود “ETL و ELT” یا ” دریاچه داده و انبار داده” با هم تفاوتهایی دارند. البته تفاوت OLTP و OLAP کمی پیچیدهتر است.به همین دلیل، آشنایی درست با این مفاهیم میتواند کار شما را آسان تر کند. اجازه بدهید در ابتدا مخفف این دو کلمه را بررسی کنیم و سپس به بررسی جوانب مثبت و منفی آنها بپردازیم.
آشنایی با تفاوت OLTP و OLAP
قبل از توضیح در مورد فرآیند این دو مفهوم اجازه دهید با معنی آنها آشنا شویم. OLTP سیستم پردازش تراکنش آنلاین است و به سیستم پردازش تحلیلی آنلاین نیز OLAP میگویند. تنها یک کلمه در این دو عبارت اختصاری متفاوت است: “تراکنشی” و “تحلیلی”. این که کلمهی “آنلاین” در هر دو مورد ظاهر میشود، نشان میدهد که هر دو سیستم، برنامههایی را در فضای ابری و برای مدیریت دادهها ایجاد کرده و اجرا میکنند.
به طور خلاصه، تفاوت بین OLTP و OLAP به فرآیند تراکنشی یا تحلیلی که مورد نیاز شما است، بستگی دارد. البته این تنها تفاوت این سیستم نیست. سرویسهای تراکنشی و تحلیلی در موارد مختلفی استفاده میشوند که نیاز به طراحیهای متفاوتی دارد. میتوان با اطمینان زیاد گفت که هیچ کس از انبار داده (DWH) به عنوان سیستم تراکنشی استفاده نمیکند.
سیستم پردازش تراکنش آنلاین (OLTP) چیست؟
به زبان ساده، یک سیستم پردازش تراکنش آنلاین (OLTP) کارهایی از قبیل فروش،ثبت نام کاربران، به روزرسانی آدرسها و حذف از سبد خرید را انجام میدهد.
برای اینکه بهتر متوجه شوید فروشگاهی را در نظر بگیرید که به عنوان یک سایت تجارت الکترونیکی، خدمات ارائه میدهد. بیزینس فروش کالا در حقیقت تراکنشی است. شما به کمک این سیستم میتوانید توضیحات یک محصول خاص را بازیابی کنید،یا محصولاتی را که قیمتی پایینتر از حد انتظار دارند، لیست کنید. در ادامه به چند ویژگی مهم این سیستم اشاره کردهایم:
- واحدهای کوچک اما، پر تکرار کاری را شامل میشود.
- ابتدا عناصر تکی و منحصر به فرد دادهها را مورد هدف قرار میدهند. به عنوان مثال، یک کاربر اضافه میشود، یک آدرس آپدیت یا یک مورد از سبد خرید حذف میشود.
- به فرآیند خواندن و اصلاح دادهها اهمیت میدهند.
- به تاخیر کم و همگام سازی فوری نیاز دارند: اگر کالایی از سبد خرید حذف شود، این فرآیند باید سریع انجام شود. برای اینکه بهتر متوجه شوید بازخورد منفی مشتریان را تصور کنید. زمانی که آنها کالاهایی را نخواستند و قبل از اینکه به مرحلهی حساب کردن برسد از سبد خود حذف کردند اما در نهایت، در فاکتور خود آن محصول را مشاهده میکنند.
- در درجه اول به ثبت وضعیت فعلی اهمیت میدهد.
احتمالا این فکر به ذهن شما خطور کرده که موارد بالا تقریبا مانند عملکرد هر اپلیکیشن وب مدرن دیگری هستند، در حقیقت، هر چیزی که دارای یک لاگین (ورود) یا عملکرد “ایجاد X” باشد. اپلیکیشنهایی که با مشتری در ارتباط هستند مانند فایو ترن (Fivetran) با تراکنشهایی مانند «ایجاد یک اتصال یا کانکشن» برنامهای از این نوع محسوب میشوند. یا پاور بی آی (Power BI) که یک ابزار هوش کسب و کار قدرتمند است.
یک نکته جالب برای درک این مطلب این است که OLTP به کل سیستم هایی اطلاق میشود که نوع خاصی از کار را انجام میدهند و صرفا پایگاه داده نیستند. در مورد OLTP باید به این نکته توجه کنید که بیشتر کارهایی که مربوط به اعمال قوانین کسب و کار است، توسط اپلکیشن مدیریت میشود. این اپلیکیشن تقریباً از یک پایگاه دادهای که برای عملکرد تراکنشی طراحی شده، استفاده میکند. اما اغلب این اپلیکیشن است که “پردازش” را انجام میدهد و پایگاه داده صرفاً یک راه حل ذخیره سازی در سیستم را ایجاد میکند. اگر بخواهیم به طور خلاصه بیان کنیم، OLTP یک سیستم اپلیکیشن محور است.
سیستم پردازش تحلیلی آنلاین (OLAP) چیست؟
سیستمهای پردازش تحلیلی آنلاین (OLAP)، روی متراکم سازی دادهها متمرکز هستند تا بتوانند بهتر تجزیه و تحلیل کنند.
ویژگی آنها مقیاس پذیری و استفاده از محاسبات توزیع شده برای مدیریت مجموعهی دادههای زیاد است. به عنوان مثال میتوان به دیتا استورهای ستونی مانند اسنو فلیک (Snowflake)، رد شیفت (Redshift) و بیگ کوئری (BigQuery) و همچنین سیستمهای توزیع شده مانند هادوپ (Hadoop) و اسپارک (Spark) اشاره کرد. برخی از خصوصیات مهم آن را در اینجا بیان میکنیم:
- دادهها بصورت آنلاین ذخیره شده و مورد دسترسی قرار میگیرد. این کار بینشهای تحلیلی را در همه کاربران همگام سازی میکند.
- در ابتدا از مواردی مانند گزارشها استفاده میکنند و خلاصهها را در میان حجم زیادی از نقاط داده با متراکم سازی برمیگردانند.
- بسامد میزان کار کمتر است اما ممکن است حجم و مقدار کار بیشتر باشد. یک سیستم OLAP متوسط که به عنوان انبار داده برای یک فروشگاه آنلاین عمل میکند، ممکن است به صورت دوره ای کوئریهایی را که هزاران ردیف در آن قرار دارد، پردازش کند.
- نوشتن داده از اولویت پایین تری نسبت به خواندن داده برخوردار است. هر سیستم OLAP فعال، به طور مداوم از مجموعه دادههای خود گزارش تهیه میکند.
یک OLAP آنلاین و مدرن باید از محاسبات توزیع شده استفاده کند تا مقیاس پذیری را برای پردازش تحلیلی پیچیده در مجموعه دادههای بزرگتر فراهم کند. در مورد OLTP باید بگویم که بیشتر پردازشها در دستورالعمل اپلیکیشن یا برنامه انجام میشود و پایگاه داده نقش ثانویه را ایفا میکند. در عوض، در دنیای OLAP سیستم پایگاه داده ما یعنی یک انبار داده در مرکز قرار دارد. این حداقل محیطی است که کار در آن انجام می شود.
مقیاس و کاربرد سیستم OLAP ما به عواملی بستگی دارد. به عنوان مثال، چگونه اسپارک جاب (Spark Job) میتواند دادههای ما را شکل دهد یا اسنو فلیک (Snowflake) به چه سرعتی دستور SQL ما را برمیگرداند. تیمی از تحلیلگران میتوانند با اجرای کد فقط برای انبار داده، مدلهای داده را برای داشبورد و گزارشها ایجاد کنند. برخی از ابزارهای تجسم داده در بالای انبار داده (DWH) قرار دارند و از انبار داده برای انجام پردازش استفاده میکنند. این دقیقاً همان کاری است که سیستم عاملهای رایج BI مانند مود (Mode)، لوکر (Looker) کیولیک (Qlik) و موارد دیگر انجام میدهند.
پردازش تحلیلی آفلاین
سیستم پردازش تحلیلی آفلاین سیستمی است که وظیفهی اصلی آن تجزیه و تحلیل است اما لازم نیست که به صورت توزیع شده در دسترس باشد. هنوز هم این سیستم بسیار رایج است و از نمونههای شناختهی شدهی آن میتوان به اکسل مایکروسافت (Microsoft Excel) اشاره کرد. پاور بی آی کلاسیک (Classic PowerBI) و نرم افزار هوش تجاری Tableau (تحلیل دادهها و اخذ تصمیمات) دو مثال قابل توجه دیگر هستند.
به طورکلی، پردازش تحلیلی آفلاین همان نیاز سیستمهای OLAP را برطرف میکند اما تفاوتهایی هم دارد. اگر گزارشی را که در اکسل (Excel) ایجاد شده، در نظر بگیریم میتوان برخی از خصوصیات متمایز پردازش تحلیلی آفلاین را این گونه بیان کرد:
- دادهها به صورت محلی یعنی آفلاین ذخیره و محاسبه می شوند. تغییر دادن برخی قسمتها روی نسخههای مشابه گزارش، تأثیر نمیگذارد.
- توانایی محدودی برای تأخیر کم و همگام سازی در زمان واقعی یا ریل تایم وجود دارد. پردازش تحلیلی آفلاین به صورت مراحلی جداگانه برای تولید گزارش استفاده میشود. زمینه و حرکت تاریخی در طول زمان، مهمتر از وضعیت فعلی است.
• ورودیها به ندرت و به صورت گروهی تغییر میکنند: فایل CSV از منبع خود بارگیری میشود و ممکن است در یک بازهی روزانه، هفتگی یا حتی ماهانه جایگزین شود.
پردازش تحلیلی آفلاین به غیر از ذخیره یا منبع داده نیازی به پایگاه داده ندارد. منطق کسب و کار اپلیکیشن و تراکم سازی تحلیلی توسط ابزار اجرا میشود. البته طراحی این ابزارها خیلی سریع با دو مشکل مهم رو به رو شد:
- ذخیرهی گزارش آفلاین گاهی باعث به وجود آمدن مشکلات اساسی میشود. مثلا دو گزارشی که یکسان هستند در کامپیوترهای جداگانه، از هم جدا و نامرتبط میشوند.
- قدرت پردازش ما توسط کامپیوتری که ما از آن استفاده میکنیم، محدود میشود. هیچ مدل طراحی شناخته شدهای برای تسهیل مقیاس گذاری حجم دادهی ما از صدها هزار نقطه داده تا صدها میلیون وجود ندارد.
با وجود اینکه از پردازش تحلیلی آفلاین برای گزارشهای لحظهای در مقیاس کوچک میتوانیم استفاده کنیم اما به دلیل محدودیتهایی که دارد تا حد زیادی منسوخ شده است.
چه زمانی از OLAP و OLTP استفاده کنیم؟
در حال حاضر، شما باید تفاوت OLAP و OLTP را فهمیده باشید. به طور خلاصه، اینها سیستمهایی هستند که هر یک به ترتیب برای اهداف مختلف، یعنی تجزیه و تحلیل و تراکنشها سازگار هستند. اگر در حال گزارش گیری یا خلاصه کردن مجموعه دادههای زیادی هستید از OLAP استفاده کنید. اگر در حال وارد کردن و لاگین کردن کاربران یا قرار دادن و به روزرسانی قابلیت row level هستید، از OLTP استفاده کنید. اگر به احتمال زیاد شما ترکیبی از موارد بالا را انجام میدهید، در این صورت به هر دو نوع پایگاه داده در قسمت های مختلف پشته (stack) خود نیاز خواهید داشت.
بررسی مزایای سیستم OLAP و OLTP
این دو سیستم دارای مزیتهای هستند که میتوانند بسیار قابل توجه باشند. از جمله مزیتهای OLAP میتوان به این موارد اشاره کرد: سیستم پردازش تحلیلی آنلاین یک بستر واحد برای انواع نیازهای تحلیلی کسب و کار ایجاد میکند. مزیت اساسی OLAP سازگاری دادهها و محاسبات است. همچنین، برای نظارت بر دستورالعملها و اطمینان از اطلاعات حساس، محدودیتهای امنیتی برای مشتری اعمال میشود.
همچنین مزایای سیستم OLTP شامل این موارد میشوند: این سیستم تراکنشهای روزانهی یک سازمان را اداره میکند. همچنین با ساده سازی فرایندهای فردی پایگاه مشتری یک سازمان را گسترش میدهد.
بررسی معایب این سیستمها
سیستم پردازش تحلیلی آنلاین (OLAP) و سیستم پردازش تراکنش آنلاین OLTP)) در کنار مزیتهای خود معایبی نیز دارند. در ادامه این معایب را بررسی میکنیم. از جمله معایب سیستم پردازش تحلیلی آنلاین به این موارد میتوان اشاره کرد: اجرا و مراقبت آن به متخصصان فناوری اطلاعات وابسته است؛ زیرا ابزارهای سنتی OLAP برای مدل سازی نیاز به روشی پیچیده دارند. علاوه بر این، ابزارهای OLAP برای مفید بودن نیاز به همکاری بین دپارتمانهای مختلف دارند که معمولا کار غیرممکنی است.
معایب قابل توجه سیستم پردازش تراکنش آنلاین نیز شامل این موارد میشود: اگر سیستم OLTP با نقص سخت افزاری روبرو شود، تراکنش آنلاین به شدت تحت تأثیر قرار میگیرد. همچنین از آنجایی که سیستم OLTP به چندین کاربر این امکان را میدهد تا به طور همزمان به دادههای یکسان دسترسی داشته باشند و بتوانند آنها را تغییر دهند، در نتیجه ممکن است نامنظمی ایجاد شود. این یک نقطه ضعف قابل توجه در سیستم OLTP است. بنابراین سازمانی که از این روش استفاده میکند، باید مراقب این نکته باشد.
در پایان امیدواریم شما پس از آشنایی با تفاوت OLTP و OLAP و مزیتها، کاربردها و معایب این سیستمها بتوانید از آنها در جایگاه درست کمک بگیرید.