کلانداده و سیستمهای NoSQL
سیستمهای کلانداده و NoSQL فناوریهای مدیریت دادهای هستند که برای حجم، سرعت و تنوعی طراحی شدهاند که پایگاههای داده رابطهای با آنها مشکل داشتند و تضمینهای دقیق رابطهای را با مقیاسپذیری افقی، طرحوارههای انعطافپذیر و دسترسی بالا مبادله میکنند.
Definition
سیستمهای کلانداده، پلتفرمهای مدیریت دادهای هستند که برای مجموعهدادههایی طراحی شدهاند که برای پایگاههای داده سنتی تکگره، بیش از حد بزرگ، سریع یا متنوع هستند؛ سیستمهای NoSQL ذخیرهسازهای غیررابطهای هستند که مدلهای دادهای انعطافپذیر و سازگاری کاهشیافته را برای دستیابی به مقیاسپذیری افقی و دسترسی بالا اتخاذ میکنند.
Scope
این حوزه سیستمهای دادهای را پوشش میدهد که برای مقیاس عظیم طراحی شدهاند: ذخیرهسازهای NoSQL (کلید-مقدار، سندگرا، ستونگسترده و گراف) و مدلهای دادهای انعطافپذیر آنها؛ چارچوبهای پردازش موازی دادهها که از MapReduce نشأت گرفتهاند؛ مبادلات سازگاری-دسترسی که توسط قضیه CAP و طیف مدلهای سازگاری به تصویر کشیده شدهاند؛ و انبار داده و OLAP برای تحلیلهای در مقیاس بزرگ. این حوزه به بررسی چگونگی کاهش یا سازماندهی مجدد مفروضات رابطهای توسط این سیستمها برای دستیابی به مقیاس میپردازد. این حوزه شامل جزئیات داخلی تعهد توزیعشده و اجرای پرسوجوی موازی نمیشود که در حوزه پایگاههای داده توزیعشده و موازی پوشش داده میشوند.
Sub-topics
Core questions
- چه نیازهایی به مقیاسپذیری و انعطافپذیری، حرکت فراتر از پایگاههای داده رابطهای را هدایت کرد؟
- دستهبندیهای اصلی NoSQL چه مدلهای دادهای را ارائه میدهند؟
- چارچوبهای موازی دادهها چگونه مجموعهدادههای عظیم را در سراسر خوشهها پردازش میکنند؟
- قضیه CAP چه مبادلات سازگاری-دسترسی را توصیف میکند؟
- انبارهای داده و OLAP چگونه از پرسوجوهای تحلیلی در مقیاس بزرگ پشتیبانی میکنند؟
Key concepts
- ذخیرهسازهای کلید-مقدار، سندگرا، ستونگسترده، گراف
- مقیاسپذیری افقی
- انعطافپذیری طرحواره
- MapReduce و پردازش موازی دادهها
- قضیه CAP
- سازگاری نهایی
- BASE در مقابل ACID
- انبار داده و OLAP
Key theories
- ذخیرهسازهای NoSQL با مقیاسپذیری افقی
- سیستمهای NoSQL مدل رابطهای تکگره را به نفع مدلهای کلید-مقدار، سندگرا، ستونگسترده یا گراف که در سراسر خوشههای کالایی تقسیم و تکثیر میشوند، رها میکنند و مقیاسپذیری و دسترسی را بر پرسوجوهای غنی و سازگاری قوی اولویت میدهند.
- پردازش موازی دادهها
- چارچوبهایی که از مدل MapReduce پیروی میکنند، محاسبات در مقیاس بزرگ را به عنوان فازهای موازی نگاشت و کاهش بر روی دادههای پارتیشنبندی شده بیان میکنند و پیچیدگی توزیع، زمانبندی و تحمل خطا را از برنامهنویس پنهان میکنند.
- مبادله CAP
- قضیه CAP بیان میکند که یک ذخیرهساز داده توزیعشده نمیتواند به طور همزمان سازگاری، دسترسی و تحمل پارتیشن را تضمین کند و طراحان را مجبور میکند در طول یک پارتیشن شبکه، بین سازگاری و دسترسی یکی را انتخاب کنند.
Clinical relevance
سیستمهای کلانداده و NoSQL زیرساخت دادهای وب مدرن را تامین میکنند: ذخیرهسازهای کلید-مقدار و ستونگسترده از سرویسهای پرتردد پشتیبانی میکنند، چارچوبهای موازی دادهها لاگها و جریانهای کلیک را در مقیاس بزرگ پردازش میکنند، و انبارهای داده به تحلیلهای کسبوکار خدمت میکنند، که این سیستمها را برای مهندسی داده و برنامههای کاربردی در مقیاس بزرگ محوری میسازد.
History
حجم کاری در مقیاس اینترنت در دهه ۲۰۰۰ از آنچه پایگاههای داده رابطهای تکگره میتوانستند مدیریت کنند، فراتر رفت. MapReduce گوگل (۲۰۰۴/۲۰۰۸) و اکوسیستم متنباز Hadoop پردازش دادهها در مقیاس خوشهای را ممکن ساختند؛ Dynamo آمازون (۲۰۰۷) و Bigtable گوگل موجی از ذخیرهسازهای NoSQL را الهام بخشیدند؛ و قضیه CAP بروئر مبادلات سازگاری-دسترسی را که این سیستمها تجسم میکنند، چارچوببندی کرد.
Debates
- سازگاری قوی در مقابل سازگاری نهایی
- سیستمهای NoSQL اغلب دسترسی و سازگاری نهایی را برای پاسخگو ماندن در شرایط پارتیشن انتخاب میکنند، اما این امر مدیریت تضاد را به برنامههای کاربردی منتقل میکند؛ این حوزه در مورد اینکه چه زمانی سازگاری نهایی قابل قبول است در مقابل زمانی که سیستمهای جدیدتر باید تضمینهای قویتری را بازگردانند، بحث میکند.
Key figures
- Jeffrey Dean
- Sanjay Ghemawat
- Eric Brewer
- Werner Vogels
Related topics
Seminal works
- dean2008
- decandia2007
- brewer2012
Frequently asked questions
- آیا NoSQL به معنای عدم وجود SQL است؟
- خیر. NoSQL معمولاً به معنای 'فقط SQL نیست' خوانده میشود. این اصطلاح به ذخیرهسازهای دادهای اشاره دارد که بر اساس مدل رابطهای ساخته نشدهاند و بر SQL متمرکز نیستند، اما بسیاری از سیستمهای NoSQL رابطهای پرسوجوی شبیه SQL را ارائه میدهند، و این اصطلاح یک خانواده گسترده — پایگاههای داده کلید-مقدار، سندگرا، ستونگسترده و گراف — را پوشش میدهد، نه یک فناوری واحد.
- چه زمانی باید یک سیستم NoSQL را به جای یک پایگاه داده رابطهای انتخاب کنم؟
- سیستمهای NoSQL زمانی جذاب هستند که نیاز به مقیاسپذیری افقی در چندین ماشین، ذخیره دادههای انعطافپذیر یا در حال تغییر سریع، یا به حداکثر رساندن دسترسی برای الگوهای دسترسی ساده دارید. پایگاههای داده رابطهای زمانی که به پرسوجوهای غنی، پیوندهای پیچیده و سازگاری تراکنشی قوی بر روی دادههای ساختاریافته نیاز دارید، همچنان ارجح هستند.