1 
بزرگ داده ها و انتخاب ابزار مناسب 
مقداد حاتمی 
meghdad.hatami@gmail.com
2 
بزرگ داده Big Data |
3 
بزرگ داده چیست؟
4 
به مجموعه ای از داده ها می گویند که مدیریت، کنترل و پردازش آنها 
خارج از توانایی راه حل های نرم افزاری موجود است
5 
مثال می خواهید؟
6 
مدارک پزشکی 
گزارش های وبی 
جستجوی اینترنتی 
پژوهش های زمین شناسی 
داده های هواشناسی 
RFID ها 
متون و اسناد اینترنتی 
شبکه های اجتماعی 
نجوم 
آرشیو عکس 
آرشیو ویدیو
7 
در چه حد بزرگ؟
8 
290 
بایت یعنی یک سوتابایت 
یا حتی بزرگتر از آن
9 
مدیریت این معماری پیچیده، بسیار پر هزینه است، زیرا: 
1 - نیاز به افراد بسیار ماهر داریم، به خصوص اگر با فناوری های چندگانه ای درگیر هستیم 
2 - زمان بسیار زیادی صرف توسعه و تست می شود
10 
و ......................
11 
گاهی اوقات، این مدیریت معماری، زمان بسیار بیشتری 
نسبت به زمان توسعه سیستم، نیاز دارد * ! 
* چیزی شبیه خودکشی
12 
راه حل چیست؟
13 
استفاده از یک مدل بدون ساختار و توزیع شده
14 
چرا؟
15 
داده هایی مانند داده های هواشناسی، فعالیت های آنلاین کاربران یا تحلیل های اقتصادی 
در قالب پایگاه داده ای سنتی)رابطه ای(، کارایی چندانی نخواهند داشت 
و در ذخیره سازی های بدون قالب و توزیع شده به بهترین روش کار خواهند کرد
16 
دقیقأ یعنی چه؟
17 
یعنی جنبش NoSQL 
یا 
پایگاه داده های غیر رابطه ای
18 
جنبش NoSQL چیست؟
19
20 
NoSQL== Not Only SQL 
در سال 2009 ، نیازمندی های یمطرح شده و مورد توجه قرار گرفتند که با استفاده از مدل 
رابطه ای سنتی قابل دستیابی نبودند. از آنجا که مسائل جدید به ابزارهای جدید نیا زدارند، 
مجموع های بزرگ از ابزارها پا به عرصه وجود گذاشته و مورد توجه بسیاری قرار گرفتند. 
دسترس پذیری بالا، مقیاس پذیر یافقی، قابلیت تکثیر (Replication) ، طراحی بدون Schema 
و قابلیت MapReduce از جمله زمینه هایی هستند که توسط مجموعه ای جدید از پایگا ههای 
داده و تحت عنوان کلی NoSQL در حال توسعه و آزمایشهستند 
طرفداران انواع پایگاه داده های غیر رابطه ای معتقدند که 
پایگاه داده ی سنتی)رابطه ای(، تنها راه موجود برای ذخیره سازی داده نیستند 
اما این به آن معنا نیست که به خودی خود انتخاب نادرستی باشند 
جنبش NoSQL
21 
• اهمیت 
برای درک بیشتر اهمیت NoSQL باید به چالش های موجود امروزی بر سر راه پایگاه های داده 
بیشتر توجه کرد 
ه ماکنون با توسعه فناوری های مختلف و قابلیت نمون هبرداری و تولید حجم عظیمی از داد هها، 
امکان ذخیره سازی و تحلیل آن ها چالشی بزرگ به شمار م یآید. امروزه سرویس دهندگان 
بسیاری به ذخیره سازی و ارائه محتوای عظیم باینری به کاربران خود در شبکه نیاز دارند که 
در نوع خود، چالشی بسیار بزرگ به شمار م یآید 
جنبش NoSQL /اهمیت
22 
جنبش NoSQL /اهمیت
23 
جنبش NoSQL /کارایی 
• کارایی 
کارایی بسیار بالا در ذخیره سازی و ارائه داده های باینری مانند اسناد PDF و فایل های MP3 ، 
در مقیاس وسیع، یکی از بهترین کاربردهایی است که پایگاه های داده ای NoSQL شایستگی 
خود را در فراهم کردن آن به اثبات رسانده اند. یک نمونه مناسب در این زمینه، خدمات 
AmazonS3 است 
علاوه بر موارد ذکر شده، ذخیره سازی، مدیریت و بازیابی داده های گذرا که در بعضی موارد در 
مقیاس بالایی در برنام ههای کاربردی امروزی تولید م یشوند نیز یکی دیگر از چال شهای 
امروزی است که راه حل مدیریت مناسب آ نها را پایگاه های داده ای NoSQL ارائ هکرد هاند
24 
پایگاه داده ی غیر رابطه ای مثل چه چیزی؟
25
26 
……………………………………………………………………………………………………………… 
Key-Value 
Graph 
……………………………………………………………………………………………………………… 
Column 
Document 
……………………………………………………………………………………………………………… 
جنبش NoSQL /انواع
27 
جنبش NoSQL /انواع/ Key-Value 
1 - ذخیره سازی Key-Value 
• بر اساسمقاله ی آمازون داینامو) Amazon’sDynamo ) 
• مدل داده ای: مجموعه ای از زوج های کلید-مقدار 
• مثال: Redis,Voldemort,Tokyo
28 
جنبش NoSQL /انواع/ Column 
2 - ذخیره سازی ستون محور 
• بر اساسمقاله ی Google’sBigTable 
• مدل داده ای: bigtable,columnfamilies 
• مثال: HBase,Hypertable,Cassandra
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 
جنبش NoSQL /انواع/ Graph 
4 - ذخیره سازی Graph 
• الهام گرفته از اویلر و تئوری گراف ها 
• مدل داده ای: گره ها، ارتباط ها، کلید-مقدار روی هرکدام 
• مثال: AllegroGraph,Sones,Neo4j
31 
جنبش NoSQL /انواع/توضیحات 
ا 
گر داشته باشیم یک همه چیز شبیه به 
RDBMS 
Key-Value 
Document 
Graph db 
جدول 
کلیدها و مقدارها 
سندها 
رأس ها و گره ها
32 
جنبش NoSQL /نظریه CAP
33 
پایگاه داده های رابطه ای یا غیر رابطه ای؟ 
کدام مدل را انتخاب کنیم؟
34 
جنبش NoSQL / Polyglot Persistence 
Polyglot Persistence چیست؟
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 
MySQL 
واسه ذخیره سازی داده هایی که کم حجم و با ارزش هستن ولی غالبا 
تغییر نمیکنن یا تراکنش خیلی عجیب و قریبی ندارن و همچنین 
واسه تمامی کاربران به شکل ثابتی وجود دارن. مثل مشخصات 
پروفایل و یا اطلاعات صورت حسابشون که میشه با یه طراحی خوب و 
ایندکس کردن و تکنیک های دیگه، راحت مدیریت کرد 
جنبش NoSQL / Polyglot Persistence /مثال
37 
CouchDB یا MongoDB 
از CouchDB یا MongoDB واسه ذخیره سازی داده های 
با ارزش و در عین حال حجیم مثل وقایع نگاری فعالیت کاربران) Log .) 
از این پایگاه ها که به پایگاه های داده Document-Oriented Database 
معروفن اغلب واسه داده هایی که به ندرت تغییر میکنن یا اینکه نسخه سازی 
توشون خیلی اهمیت داره، استفاده میشه 
جنبش NoSQL / Polyglot Persistence /مثال
38 
Neo4j 
از Neo4j که یک فریم ورک پایگاه داده گرافی هست مثلا واسه درست کردن 
سیستم جستجو خیلی باحال که از نود های توش و یال های بین نود ها بشه 
روابط خیلی جالبی رو بین چیز های مختلف پیدا کرد. همین گراف سرچ فیس 
بوک مثال خوبی واسه کاربرد این نوع پایگاه داده هست. برای مثال اگه 
دوست داشتین بدونین پسر خاله های بالای 30 سال دوستاتون که عاشق 
کوهنوردی و فیلم دیدن هستن، تو سن میشل فرانسه قهوه خوردن و عکس 
گرفتن، از بستنی دایتی خوششون میاد، احتمالا از چه غذا هایی متنفرن)بر 
اساس الگوریتم های فرا اکتشافی و هوشمند!(، برین سراغ این نوع پایگاه 
های داده 
جنبش NoSQL / Polyglot Persistence /مثال
39 
Hadoop 
از Hadoop واسه اطلاعاتی که روی حجم عظیمی از سرور های توزیع شده نه 
الزاما خیلی خفن و گرون)اونایی که قدرت پردازشی خیلی عجیب و قریبی 
دارن( بلکه حتی سرور های قیمت متوسط یا ارزون، Scaling Out شده)سرور 
هایی که به صورت افقی گسترش پیدا کرده( که این کار مبتنی بر تکه تکه 
کردن داده ها (Data Partitioning) هست. خیلی جالبه بدونین گوگل و یاهو 
از همین فریم ورک پایگاه داده واسه ذخیره صفحات وب تو سرور هاشون، 
همچنین تکنیک هایی که تو پرس و جو های موازی و ایندکس کردن به همراه 
الگوریتم های پیشرفته و بسیار بسیار محرمانه ایی که هممون در موردش 
شنیدیم، واسه سرچ استفاده میکنن 
جنبش NoSQL / Polyglot Persistence /مثال
40 
این رو هم بگم نمیشه خیلی نسخه پیچید که فلان فریم ورک پایگاه داده 
NoSQL مختص این کاره ولی به درد کارای دیگه نمیخوره. هر چی باشه نقش 
اصلی رو طراحی پایگاه داده بازی میکنه. شاید یه طراحی اونقدر عالی باشه که 
بشه باهاش یه کارای که از اون فریم ورک انتظار نمیره رو ممکن کرد
41 
در پایان به یاد داشته باشید که...
42 
گذار به سمت راهکارهای NoSQL 
به دلیل مشکلات و محدودیت های زبان SQL نبوده است 
بلکه به دلیل 
محدودیت های مدل رابطه ای پایگاه داده ای است
43 
با تشکر از توجه شما 
meghdad.hatami@gmail.com

Big Data and select suitable tools

  • 1.
    1 بزرگ دادهها و انتخاب ابزار مناسب مقداد حاتمی meghdad.hatami@gmail.com
  • 2.
  • 3.
  • 4.
    4 به مجموعهای از داده ها می گویند که مدیریت، کنترل و پردازش آنها خارج از توانایی راه حل های نرم افزاری موجود است
  • 5.
    5 مثال میخواهید؟
  • 6.
    6 مدارک پزشکی گزارش های وبی جستجوی اینترنتی پژوهش های زمین شناسی داده های هواشناسی RFID ها متون و اسناد اینترنتی شبکه های اجتماعی نجوم آرشیو عکس آرشیو ویدیو
  • 7.
    7 در چهحد بزرگ؟
  • 8.
    8 290 بایتیعنی یک سوتابایت یا حتی بزرگتر از آن
  • 9.
    9 مدیریت اینمعماری پیچیده، بسیار پر هزینه است، زیرا: 1 - نیاز به افراد بسیار ماهر داریم، به خصوص اگر با فناوری های چندگانه ای درگیر هستیم 2 - زمان بسیار زیادی صرف توسعه و تست می شود
  • 10.
  • 11.
    11 گاهی اوقات،این مدیریت معماری، زمان بسیار بیشتری نسبت به زمان توسعه سیستم، نیاز دارد * ! * چیزی شبیه خودکشی
  • 12.
    12 راه حلچیست؟
  • 13.
    13 استفاده ازیک مدل بدون ساختار و توزیع شده
  • 14.
  • 15.
    15 داده هاییمانند داده های هواشناسی، فعالیت های آنلاین کاربران یا تحلیل های اقتصادی در قالب پایگاه داده ای سنتی)رابطه ای(، کارایی چندانی نخواهند داشت و در ذخیره سازی های بدون قالب و توزیع شده به بهترین روش کار خواهند کرد
  • 16.
  • 17.
    17 یعنی جنبشNoSQL یا پایگاه داده های غیر رابطه ای
  • 18.
  • 19.
  • 20.
    20 NoSQL== NotOnly SQL در سال 2009 ، نیازمندی های یمطرح شده و مورد توجه قرار گرفتند که با استفاده از مدل رابطه ای سنتی قابل دستیابی نبودند. از آنجا که مسائل جدید به ابزارهای جدید نیا زدارند، مجموع های بزرگ از ابزارها پا به عرصه وجود گذاشته و مورد توجه بسیاری قرار گرفتند. دسترس پذیری بالا، مقیاس پذیر یافقی، قابلیت تکثیر (Replication) ، طراحی بدون Schema و قابلیت MapReduce از جمله زمینه هایی هستند که توسط مجموعه ای جدید از پایگا ههای داده و تحت عنوان کلی NoSQL در حال توسعه و آزمایشهستند طرفداران انواع پایگاه داده های غیر رابطه ای معتقدند که پایگاه داده ی سنتی)رابطه ای(، تنها راه موجود برای ذخیره سازی داده نیستند اما این به آن معنا نیست که به خودی خود انتخاب نادرستی باشند جنبش NoSQL
  • 21.
    21 • اهمیت برای درک بیشتر اهمیت NoSQL باید به چالش های موجود امروزی بر سر راه پایگاه های داده بیشتر توجه کرد ه ماکنون با توسعه فناوری های مختلف و قابلیت نمون هبرداری و تولید حجم عظیمی از داد هها، امکان ذخیره سازی و تحلیل آن ها چالشی بزرگ به شمار م یآید. امروزه سرویس دهندگان بسیاری به ذخیره سازی و ارائه محتوای عظیم باینری به کاربران خود در شبکه نیاز دارند که در نوع خود، چالشی بسیار بزرگ به شمار م یآید جنبش NoSQL /اهمیت
  • 22.
    22 جنبش NoSQL/اهمیت
  • 23.
    23 جنبش NoSQL/کارایی • کارایی کارایی بسیار بالا در ذخیره سازی و ارائه داده های باینری مانند اسناد PDF و فایل های MP3 ، در مقیاس وسیع، یکی از بهترین کاربردهایی است که پایگاه های داده ای NoSQL شایستگی خود را در فراهم کردن آن به اثبات رسانده اند. یک نمونه مناسب در این زمینه، خدمات AmazonS3 است علاوه بر موارد ذکر شده، ذخیره سازی، مدیریت و بازیابی داده های گذرا که در بعضی موارد در مقیاس بالایی در برنام ههای کاربردی امروزی تولید م یشوند نیز یکی دیگر از چال شهای امروزی است که راه حل مدیریت مناسب آ نها را پایگاه های داده ای NoSQL ارائ هکرد هاند
  • 24.
    24 پایگاه دادهی غیر رابطه ای مثل چه چیزی؟
  • 25.
  • 26.
    26 ……………………………………………………………………………………………………………… Key-Value Graph ……………………………………………………………………………………………………………… Column Document ……………………………………………………………………………………………………………… جنبش 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 جدول کلیدها و مقدارها سندها رأس ها و گره ها
  • 32.
    32 جنبش NoSQL/نظریه CAP
  • 33.
    33 پایگاه دادههای رابطه ای یا غیر رابطه ای؟ کدام مدل را انتخاب کنیم؟
  • 34.
    34 جنبش NoSQL/ Polyglot Persistence Polyglot Persistence چیست؟
  • 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 مختص این کاره ولی به درد کارای دیگه نمیخوره. هر چی باشه نقش اصلی رو طراحی پایگاه داده بازی میکنه. شاید یه طراحی اونقدر عالی باشه که بشه باهاش یه کارای که از اون فریم ورک انتظار نمیره رو ممکن کرد
  • 41.
    41 در پایانبه یاد داشته باشید که...
  • 42.
    42 گذار بهسمت راهکارهای NoSQL به دلیل مشکلات و محدودیت های زبان SQL نبوده است بلکه به دلیل محدودیت های مدل رابطه ای پایگاه داده ای است
  • 43.
    43 با تشکراز توجه شما meghdad.hatami@gmail.com