6. 6
مدارک پزشکی
گزارش های وبی
جستجوی اینترنتی
پژوهش های زمین شناسی
داده های هواشناسی
RFID ها
متون و اسناد اینترنتی
شبکه های اجتماعی
نجوم
آرشیو عکس
آرشیو ویدیو
8. 8
290
بایت یعنی یک سوتابایت
یا حتی بزرگتر از آن
9. 9
مدیریت این معماری پیچیده، بسیار پر هزینه است، زیرا:
1 - نیاز به افراد بسیار ماهر داریم، به خصوص اگر با فناوری های چندگانه ای درگیر هستیم
2 - زمان بسیار زیادی صرف توسعه و تست می شود
15. 15
داده هایی مانند داده های هواشناسی، فعالیت های آنلاین کاربران یا تحلیل های اقتصادی
در قالب پایگاه داده ای سنتی)رابطه ای(، کارایی چندانی نخواهند داشت
و در ذخیره سازی های بدون قالب و توزیع شده به بهترین روش کار خواهند کرد
20. 20
NoSQL== Not Only SQL
در سال 2009 ، نیازمندی های یمطرح شده و مورد توجه قرار گرفتند که با استفاده از مدل
رابطه ای سنتی قابل دستیابی نبودند. از آنجا که مسائل جدید به ابزارهای جدید نیا زدارند،
مجموع های بزرگ از ابزارها پا به عرصه وجود گذاشته و مورد توجه بسیاری قرار گرفتند.
دسترس پذیری بالا، مقیاس پذیر یافقی، قابلیت تکثیر (Replication) ، طراحی بدون Schema
و قابلیت MapReduce از جمله زمینه هایی هستند که توسط مجموعه ای جدید از پایگا ههای
داده و تحت عنوان کلی NoSQL در حال توسعه و آزمایشهستند
طرفداران انواع پایگاه داده های غیر رابطه ای معتقدند که
پایگاه داده ی سنتی)رابطه ای(، تنها راه موجود برای ذخیره سازی داده نیستند
اما این به آن معنا نیست که به خودی خود انتخاب نادرستی باشند
جنبش NoSQL
21. 21
• اهمیت
برای درک بیشتر اهمیت NoSQL باید به چالش های موجود امروزی بر سر راه پایگاه های داده
بیشتر توجه کرد
ه ماکنون با توسعه فناوری های مختلف و قابلیت نمون هبرداری و تولید حجم عظیمی از داد هها،
امکان ذخیره سازی و تحلیل آن ها چالشی بزرگ به شمار م یآید. امروزه سرویس دهندگان
بسیاری به ذخیره سازی و ارائه محتوای عظیم باینری به کاربران خود در شبکه نیاز دارند که
در نوع خود، چالشی بسیار بزرگ به شمار م یآید
جنبش NoSQL /اهمیت
23. 23
جنبش NoSQL /کارایی
• کارایی
کارایی بسیار بالا در ذخیره سازی و ارائه داده های باینری مانند اسناد PDF و فایل های MP3 ،
در مقیاس وسیع، یکی از بهترین کاربردهایی است که پایگاه های داده ای NoSQL شایستگی
خود را در فراهم کردن آن به اثبات رسانده اند. یک نمونه مناسب در این زمینه، خدمات
AmazonS3 است
علاوه بر موارد ذکر شده، ذخیره سازی، مدیریت و بازیابی داده های گذرا که در بعضی موارد در
مقیاس بالایی در برنام ههای کاربردی امروزی تولید م یشوند نیز یکی دیگر از چال شهای
امروزی است که راه حل مدیریت مناسب آ نها را پایگاه های داده ای NoSQL ارائ هکرد هاند
27. 27
جنبش NoSQL /انواع/ Key-Value
1 - ذخیره سازی Key-Value
• بر اساسمقاله ی آمازون داینامو) Amazon’sDynamo )
• مدل داده ای: مجموعه ای از زوج های کلید-مقدار
• مثال: Redis,Voldemort,Tokyo
28. 28
جنبش NoSQL /انواع/ Column
2 - ذخیره سازی ستون محور
• بر اساسمقاله ی Google’sBigTable
• مدل داده ای: bigtable,columnfamilies
• مثال: HBase,Hypertable,Cassandra
29. 29
جنبش NoSQL /انواع/ Document
3 - ذخیره سازی سندگرا
• الهام گرفته از یادداشت های لوتوس
• مدل داده ای: مجموعه ای از مجموعه ی کلید-مقدار ها
• مثال: CouchDB,MongoDB
{ FirstName:"Bob", Address:"5 Oak St.", Hobby:"sailing“
}
{ FirstName:"Jonathan", Address:"15 WanamassaPoint Road", Children:[ {Name:"Michael",Age:10}, {Name:"Jennifer",Age:8}, {Name:"Samantha",Age:5}, {Name:"Elena",Age:2} ] }
30. 30
جنبش NoSQL /انواع/ Graph
4 - ذخیره سازی Graph
• الهام گرفته از اویلر و تئوری گراف ها
• مدل داده ای: گره ها، ارتباط ها، کلید-مقدار روی هرکدام
• مثال: AllegroGraph,Sones,Neo4j
31. 31
جنبش NoSQL /انواع/توضیحات
ا
گر داشته باشیم یک همه چیز شبیه به
RDBMS
Key-Value
Document
Graph db
جدول
کلیدها و مقدارها
سندها
رأس ها و گره ها
35. 35
جنبش NoSQL / Polyglot Persistence
MongoDB
Product Catalog
Cassandra
User Activity Logs
Cassandra
Analytics
RDBMS
Reporting
Redis
User sessions
Neo4J
Recommendations
Riak
Shopping Cart
RDBMS
Financial Data
36. 36
MySQL
واسه ذخیره سازی داده هایی که کم حجم و با ارزش هستن ولی غالبا
تغییر نمیکنن یا تراکنش خیلی عجیب و قریبی ندارن و همچنین
واسه تمامی کاربران به شکل ثابتی وجود دارن. مثل مشخصات
پروفایل و یا اطلاعات صورت حسابشون که میشه با یه طراحی خوب و
ایندکس کردن و تکنیک های دیگه، راحت مدیریت کرد
جنبش NoSQL / Polyglot Persistence /مثال
37. 37
CouchDB یا MongoDB
از CouchDB یا MongoDB واسه ذخیره سازی داده های
با ارزش و در عین حال حجیم مثل وقایع نگاری فعالیت کاربران) Log .)
از این پایگاه ها که به پایگاه های داده Document-Oriented Database
معروفن اغلب واسه داده هایی که به ندرت تغییر میکنن یا اینکه نسخه سازی
توشون خیلی اهمیت داره، استفاده میشه
جنبش NoSQL / Polyglot Persistence /مثال
38. 38
Neo4j
از Neo4j که یک فریم ورک پایگاه داده گرافی هست مثلا واسه درست کردن
سیستم جستجو خیلی باحال که از نود های توش و یال های بین نود ها بشه
روابط خیلی جالبی رو بین چیز های مختلف پیدا کرد. همین گراف سرچ فیس
بوک مثال خوبی واسه کاربرد این نوع پایگاه داده هست. برای مثال اگه
دوست داشتین بدونین پسر خاله های بالای 30 سال دوستاتون که عاشق
کوهنوردی و فیلم دیدن هستن، تو سن میشل فرانسه قهوه خوردن و عکس
گرفتن، از بستنی دایتی خوششون میاد، احتمالا از چه غذا هایی متنفرن)بر
اساس الگوریتم های فرا اکتشافی و هوشمند!(، برین سراغ این نوع پایگاه
های داده
جنبش NoSQL / Polyglot Persistence /مثال
39. 39
Hadoop
از Hadoop واسه اطلاعاتی که روی حجم عظیمی از سرور های توزیع شده نه
الزاما خیلی خفن و گرون)اونایی که قدرت پردازشی خیلی عجیب و قریبی
دارن( بلکه حتی سرور های قیمت متوسط یا ارزون، Scaling Out شده)سرور
هایی که به صورت افقی گسترش پیدا کرده( که این کار مبتنی بر تکه تکه
کردن داده ها (Data Partitioning) هست. خیلی جالبه بدونین گوگل و یاهو
از همین فریم ورک پایگاه داده واسه ذخیره صفحات وب تو سرور هاشون،
همچنین تکنیک هایی که تو پرس و جو های موازی و ایندکس کردن به همراه
الگوریتم های پیشرفته و بسیار بسیار محرمانه ایی که هممون در موردش
شنیدیم، واسه سرچ استفاده میکنن
جنبش NoSQL / Polyglot Persistence /مثال
40. 40
این رو هم بگم نمیشه خیلی نسخه پیچید که فلان فریم ورک پایگاه داده
NoSQL مختص این کاره ولی به درد کارای دیگه نمیخوره. هر چی باشه نقش
اصلی رو طراحی پایگاه داده بازی میکنه. شاید یه طراحی اونقدر عالی باشه که
بشه باهاش یه کارای که از اون فریم ورک انتظار نمیره رو ممکن کرد