برای سالها جایگزینهای SQL مبتنی بر هادوپ مورد توجه کاربران بود، این جایگزینها ارزان و متنباز بودند و به خوبی در محیط ابرهای عمومی تجربه شده بودند. در بسیاری از موارد این پایگاهدادهها قابلیت مقیاسپذیری برای حجم گستردهای از «بزرگ داده» را در مقابل انواع رابطهای عظیم الجثه داشتند.
البته باید درنظر داشت که پردازشکننده پایگاهدادههای NoSQL برای بدست آوردن این پیروزی، یک رویکرد متفاوت را نسبت به انواع رابطهای/SQL در مدیریت دادهها، انتخاب کردند. رویکردی که به طور ویژه آنها را در استفاده، نسبت به پایگاه دادههای SQL بسیار محدودتر میکرد.
سه مورد از این محدودیتها عبارتند از:
- عدم انسجام داده مکرر
- عدم پشتیبانی تجزیه و تحلیل «عمیق» تطبیقی
- عدم داشتن ویژگی دسترسیپذیری بالا برای ابرهای خصوصی و ترکیبی
عدم انسجام داده مکرر
هادوپ، مپردیوس، مانگو دیبی، هایو و غیره طراحی شدهاند تا فراتر از پایگاههای داده SQL در ابرهای عمومی با ورودی بسیار سریع از داده، قابل مقیاسپذیری باشند. برای این هدف به آنها امکان «سازگاری شرطی» در هر عملیات «commit» اجازه داده شده است که باعث اطمینان یافتن از سازگاری در زمان انجام عملیات با تاخیر میشود. مزیت این روش جلوگیری از نگه داشتن تراکنشها (transaction) است. البته در طول این تاخیر، برخی دادهها نادرست خواهند بود که کاربر این مساله را به عنوان هزینه پرداختی برای بینش اضافی که از دادهها پیدا میکند، میپذیرد.
اخیرا سیستمهای برپایه هادوپ شروع به اداره کردن عملیات بهروزرسانی سریع در ابرها کردهاند. در بیشتر مواقع سیستمهای برپایه هادوپ، دادهها را قبل از آن که بر روی دیسک نوشته شوند، آماده میکنند. در نتیجه اگر سیستم پیش از نوشتن داده ها بر روی دیسک «کرش» کند، دادهها از بین میروند. پس از این اتفاق است که تجزیه و تحلیلها با یک مجموعه از دادهها روبرو میشوند که با دادههای خوانده شده اصلی متفاوتاند.
در این سالها پایگاهدادههای مبتنی بر هادوپ، مانند مانگو دیبی، درصدی از دادهها را که سازگارند، بهبود بخشیدهاند. اما هنوز هم به خوبی پایگاه دادههای رابطهای نیستند.
علاوه بر این، پایگاه دادههای مبتنی بر هادوپ شروع به ارائه کردن «دسترسپذیری بالا» عملیاتها کردهاند که باعث اطمینان از نوشتن بر روی دیسک پیش از خواندن میشود. البته در بسیاری از موارد هنوز هم به خوانده شدن قبل از نوشته شدن، اجازه میدهند.
عدم پشتیبانی تجزیه و تحلیل «عمیق» تطبیقی
پایگاهدادههای مبتنی بر هادوپ، برای دست یافتن به کارایی بالا، از سربار نرمافزاری معناشناسیدادهها، به شکل پیچیده جلوگیری میکنند. این نوع معناشناسی به کاربر نهایی این امکان را میدهد تا «what-if» را با استفاده از تجزیه و تحلیل کردن چند بعد از ویژگیهای داده به وسیله روشی انعطافپذیر انجام دهند.
راههای فراوانی برای قطعه کردن داده وجود دارد و یا این که دادهها در نوع و معنا نسبتا سریع در حال تغییر هستند. انجام دادن چنین «پرسشی (query)» در لحظه ممکن است ترجیح داده شود، اما وقتی دانشمندان دادهها میخواهند تا با بررسی عمقی، بیشتر در مورد چیزی که اتفاق میافتد بدانند، SQL و رابطه پیروز میشود.
عدم داشتن ویژگی دسترسیپذیری بالا برای ابرهای خصوصی و ترکیبی
این موضوع تقریبا زمانی که NoSQL تازه ظهور کرده بود دیده میشد، اما محدودیت بزرگی است. در حالی که IBM، EMC، Oracle یا یک SAP ممکن است بسیاری از ویژگیهای failover، remote-copy و roll-back/roll-forward را ارائه کنند، این ویژگیها در NoSQLها تقریبا نادر است. علاوه بر این پایگاهدادههای SQL سالهای بسیار متمادی زمان داشتهاند تا بهتر و بهتر راهی را برای بدست آوردن «دسترسپذیری بالا» در محیطهای مقیاس بزرگ و مقیاس متوسط، مشخص کنند. اما راهکارهای NoSQL در ابرهای عمومی مقیاس بزرگ انبوه به دنیا آمدهاند و اکنون باید خود را با ابرهای خصوصی تطبیق بدهد.
SQL یا NoSQL یا چیزی دیگر
یکی از سخنرانان نشست «In-Memory Computing Summit» که در سانفراسیسکو برگزار شد و در آن هر دو نوع پایگاهدادههای SQL و NoSQL به خوبی معرفی شدند، گفت: آنها یک جابجایی را در کلاینتهایشان از SQL به NoSQL دیدهاند و اکنون در حال مشاهده بازگشت دوباره به سمت SQL هستند. معنی این اتفاق به گوشه رانده شدن NoSQl نیست. اما میتوان حدس زد که NoSQL بیشتر و بیشتر بر روی پردازش «عملیاتی» داده تمرکز کرده است در حالی که پایگاهدادههای SQL به نمایش قدرتشان در تجزیه و تحلیل ادامه میدهند. بنابراین محدودیتهای NoSQL نشاندهنده یک تقسیم کار است که باعث ایجاد یک حس بزرگ در بسیاری از کاربردها با حتی یک معماری پایگاهدادههای ابری وسیع یا سازمانی وسیع میشود.
محدودیتهای NoSQL به معنای فقدام سودمندی به شکل کلی نیست و آنها از پس وظایف بر میآیند. با این حال حدس زده میشود کاربران زرنگ هواخواهی خودشان را برای هم نوعان هادوپ محدود خواهند کرد.