معرفی Cassandra
من ارسلان میربزرگی، میخواهم در این مقاله اطلاعات کاملی را در مورد Cassandra ، کاربردها و مزیت و معایب آن با شما و به زبان ساده و غیرتخصصی صحبت کنم. Apache Cassandra یک پایگاه داده با Scalability و کارایی بسیار بالا است که برای مدیریت حجم زیادی از دادهها در سرورهایی مثل سرورهای خرید و فروش کالا طراحیشده است. این پایگاهداده دارای Availability بالا و بدون خرابی است. Cassandra یک پایگاه داده NoSQL است. در ادامه به مفهوم پایگاه دادههای NoSQL پرداخته خواهد شد.
پایگاه دادههای NoSQL:
پایگاه دادههای NoSQL پایگاه دادههایی هستند که برای ذخیره و بازیابی دادهها از روشی متفاوت از روابط جدول استفاده شده در پایگاه دادههای RDBMS یا همان SQL استفاده میکنند. از ویژگیهای آنها میتوان به Schema-free بودن، سهولت در تکثیر، دارای API ساده، Consistent بودن و توانایی مدیریت حجم زیادی از دادهها، اشاره کرد.
هدف اصلی یک پایگاه دادهی NoSQL داشتن طراحی ساده، Scalability افقی و کنترل دقیقتری بر Availability است. پایگاه دادههای NoSQL در مقایسه با پایگاه دادههای RDBMS از ساختار دادههای متفاوتی استفاده میکنند که برخی از عملیات را در NoSQL سریعتر میکند. Consistency یک پایگاه دادهی NoSQL، به مشکلی که باید حل کند بستگی دارد.
NoSQL در مقابل پایگاه دادههای SQL:
جدول زیر تفاوت یک پایگاه داده SQL با یک پایگاه داده NoSQL را نشان میدهد:
علاوه بر Cassandra، دو پایگاه دادهی NoSQL زیر نیز بسیار محبوب هستند:
- Apache H Base: یک پایگاه داده Open source، غیر رابطهای و توزیعشدهاست که از Big Table گوگل الگو گرفته و به زبان جاوا نوشته شده است. این برنامه بهعنوان بخشی از پروژه Apache Hadoop، توسعهیافته که روی HDFS اجرا شده و قابلیتهایی مانند Big Table را برای Hadoop فراهم میکند.
- MongoDB: MongoDB یک سیستم پایگاه دادهی Cross-platform، مبتنی بر Document است که بهجای استفاده از ساختار پایگاه دادهی رابطهای متکی بر جدول، از اسنادی شبیه JSON با Schema های داینامیک استفاده میکند که ادغام دادهها را در انواع خاصی از برنامهها آسانتر و سریعتر میکند.
Apache Cassandra چیست؟
Apache Cassandra، یک سیستم (پایگاه داده) ذخیرهسازی Open source، توزیعشده و غیرمتمرکز برای مدیریت مقادیر بسیار زیادی از دادههای ساختیافته با Availability بالا و بدون خرابی است.
در ادامه برخی از ویژگیهای معمول قابلتوجه Apache Cassandra ذکر شده است:
• Scalable، Fault-tolerant و Consistent است.
• یک پایگاه دادهی مبتنی بر ستون است (جداول داده را بر اساس ستون ذخیره میکند نه ردیف).
• طراحی توزیعشدهی آن بر اساس Amazon’s Dynamo و Data model آن طبق Big table گوگل است.
• در فیسبوک ایجاد شده و تفاوت زیادی با سیستمهای مدیریت پایگاه دادهیSQL یا RDBMS دارد.
• Cassandra توسط بزرگترین شرکتها مانند Facebook، Twitter، Cisco، Rackspace،ebay، Twitter، Netflix و غیره مورداستفاده قرار میگیرد.
ویژگیهای برجسته Cassandra:
Cassandra به دلیل ویژگیهای برجستهاش بسیار محبوب شده است. در زیر برخی از ویژگیهای Cassandra آورده شده است:
Elastic scalability – Cassandra:
بسیار Scalable است و این اجازه را میدهد تا در صورت نیاز برای پذیرفتن مشتری و دادههای بیشتر، سختافزار بیشتری اضافه کنید.
همیشه طبق معماری پروژه است:
Cassandra هیچ خرابی و نقصی ندارد و بهطور مداوم برای برنامههای مهم تجاری که نباید شکست بخورند، در دسترس است.
عملکرد سریع در Linear-scale – Cassandra:
بهطور خطی Scalable است، یعنی با افزایش تعداد گرههای خوشه، توان عملیاتی را افزایش داده و درنتیجه زمان پاسخ سریع حفظ میشود.
ذخیرهسازی انعطافپذیر داده :
Cassandra تمام فرمتهای دادهای ممکن شامل Structured یا ساختاریافته، Semi-structured یا نیمه ساختاریافته و Unstructured یا غیر ساختاریافته را دارد که متناسب با نیاز شما، تغییراتی در ساختار دادههای شما ایجاد خواهد شد.
توزیع آسان داده:
Cassandra با تکثیر دادهها در چندین مرکز داده، در هرجایی که نیاز است توزیع دادهها را انعطافپذیرتر میکند.
پشتیبانی از Transaction – Cassandra:
همانند پایگاه دادههای SQL یا RDBMS، از خصوصیاتی مانند Atomicity، Consistency، Isolation و Durability (ACID) پشتیبانی میکند.
سریع مینویسد:
Cassandra برای کار با سختافزارهای معمولی طراحیشده است. نوشتن را بسیار سریع انجام میدهد و میتواند بدون کاهش کارایی خواندن داده، صدها ترابایت داده را ذخیره کند.
و در آخر
وبسایت میربزرگی قصد دارد تا با ارائه مقالهها و تجربههای کاربردی شما را در زمینه یادگیری و رفع اشکالاتتان کمک کند. در صورت وجود هرگونه سوالی به من ایمیل بزنید.