5 پایگاه داده NoSQL کاربردی که دیتا ساینتیست ها باید آن ها را بشناسند

  • آخرین بروزرسانی در سه‌شنبه 29 سپتامبر 2020

    Average rating 5 / 5. Vote count: 1

پایگاه داده های NoSQL در صنایع مختلف حضور دارند و از یک دیتا ساینتیست انتظار می رود که با این نوع از دیتابیس ها آشنا باشد. در ادامه به توضیح این که پایگاه داده NoSQL چیست، می پردازیم و شما را با 5 مورد از بهترین ها که از نظر ساختاری با هم متفاوت هستند، آشنا می شویم.

اطلاعات درباره پایگاه داده های NoSQL کجا بدرد شما می خورد؟

به عنوان یک فردی که در زمینه کار با داده ها خبره است یا به عبارتی به عنوان یک دیتا ساینتیست:

  • در زمان مصاحبه کاری با سوالاتی درباره پایگاه داده های NoSQL روبرو می شوید
  • در عنوان شغلی دیتا ساینتیست، تحلیل گر داده، تحلیل گر کسب و کار و… با آن روبرو می شوید
  • به منظور جمع آوری داده برای پروژه های خود به اطلاعاتی درباره پایگاه داده ها نیاز خواهید داشت.

در نظر بگیرید دنیای امروزی را که در سرویس اینستاگرام در هر ثانیه بیش از 900 تصویر و 8,500 پیام بارگذاری می شود.

بی شک پایگاه داده های مبتنی بر SQL پاسخگوی چنین حجم سرویس دهی نیست.

اما پایگاه داده های NoSQL چگونه به این حجم از درخواست ها پاسخ می دهند؟

پایگاه داده های متفاوت NoSQL
پایگاه داده های متفاوت NoSQL

برای رسیدگی به این میزان درخواست نیاز به یک سیستم پایگاه داده توزیع شده داریم که بتواند چندین گره تشکیل بدهد و همچنین تقسیم پذیر باشد.

پایگاه داده NoSQL چیست؟

شاید شنیده باشید که می گویند پایگاه داده NoSQL پایگاه داده ای است که در آن سیستم ارتباط بین داده ها (relation) وجود ندارد.

این تعریف چندان درست نیست.

این نوع پایگاه های داده می توانند ارتباط بین داده را نیز در خود ذخیره کننده اما به روشی دیگر.

در این نوع پایگاه ها، داده ها در چند جدول تقسیم نمی شوند؛ در این صورت تمامی داده ها در ساختاری یکسان ذخیره می شوند.

در این صورت فشار join زدن بین جدول های مختلف کاسته می شود.

بهترین ساختار های پایگاه داده NoSQL

1. برپایه سند

این نوع پایگاه ها، داده را در قالب شی های JSON ذخیره می کنند. هر سند یا document ساختار key-value دارد.

مثال ساختار اسنادی پایگاه داده NoSQL
نمونه ای از ساختار اسنادی پایگاه داده NoSQL

خوب مزیت این نوع پایگاه داده این است که توسعه دهندگان معمولا با ساختار آن آشنا هستند.

حتی اگر آشنا هم نباشند درک آن بسیار ساده است.

درک ساده پایگاه داده برپایه سند
درک ساده از پایگاه داده NoSQL برپایه سند

از جمله نرم افزار های پایگاه داده ای که از این ساختار برای نگهداری داده استفاده می کنند می توان به MongoDB، Orient DB و BaseX اشاره کرد.

2. پایگاه داده Key-Value

همان طور که از نام آن پیداست، در این نوع پایگاه، داده ها به صورت زوج های key-value ذخیره می شوند.

مقدار می تواند string، integer یا شی های مرکب باشد.

این نوع ساختار به شدت قابل تقسیم بندی است و گسترش است.

در مواقعی که بخواهید اپلیکیشن های وابسته به داده های session بنویسید، این نوع پایگاه داده بسیار کاربرد است.

از جمله نرم افزار هایی که از این ساختار استفاده می کنند می توان به DynamoDB، Redis و Aerospike اشاره کرد.

3. پایگاه داده بر پایه ستون های گسترده

این نوع پایگاه داده داده ها در رکورد هایی که شبیه به پایگاه داده رابطه ای است نگهداری می کند.

اما این امکان را دارد که تعداد زیادی ستون پویا را نگهداری کند.

این نوع پایگاه ستون ها را به صورت منطقی در خانواده های مختلف (column families) دسته بندی می کند.

برای مثال، در یک پایگاه داده رابطه ای، شما چند جدول دارید اما در یک پایگاه داده بر پایه ستون های گسترده، به جای چندین جدول چندین خانواده ستون دارید.

ساختار Wide Column پایگاه داده NoSQL
ساختار Wide Column پایگاه داده NoSQL

برخی از مثال های چنین پایگاه داده ای Cassandra و HBase هستند.

پایگاه داده های بر پایه گراف

در این دسته از پایگاه داده ها، داده به شکل گره و یال ذخیره می شود.بخش گره پایگاه داده اطلاعات درباره موجودیت های اصلی مثل، انسان، مکان، محصولات و… نگهداری می کند.

بخش یال هم ارتباط بین آن ها را نگهداری می کند.

این پایگاه داده ها در مواقعی که نیاز باشد ارتباط و الگو بین داده ها را پیدا کنید، مثل یک شبکه اجتماعی یا موتور های پیشنهاد (مثلا پیشنهاد عبارت جستجو یا پیشنهاد دوست) کاربردی است.

Neo4j، Amazon Neptune برخی از نرم افزار هایی هستند که از این ساختار استفاده می کنند.

بهترین نرم افزار های پایگاه داده NoSQL

1. MongoDB

MongoDB یکی از پایگاه داده های به شدت مورد استفاده است که از ساختار برپایه سند استفاده می کند.

بر پایه گفته های وب سایت stackshare.io بیش از 3400 کمپانی از این پایگاه داده استفاده می کنند. مثال : Uber، Google، eBay، Nokia و Coinbase

پایگاه داده MongoDB
پایگاه داده NoSQL MongoDB

موارد استفاده

  1. اگر قصد یکپارچه سازی چندین منبع داده مختلف را دارید MongoDB بهترین پایگاه داده NoSQL برای شماست.
  2. اگر تعداد عملیات نوشتن و خواندن بسیار زیاد است اما از بین رفتن بخشی از داده ها در حین کرش کردن سرور برایتان اهمیتی ندارد.
  3. می خواهید رفتار مشتریان خود را برای تحلیل به ثبت برسانید

2. Cassandra

Cassandra یک سیستم پایگاه داده توزیع شده و متن باز است که در ابتدا توسط فیسبوک و تحت تاثیر Big Table گوگل ساخته شد.

این سیستم می تواند با اطلاعاتی در اندازه چند پتا بایت کار کند و به چند هزار درخواست همزمان پاسخ دهد.

بنا به گفته stackshare.io بیش از 400 کمپانی از جمله فیسبوک، اینستاگرام، نت فلیکس، اسپاتیفای و کورسرا از این پایگاه داده استفاده می کنند.

پایگاه داده Cassandra
پایگاه داده NoSQL Cassandra

موارد استفاده

  1. اگر بیشتر عملیات شما بر روی داده، نوشتن است تا خواندن Cassandra بهترین پایگاه داده NoSQL حال حاضر است.
  2. اگر در شرایطی هستید که بیشتر در دسترس بودن داده برایتان مهم است تا ثبات. مثلا می توانید از آن برای یک وب سایت شبکه اجتماعی استفاده کنید اما نه برای سیستم بانکی
  3. در کوئری هایی که می فرستید تعداد join ها و اجتماع ها کم است.
  4. سیستم نظارت بر سلامت، داده های آب و هوایی، پیگیری سفارشات و داده هایی که بر حسب زمان تغییر می کنند نمونه های خوبی هستند که برای کار با آن ها از پایگاه داده Cassandra استفاده کنیم.

3. ElasticSearch

الستیک سرچ هم یک سیستم پایگاه داده NoSQL توزیع شده و متن باز و به شدت مقیاس پذیر و با ثبات است. می توانید روی این سیستم به عنوان یک موتور تحلیل هم حساب کنید.

به سادگی امکان تحلیل، نگهداری و جستجوی در بین حجم زیادی از اطلاعات را داراست.

اگر Full-Text Search کاری است که بسیار در پروژه شما انجام می شود، این سیستم بهترین گزینه است.

حتی امکان جستجو با عبارت های نادقیق نیز در این سیستم وجود دارد.

پایگاه داده Cassandra
پایگاه داده NoSQL ElasticSearch

بیش از 3000 کمپانی شامل Slack، Udemy، Medium و استک آورفلو از این سیستم استفاده می کنند.

موارد استفاده

  1. اگر Full-Text Search جزئی از کار شماست، Elasticsearch بهترین گزینه است.
  2. اگر در پروژه خود ربات های پاسخگو به چت دارید که به سوالات احتمالی پاسخ می دهد و ممکن است افراد در رابطه با این ربات کلمات را اشتباه نیز بنویسند، ویژگی Fuzzy Matching می تواند در ای سیستم برای شما بسیار کاربردی باشد.
  3. این سیستم در نگهداری از گزارشات مشکل (Log) و تحلیل آن ها کاربردی است.

4. Amazon DynamoDB

این سیستم یک پایگاه داده توزیع شده بر پایه Key-Value است که توسط آمازون ساخته شده و به شدت مقیاس پذیر است.

این سیستم متن باز نیست.

اما به سادگی می تواند 10 تریلیون درخواست را در روز پاسخگو باشد.

بیش از 700 کمپانی از جمله Snapchat، Lyft و Samsung از DynamoDB استفاده می کنند.

پایگاه داده DynamoDB
پایگاه داده NoSQL DynamoDB

موارد استفاده

  1. اگر به دنبال پایگاه داده ای هستید که بتواند کوئری های Key-Value را در حالی که تعدادشان زیاد است به خوبی اجرا کند، این سیستم گزینه مناسبی است.
  2. اگر در روند کاری پروژه شما پردازش تراکنش به صورت آنلاین (OLTP) وجود دارد، مثلا برای سایت های رزرو بلیط یا بانکداری که داده ها می بایست بسیار با ثبات باشد، گزینه مناسبی است.

5. HBase

HBase نیز یک سیستم متن باز، به شدت مقیاس پذیر و توزیع شده است.

این سیستم به زبان جاوا نوشته شده است و وابسته به Hadoop Distributed File Sytem (HDFS) کار می کند.

بیش از 70 کمپانی از جمله Hike، پینترست و HubSpot از HBase استفاده می کنند.

پایگاه داده HBase
پایگاه داده NoSQL HBase

موارد استفاده

  1. برای کار با این سیستم دستکم می بایست چند پتابایت اطلاعات برای پردازش داشته باشد در غیر این صورت نتیجه دلخواه را نمی گیرید.
  2. اگر در کار خود نیاز به دسترسی لحظه ای و تصادفی به داده داری، HBase گزینه خوبی خواهد بود.
  3. اگر می خواهید به صورت لحظه ای برای میلیارد ها کاربر خود پیام به ثبت برسانید
برای دنبال کردن نوشته های کاپ کد به کانال تلگرامی آن (cupcode_ir@) بپیوندید!

دیدگاه خود را بیان کنید

@