پایگاه داده های NoSQL در صنایع مختلف حضور دارند و از یک دیتا ساینتیست انتظار می رود که با این نوع از دیتابیس ها آشنا باشد. در ادامه به توضیح این که پایگاه داده NoSQL چیست، می پردازیم و شما را با 5 مورد از بهترین ها که از نظر ساختاری با هم متفاوت هستند، آشنا می شویم.
به عنوان یک فردی که در زمینه کار با داده ها خبره است یا به عبارتی به عنوان یک دیتا ساینتیست:
در نظر بگیرید دنیای امروزی را که در سرویس اینستاگرام در هر ثانیه بیش از 900 تصویر و 8,500 پیام بارگذاری می شود.
بی شک پایگاه داده های مبتنی بر SQL پاسخگوی چنین حجم سرویس دهی نیست.
اما پایگاه داده های NoSQL چگونه به این حجم از درخواست ها پاسخ می دهند؟
برای رسیدگی به این میزان درخواست نیاز به یک سیستم پایگاه داده توزیع شده داریم که بتواند چندین گره تشکیل بدهد و همچنین تقسیم پذیر باشد.
شاید شنیده باشید که می گویند پایگاه داده NoSQL پایگاه داده ای است که در آن سیستم ارتباط بین داده ها (relation) وجود ندارد.
این تعریف چندان درست نیست.
این نوع پایگاه های داده می توانند ارتباط بین داده را نیز در خود ذخیره کننده اما به روشی دیگر.
در این نوع پایگاه ها، داده ها در چند جدول تقسیم نمی شوند؛ در این صورت تمامی داده ها در ساختاری یکسان ذخیره می شوند.
در این صورت فشار join زدن بین جدول های مختلف کاسته می شود.
این نوع پایگاه ها، داده را در قالب شی های JSON ذخیره می کنند. هر سند یا document ساختار key-value دارد.
خوب مزیت این نوع پایگاه داده این است که توسعه دهندگان معمولا با ساختار آن آشنا هستند.
حتی اگر آشنا هم نباشند درک آن بسیار ساده است.
از جمله نرم افزار های پایگاه داده ای که از این ساختار برای نگهداری داده استفاده می کنند می توان به MongoDB، Orient DB و BaseX اشاره کرد.
همان طور که از نام آن پیداست، در این نوع پایگاه، داده ها به صورت زوج های key-value ذخیره می شوند.
مقدار می تواند string، integer یا شی های مرکب باشد.
این نوع ساختار به شدت قابل تقسیم بندی است و گسترش است.
در مواقعی که بخواهید اپلیکیشن های وابسته به داده های session بنویسید، این نوع پایگاه داده بسیار کاربرد است.
از جمله نرم افزار هایی که از این ساختار استفاده می کنند می توان به DynamoDB، Redis و Aerospike اشاره کرد.
این نوع پایگاه داده داده ها در رکورد هایی که شبیه به پایگاه داده رابطه ای است نگهداری می کند.
اما این امکان را دارد که تعداد زیادی ستون پویا را نگهداری کند.
این نوع پایگاه ستون ها را به صورت منطقی در خانواده های مختلف (column families) دسته بندی می کند.
برای مثال، در یک پایگاه داده رابطه ای، شما چند جدول دارید اما در یک پایگاه داده بر پایه ستون های گسترده، به جای چندین جدول چندین خانواده ستون دارید.
برخی از مثال های چنین پایگاه داده ای Cassandra و HBase هستند.
در این دسته از پایگاه داده ها، داده به شکل گره و یال ذخیره می شود.بخش گره پایگاه داده اطلاعات درباره موجودیت های اصلی مثل، انسان، مکان، محصولات و… نگهداری می کند.
بخش یال هم ارتباط بین آن ها را نگهداری می کند.
این پایگاه داده ها در مواقعی که نیاز باشد ارتباط و الگو بین داده ها را پیدا کنید، مثل یک شبکه اجتماعی یا موتور های پیشنهاد (مثلا پیشنهاد عبارت جستجو یا پیشنهاد دوست) کاربردی است.
Neo4j، Amazon Neptune برخی از نرم افزار هایی هستند که از این ساختار استفاده می کنند.
MongoDB یکی از پایگاه داده های به شدت مورد استفاده است که از ساختار برپایه سند استفاده می کند.
بر پایه گفته های وب سایت stackshare.io بیش از 3400 کمپانی از این پایگاه داده استفاده می کنند. مثال : Uber، Google، eBay، Nokia و Coinbase
Cassandra یک سیستم پایگاه داده توزیع شده و متن باز است که در ابتدا توسط فیسبوک و تحت تاثیر Big Table گوگل ساخته شد.
این سیستم می تواند با اطلاعاتی در اندازه چند پتا بایت کار کند و به چند هزار درخواست همزمان پاسخ دهد.
بنا به گفته stackshare.io بیش از 400 کمپانی از جمله فیسبوک، اینستاگرام، نت فلیکس، اسپاتیفای و کورسرا از این پایگاه داده استفاده می کنند.
الستیک سرچ هم یک سیستم پایگاه داده NoSQL توزیع شده و متن باز و به شدت مقیاس پذیر و با ثبات است. می توانید روی این سیستم به عنوان یک موتور تحلیل هم حساب کنید.
به سادگی امکان تحلیل، نگهداری و جستجوی در بین حجم زیادی از اطلاعات را داراست.
اگر Full-Text Search کاری است که بسیار در پروژه شما انجام می شود، این سیستم بهترین گزینه است.
حتی امکان جستجو با عبارت های نادقیق نیز در این سیستم وجود دارد.
بیش از 3000 کمپانی شامل Slack، Udemy، Medium و استک آورفلو از این سیستم استفاده می کنند.
این سیستم یک پایگاه داده توزیع شده بر پایه Key-Value است که توسط آمازون ساخته شده و به شدت مقیاس پذیر است.
این سیستم متن باز نیست.
اما به سادگی می تواند 10 تریلیون درخواست را در روز پاسخگو باشد.
بیش از 700 کمپانی از جمله Snapchat، Lyft و Samsung از DynamoDB استفاده می کنند.
HBase نیز یک سیستم متن باز، به شدت مقیاس پذیر و توزیع شده است.
این سیستم به زبان جاوا نوشته شده است و وابسته به Hadoop Distributed File Sytem (HDFS) کار می کند.
بیش از 70 کمپانی از جمله Hike، پینترست و HubSpot از HBase استفاده می کنند.