همه چیز درباره پایگاه داده آپاچی کاساندرا (Apache Cassandra)
آپاچی کاساندرا (Apache Cassandra) چیست؟
آپاچی کاساندرا یک پایگاه داده توزیع شده بسیار مقیاس پذیر و با کارایی بالا است که برای مدیریت داده هایی با حجم بالا طراحی شده است. از ویژگی های دیگر این پایگاه داده فراهم کردن دسترسی بالا، بدون هیچ نقطه ضعفی را می توان ذکر کرد. Apache Cassandra یک نوع پایگاه داده NoSQL است، در ابتدا لازم است بدانید پایگاه داده NoSQL چه کاری انجام می دهد.
پایگاه داده NoSQL
پایگاه داده NoSQL (که گاهی اوقات به عنوان Not Only SQL نامیده می شود) مکانیزمی برای ذخیره و بازیابی داده ها، به غیر از روابط جدولی مورد استفاده در پایگاه های داده رابطه ای، فراهم می کند. این پایگاههای داده بدون طرحواره هستند، از تکرار پشتیبانی میکنند، API ساده دارند، سازگار هستند و میتوانند حجم عظیمی از دادهها را مدیریت کنند.
هدف اصلی یک پایگاه داده NoSQL:
- طراحی ساده
- مقیاس بندی افقی
- کنترل خوب در دسترسی به داده
پایگاه داده NoSql، از ساختارهای داده متفاوتی در مقایسه با پایگاه داده های رابطه ای استفاده می کند. انجام بعضی عملیات روی داده در ساختار NoSQL سریعتر است. مناسب بودن یک پایگاه داده NoSQL به هدفی که برای آن مورد استفاده قرار می گیرد، بستگی دارد.
NoSQL در مقابل پایگاه داده رابطه ای
فهرست زیر نکاتی است که پایگاه داده رابطه ای (Relational Database) را از پایگاه داده NoSQL متمایز می کند:
- پایگاه داده رابطه ای از زبان جستجوی قدرتمند پشتیبانی می کند، در حالی که پایگاه داده NoSQL از زبان جستجو بسیار ساده پشتیبانی می کند.
- پایگاه داده رابطه ای یک طرحواره ثابت دارد، اما پایگاه داده NoSQL بدون طرحواره ثابت است.
- Relational Database از ACID (اتمی، سازگاری، ایزوله بودن و دوام) پیروی می کند، اما NoSql Database فقط “سازگار است”.
- NoSql Database از تراکنش ها پشتیبانی نمی کند، در صورتیکه Relational Database از تراکنش ها پشتیبانی می کند.
علاوه بر Cassandra، پایگاههای داده NoSQL دیگری نیز وجود دارد که بسیار محبوب هستند از جمله:
Apache HBase: یک پایگاه داده منبع باز، غیر رابطه ای و توزیع شده است که از BigTable گوگل مدل شده و به زبان جاوا نوشته شده است. این پایگاه داده به عنوان بخشی از پروژه Apache Hadoop توسعه یافته است و بر روی HDFS اجرا می شود و قابلیت هایی شبیه BigTable را برای Hadoop فراهم می کند.
MongoDB :MongoDB یک سیستم پایگاه داده سند محور بین پلتفرمی است. این پایگاه داده از ساختار پایگاه داده رابطهای مبتنی بر جدول سنتی، با طرحوارههای پویا، اجتناب میکند و ادغام دادهها در انواع خاصی از برنامهها را آسانتر و سریعتر میکند.
همانطور که گفته شد آپاچی کاساندرا یک سیستم ذخیره سازی منبع باز، توزیع شده و غیرمتمرکز است که برای مدیریت مقادیر بسیار زیادی از داده های ساختاریافته در سراسر جهان استفاده می شود. همچنین این سرویس بسیار در دسترس و بدون هیچگونه نقطه ضعفی در ایجاد دسترسی می باشد.
برخی از نکات قابل توجه آپاچی کاساندرا به شرح زیر است:
- مقیاس پذیر، مقاوم در برابر خطا و سازگار است.
- یک پایگاه داده ستون محور است.
- طراحی توزیع آن بر اساس Dynamo آمازون و مدل داده آن براساس Bigtable گوگل است.
- در فیس بوک ایجاد شده و کاملا با سیستم های مدیریت پایگاه داده رابطه ای متفاوت است.
- کاساندرا یک مدل تکراری به سبک Dynamo را بدون هیچ نقطه ضعفی پیادهسازی میکند، اما مدل دادهای «خانواده ستونی»، که بسیار قدرتمند تر است را اضافه میکند.
- Cassandra توسط برخی از بزرگترین شرکت ها مانند فیس بوک، توییتر، سیسکو، Rackspace، ebay، Twitter، Netflix و غیره استفاده می شود.
تاریخچه کاساندرا
Cassandra در ابتدا توسط فیس بوک برای جستجو در صندوق ورودی توسعه داده شد و سپس در جولای 2008 توسط فیس بوک به صورت منبع باز در دسترس قرار گرفت. در مارس 2009 در Apache Incubator پذیرفته شد و در نهایت از فوریه 2010 به عنوان یک پروژه سطح بالای آپاچی توسعه یافت.
کاساندرا به دلیل نیاز به یک پایگاه داده عظیم، توزیع شده در سطح جهانی و کاملا در دسترس که در مقیاس برنامه های کاربردی وب مدرن و رسانه های اجتماعی باشد، متولد شد. آویناش لاکشمن (Avinash Lakshman) که یکی از مخترعان پایگاه داده Dynamo آمازون بود، با Prashant Malik برای توسعه این پایگاه داده همکاری کرد؛ که برای اولین بار در وایت پیپر کاساندرا در سال 2009 به دنیا اعلام شد. این پایگاه داده بسیاری از اصول طراحی Dynamo را استفاده کرده است و همچنین ویژگی هایی مشابه Bigtable گوگل، در سال 2006 را به کار گرفته است.
Cassandra برای حل مشکل “جستجوی صندوق ورودی” برای فیس بوک طراحی شده است. در نتیجه سیستمی است که «درخواست به تعداد بالا، میلیاردها ثبت داده در روز و همچنین مقیاس پذیری با تعداد کاربران» را پشتیبانی می کند. آخرین تعداد کاربران در فیسبوک از 1 میلیون کاربر در سال 2004 به 100 میلیون کاربر (تا زمانی که سیستم در ژوئن 2008 فعال شد) و به بیش از 250 میلیون کاربر، در زمان انتشار وایت پیپر کاساندرا در سال 2009، افزایش یافت.
در نهایت، فیس بوک کاساندرا را با HBase( یک پایگاه داده دیگر NoSQL) برای پروژه جستجوی Inbox خود جایگزین کرد، اما آنها همچنان از Cassandra در بخش اینستاگرام خود استفاده می کنند، که بیش از 1 میلیارد کاربر فعال ماهانه را پشتیبانی می کند.
در حالی که Bigtable و Dynamo به اطلاع عموم مردم رسیدند، پایگاههای اطلاعاتی آنها در گوگل و آمازون همچنان مخفی باقی ماندند. در این حین فیس بوک رویکرد متفاوتی در پیش گرفت. آنها نه تنها وایت پیپر خود را منتشر کردند، بلکه کد منبع آن را نیز تحت نظارت بنیاد نرم افزار آپاچی (apache.org)، در دسترس عموم قرار دادند. در نهایت آپاچی کاساندرا در ژانویه 2009 به عنوان یک پروژه انکوباتور پذیرفته شد و سال بعد در فوریه 2010 پذیرفته شد.
در آن دوره ، توسعه دهندگانی مانند جاناتان الیس از Rackspace و برخی دیگر شروع به مشارکت در این پروژه کردند و آن را به یک نرمافزار منبع باز قابل توسعه تحت رهبری جامعه تبدیل کردند (الیس بعداً به پایه اصلی آپاچی کاساندرا و یکی از بنیانگذاران DataStax تبدیل شد).
زمانی که پروژه Apache Cassandra به انتشار ورژن 1.0 رسید، قبلاً توسط شرکتهایی فراتر از فیسبوک مانند Cisco، Digg، Rackspace، Reddit، Twitter و جاهای دیگر مورد پذیرش قرار گرفته بود. تا سال 2012، بیش از 1000 استقرار از تولید پایگاه داده کاساندرا، توسط شرکت هایی مانند eBay، Disney، و Netflix ثبت شد.
از آن زمان، پروژه آپاچی کاساندرا آپدیت شده و به طور منظم ارتقا یافته است. ویژگی های مختلفی در طول سال ها بهبود یافته یا اضافه شده اند. یکی از تصمیمهای بحثبرانگیز که در طول تکامل آن اتخاذ شد، ایجاد یک مدل جدید برای نسخههایی بود که پس از سال 2015 منتشر میشدند. در این دوره، مصادف با Cassandra 3.0، نسخههای آپدیت شده برای اضافه کردن ویژگیهای جدید و رفع اشکالات عجیب و غریب آن ایجاد شدند. انتشار شماره های مختلف این پایگاه داده برای اطمینان از ثبت کدهای قبل بود. در نهایت، این مدل مورد استقبال قرار نگرفت و رد شد، در نتیجه این طرح در سال 2017، مصادف با Cassandra 3.10، کنار گذاشته شد.
طبق رتبه بندی DB-Engines.com، از سال 2021، Cassandra به عنوان یکی از ده پایگاه داده برتر در جهان پذیرفته شده و ارتقا یافته است.
تاریخچه انتشار آپاچی کاساندرا
نسخه های آپاچی کاساندرا:
- 1.0 – اکتبر 2011 – بهبود عملکرد، فشرده سازی، hinted handoffs
- 2.0 – سپتامبر 2013 – تراکنش های سبک بر اساس پروتکل Paxos
- 3.0 – نوامبر 2015 – اضافه شدن مدل های جدید که مورد استقبال قرار نگرفت
- 4.0 – جولای 2021 – توزیع بدون کپی، پشتیبانی از جاوا 11، بهبودهای تدریجی
آپاچی کاساندرا 4.0
آپاچی کاساندرا 4.0 در جولای 2021 منتشر شد. ویژگی های Cassandra 4.0 عبارتند از:
- جاوا 11
- Virtual tables
- Audit logging
- Full query logging
- Messaging
- Streaming
- Transient replication
ویژگی های Apache Cassandra
اکنون که میدانیم آپاچی کاساندرا چیست و برای چه مواردی استفاده می شود، خوب است با ویژگی های این پایگاه داده نیز آشنا شویم:
- مقیاس پذیری
آپاچی کاساندرا نرم افزاری با ویژگی مقیاس پذیری (scalability) است. این ویژگی به سازمان ها کمک می کند تا داده های خود را به صورت بسیار کاربردی مدیریت کنند. همچنین هر زمان که نیاز باشد، برای پاسخگویی به تقاضای رو به رشد دادههای یک کسبوکار، منابع بیشتری را اضافه کند. شرکتهای بزرگی مانند نتفلیکس، اوبر و همچنین اپل از این نرمافزار استفاده میکنند که به آنها اجازه میدهد تا مقیاس کار خود را متناسب با نیازها و داده های خود، بدون هیچ گونه نگرانی در خصوص کارایی در هنگام کار با داده ها تنظیم کنند.
- غیرمتمرکز بودن
ویژگی عدم تمرکز اساساً به این معنی است که پارادایم master-slave وجود ندارد. بدین صورت هر گره به صورت مجزا، این ظرفیت را دارد که به عنوان یک کپی کامل یا جزئی از پایگاه داده، برای رفع نیاز کاربر به کار گرفته شود تا کاربر بتواند اطلاعات مورد نیاز خود را دریافت نماید. فرآیند غیرمتمرکز بودن به این معنی است که هیچ نقطه ازدحام یا گره مرجعی در شبکه وجود نخواهد داشت و هر گره در خوشه دارای نقشی یکسان است.
- RAPID Writes
آپاچی کاساندرا به ویژگی های سخت افزاری که با آن کار می کنید وابسته نیست. در نتیجه می تواند به سادگی روی معمولی ترین سخت افزار کار کند و باز هم در زمان نوشتن یا ذخیره اطلاعات دارای سرعتی بی نظیر باشد. بنابراین، این پایگاه داده حجم زیادی از داده ها را بدون ایجاد هیچ اختلال در خواندن داده ها ذخیره می کند.
- توزیع داده ها
با آپاچی کاساندرا، توزیع داده ها به راحتی، با ایمنی بالا و به صورت بسیار کارآمد انجام می شود. امکان راهاندازی و تنظیم خوشه در Cassandra، باعث می شود تا کاربران به داده های توزیع شده به بهترین شکل دسترسی داشته باشند. بدین ترتیب در کاساندرا انعطاف پذیری بالایی در توزیع داده ها وجود دارد. همچنین در صورت لزوم می توان داده ها را در چندین مرکز داده مختلف کپی کرد. در نتیجه داده ها، در گره ها و مراکز مختلف توزیع می شود که در نهایت هنگام دسترسی کاربر به داده ها بسیار ارزشمند هستند.
- پشتیبانی ACID
ویژگی های اتمی، سازگاری، انزوا و دوام در تمام پایگاه های داده وجود ندارد اما کاساندرا این ویژگی ها را دارد. در نتیجه امکان انجام عملیات روی داده ها با ویژگی ACID بدون دردسر فراهم می شود و به شما در رسیدن به RDMS نیز کمک می کند.
- خطاپذیری
یکی از مفیدترین ویژگی های Apache Cassandra، تکثیر خودکار داده ها در چندین گره است که باعث می شود تا تحمل خطای کاساندرا بالا باشد. بدین صورت که با ایجاد کپی از داده ها، ریسک از دست رفتن آن ها را در صورت ایجاد مشکل بسیار کم می کند. پشتیبانی از مراکز داده متعدد باعث می شود تا در صورت بروز مشکل، به سرعت گره های شکست خورده را جایگزین کند و همچنان به سرویس دهی به کاربر ادامه دهد.
- دوام
آپاچی کاساندرا در حال حاضر در برابر بروز خطا مقاوم است. این ویژگی در طولانی مدت نیز در کاساندرا وجود خواهد داشت که به ویژه برای برنامههایی که با داده ها سروکار دارند و نباید داده ها از بین بروند، ویژگی بسیار مناسبی است.
موارد زیادی وجود دارد که این نرم افزار را به انتخابی مناسب برای مدیریت داده ها تبدیل می کند. موارد ذکر شده در بالا صرفاً برخی از ویژگی های مهم آپاچی کاساندرا هستند.
آپاچی کاساندرا بهترین انتخاب برای پایگاه داده است. ویژگیها و خدماتی که ارائه میدهد مانند تمرکز زدایی، توزیع دادهها، مقیاسپذیری، در دسترس بودن و غیره میتوانند برای بسیاری از کسبوکارها کاربردی و شگفتانگیز باشند.
نقاط قوت و ضعف آپاچی کاساندرا
Apache Cassandra معمولاً زمانی استفاده میشود که شما نیاز دارید به سرعت یک پایگاه داده ذخیرهسازی با ارزش را که دارای چندین گیگابایت یا ترابایت اطلاعات است راه اندازی و مقیاس بندی کنید. همچنین می توانید نسخه های مختلفی را ایجاد کنید و برنامه هایی را ایجاد کنید که داده های با حجم بالا (Big Data) دارند. علاوه بر این در مواردی که نیاز است تا درخواست های تراکنش (خواندن و نوشتن) با حجم بالا پشتیبانی شود بسیار مناسب است.
برای مدل هایی با داده های اکسلی، کلید-مقدار(key-value) و سری زمانی مناسب ترین گزینه است. همچنین می تواند به عنوان یک لایه ذخیره سازی زیرساختی به عنوان پایگاه داده گراف استفاده شود، اما این ویژگی فقط از طریق افزونه اضافی مانند JanusGraph امکان پذیر خواهد بود.
از سوی دیگر، آپاچی کاساندرا برای مجموعه داده های کوچک (کوچکتر از مثلاً ده ها گیگابایت)، زمانی که مقیاس پذیری یا در دسترس بودن پایگاه داده مسائل حیاتی نیست، یا زمانی که درخواست های کمی وجود دارد، نامناسب است.
همچنین مهم است که به یاد داشته باشید Apache Cassandra یک پایگاه داده منبع باز NoSQL است که از زبان پرس و جو CQL خود استفاده می کند، بنابراین باید زمانی استفاده شود که مدل به داده هایی که برای سیستم های SQL RDBMS مناسب تر هستند، نیاز ندارد.
یادگیری Apache Cassandra چه کمکی به حرفه شغلی شما خواهد داشت؟
امروزه تمام دنیا حول محور Big Data و Hadoop می چرخد. این یک واقعیت است که بیشتر داده ها در قالب NoSQL ارائه می شوند که می تواند ویدیوها، داده های گزارش، تصاویر، فیدهای ماهواره، داده های سنجش از راه دور، دستگاه های IoT و موارد دیگر باشد. بنابراین، برای متخصصانی که به دنبال شغلی در حوزه Hadoop هستند، بسیار حیاتی است که پایگاه داده NoSQL را درک کنند.
اینجاست که ابزار Apache Cassandra NoSQL به شما کمک می کند تا به سطح بالاتری در حرفه شغلی خود برسید. Cassandra ابزاری قدرتمند با ویژگی های منحصر به فرد است. کاساندرا هنگام کار با مجموعه متنوعی از داده ها با حجم بالا، بسیار مؤثر است. بنابراین، متخصصان این حوزه با یادگیری کاساندرا قادرند مسئولیت بیشتری در شغل خود بر عهده گیرند. افزایش مسئولیت، باعث افزایش میزان حقوق دریافتی شده و منجر به رشد چند جانبه در حرفه شغلی میشود.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.