داستان از جایی شروع میشه که شرکت هایی مثل فیسبوک با حجم عظیمی از دادهها روبه رو شدند. داده هایی که روز به روز بیشتر و بیشتر میشدن و سیستمهای موجود نمیتونستن به خوبی از پسشون بر بیان. تصور کن یه شهر کوچیک با یه خیابون اصلی و چند تا فرعی، حالا اگه این شهر یهویی تبدیل بشه به یه کلانشهر، اون خیابونها جوابگو نیستند، درسته؟ فیسبوک هم توی همین وضعیت بود.
اون موقع بود که تیمی از مهندسان فیسبوک دست به کار شدند و دنبال یه راه حل گشتن. اونا به یه سیستم نیاز داشتن که بتونه حجم عظیم دادهها رو به راحتی مدیریت کنه، مقیاس پذیر باشه و بدون توقف کار کنه. اینجوری بود که Cassandra به دنیا اومد.
حالا بیا تصور کنیم اگه Cassandra و ابزارهای مشابه نبودن، دنیامون چطوری میشد. فکر کن هر بار که وارد فیسبوک میشی، سایتش کند باشه یا اطلاعاتت به درستی بارگذاری نشه. چقدر اعصاب خوردی میشد، نه؟ یا مثلاً خریدهای آنلاین، مدیریت حمل ونقل و حتی بازیهای آنلاین، همه و همه با مشکل روبرو میشدن. Cassandra اومد تا این مشکلات رو حل کنه و به شرکتها کمک کنه تا با خیال راحت داده هاشون رو مدیریت کنن.
Cassandra یک پایگاه داده ی توزیع شده و NoSQL هست. به زبان ساده، NoSQL یعنی این که این پایگاه داده ها، برخلاف SQL، سبُک تر، متن باز، غیررابطه ای و خیلی گسترده هستن. این نوع پایگاه دادهها به خاطر مقیاس پذیری افقی، معماریهای توزیع شده و رویکرد منعطف در تعریف اسکیمای دادهها معروفن.
دیتابیسهای NoSQL مثل Cassandra به شما این امکان رو میدن که دادههای حجیم و متنوع رو به سرعت و به صورت فوری سازماندهی و تحلیل کنید. این ویژگی در سالهای اخیر با ظهور بیگ دیتا و نیاز به مقیاس پذیری سریع در فضای ابری بسیار مهم شده. Cassandra یکی از اون پایگاههای داده ای هست که محدودیتهای فناوریهای مدیریت دادههای قبلی، مثل دیتابیسهای SQL رو حل کرده.
پس اگه دنبال یه راه حل قدرتمند برای مدیریت حجم عظیمی از دادهها هستی، Cassandra میتونه یکی از بهترین انتخابها باشه!
خب، بریم به گذشته ها! زمانی که فیسبوک با حجم عظیمی از دادهها مواجه شد و سیستمهای موجود قادر به مدیریت این همه داده نبودند. تیم مهندسان فیسبوک که به شدت دنبال یه راه حل برای این مشکل بودند، تصمیم گرفتند چیزی بسازند که نه تنها بتونه دادههای حجیم رو مدیریت کنه، بلکه همیشه در دسترس باشه و به راحتی گسترش پیدا کنه. اینجوری بود که Cassandra متولد شد.
Cassandra در ابتدا به عنوان یک پروژه داخلی برای فیسبوک ساخته شد. اما در سال 2008، فیسبوک تصمیم گرفت که این پروژه رو به عنوان یک پروژه متن باز منتشر کنه و اون رو به بنیاد نرم افزاری آپاچی سپرد. این حرکت باعث شد که Cassandra به سرعت توجه جامعه توسعه دهندگان رو جلب کنه و به یکی از محبوبترین پایگاههای داده ی NoSQL تبدیل بشه.
تا سال 2010، Cassandra به یکی از اولویتهای اصلی آپاچی تبدیل شد و با نسخه 0.6.13 وارد دنیای دیتابیسها شد. از اون زمان تا الان، Cassandra دوازده نسخه ی مختلف رو تجربه کرده و هر نسخه با بهبودهای کلیدی مثل اضافه شدن memtableهای خودتنظیم، زبان پرس وجوی Cassandra (CQL)، بهبود فشرده سازی و عملکرد خواندن همراه بوده.
الان، شرکتهای بزرگی مثل Netflix، Twitter و Reddit از Cassandra برای مدیریت دادههای خودشون استفاده میکنن. چرا؟ چون Cassandra نه تنها مقیاس پذیری و دسترس پذیری بالایی داره، بلکه هیچ نقطه ی شکست مرکزی نداره. این یعنی اگر یکی از سرورها از کار بیفته، کل سیستم همچنان به کار خودش ادامه میده.
به این ترتیب، Cassandra از یک پروژه داخلی فیسبوک به یکی از بهترین و قابل اعتمادترین پایگاههای داده ی NoSQL در جهان تبدیل شده. و این فقط شروع داستانه!
حالا که فهمیدیم Cassandra چی هست و تاریخچه ش رو بررسی کردیم، وقتشه ببینیم این دیتابیس قدرتمند چطور کار میکنه. برای این که بهتر درکش کنیم، باید سه فرآیند اصلی رو بشناسیم: معماری، سیستم پارتیشن بندی و قابلیت تکرار داده.
معماری اصلی Cassandra از یک مجموعه ای از نودها تشکیل شده. این سیستم به صورت نظیر به نظیر (peer-to-peer) طراحی شده و شباهت زیادی به DynamoDB و Google Bigtable داره.
هر نود در Cassandra معادل همدیگه هستن و اهمیت یکسانی دارن. هر نود جایی هست که دادههای خاصی ذخیره میشن. گروهی از نودهای مرتبط به هم یک دیتاسنتر رو تشکیل میدن و مجموعه ای از دیتاسنترها که دادهها رو برای پردازش ذخیره میکنن، یک کلاستر رو میسازن.
یکی از ویژگیهای جذاب معماری Cassandra اینه که میتونه به راحتی گسترش پیدا کنه. با اضافه کردن نودهای بیشتر، میتونیم حجم دادههای سیستم رو دو برابر کنیم بدون این که فشار زیادی بهش وارد بشه. این قابلیت مقیاس پذیری دینامیک به این معناست که حتی میتونیم با کاهش نودها، دیتابیس رو کوچکتر کنیم. این موضوع نسبت به دیتابیسهای SQL قبلی که افزایش ظرفیتشون پیچیدگی زیادی داشت، یک مزیت بزرگ برای Cassandra به حساب میاد.
از طرفی، معماری Cassandra باعث افزایش امنیت دادهها و حفاظت از از دست رفتن اطلاعات میشه.
در Cassandra، دادهها از طریق یک سیستم پارتیشن بندی ذخیره و بازیابی میشن. پارتیشنر تعیین میکنه که نسخه اصلی یک مجموعه داده کجا ذخیره بشه. این کار با استفاده از توکنهای نودها به صورت مستقیم انجام میشه. هر نود مسئول مجموعه ای از توکنها بر اساس کلید پارتیشن هست. کلید پارتیشن مسئول تعیین محل ذخیره سازی داده هاست.
به محض ورود داده به یک کلاستر، یک تابع هش به کلید پارتیشن اضافه میشه. نود هماهنگ کننده (نودی که کلاینت با یک درخواست به اون متصل میشه) مسئول ارسال داده به نودی با همان توکن تحت اون پارتیشن هست.
یکی دیگه از راه هایی که Cassandra کار میکنه، تکرار دادهها در نودهای مختلفه. این نودهای ثانویه که دادهها رو تکرار میکنن، نودهای رپلیکا (replica nodes) نامیده میشن و تعداد نودهای رپلیکا برای یک مجموعه داده بر اساس فاکتور تکرار (RF) تعیین میشه. فاکتور تکرار 3 به این معناست که سه نود محدوده توکن یکسان رو پوشش میدن و دادههای یکسان رو ذخیره میکنن. داشتن چندین رپلیکا کلید اصلی قابلیت اطمینان Cassandra هست.
حتی وقتی یکی از نودها موقتاً یا دائماً از کار بیفته، نودهای دیگه همون دادهها رو دارن و این یعنی دادهها به ندرت به طور کامل از دست میرن. بهتر از این، اگه نود مختل شده دوباره به حالت عادی برگرده، آپدیتهای داده ای که ممکنه از دست داده باشه رو دریافت میکنه و دوباره به عملکرد عادی خودش ادامه میده.
خب، حالا دیدی که Cassandra چطور کار میکنه و چرا اینقدر محبوبه؟ این معماری و سیستمهای خاصش باعث میشن که Cassandra برای مدیریت دادههای حجیم و توزیع شده ایده آل باشه.
خب، حالا بیایید به برخی از ویژگیهای کلیدی این پایگاه داده قدرتمند نگاهی بیندازیم.
چه چیزی از این بهتر که یه محصول فوق العاده رو به صورت رایگان در اختیار داشته باشی؟ یکی از دلایل اصلی محبوبیت و پذیرش گسترده ی Cassandra اینه که متن باز و رایگانه. هر کسی که بخواد میتونه ازش استفاده کنه و این خودش یه مزیت بزرگه.
یکی دیگه از ویژگیهای مهم Cassandra اینه که به صورت توزیع شده عمل میکنه و بر روی چندین نود (Node) اجرا میشه، نه یه سیستم مرکزی. همه ی نودها اهمیت یکسانی دارن و بدون وجود یک نود اصلی، هیچ گلوگاهی که فرآیند رو کند کنه وجود نداره. این خیلی مهمه چون شرکت هایی که از Cassandra استفاده میکنن نیاز دارن که همیشه به دادههای دقیق دسترسی داشته باشن و نمیتونن از دست رفتن دادهها رو تحمل کنن. توزیع گسترده ی دادههای Cassandra بین نودها به این معنیه که از دست دادن یک نود تأثیر زیادی روی عملکرد کلی سیستم نداره.
Cassandra قابلیت مقیاس پذیری الاستیک داره. این یعنی میتونه به راحتی و بدون مشکل بزرگ یا کوچک بشه. مقیاس پذیری Cassandra به خاطر معماری نودی اونه. این سیستم به گونه ای طراحی شده که به صورت افقی رشد کنه، همونطور که نیازهای شما به عنوان یه توسعه دهنده یا شرکت بزرگ میشه. اضافه کردن یا حذف نودهای بیشتر میتونه سیستم دیتابیس شما رو بر اساس نیازهای متغیرتون تنظیم کنه.
یه نکته جالب دیگه درباره ی مقیاس پذیری در Cassandra اینه که در طول فرآیند، هیچ کندی یا وقفه ای در سیستم ایجاد نمیشه. این یعنی کاربرهای نهایی هیچ تفاوتی رو احساس نمیکنن و سرویس دهی به همه ی افراد متصل به شبکه بدون مشکل ادامه پیدا میکنه.
Cassandra یه پایگاه داده رابطه ای نیست و از زبان پرس وجوی استاندارد یا SQL استفاده نمیکنه. بلکه از زبان پرس وجوی خودش، یعنی CQL استفاده میکنه. ممکنه این موضوع برای ادمینها مشکل ساز بشه چون باید یه زبان جدید رو یاد بگیرن، اما خبر خوب اینه که CQL شباهت زیادی به SQL داره. این زبان به گونه ای طراحی شده که با ردیفها و ستون ها، یعنی دادههای جدولی کار کنه.
Cassandra به خاطر قابلیت تکرار داده هاش، تحمل خطای بالایی داره. تکرار داده به این معناست که سیستم میتونه همون اطلاعات رو در چندین مکان یا نود ذخیره کنه. این ویژگی باعث میشه که همیشه در دسترس باشه و در برابر خطاها مقاوم بشه. از دست دادن یک نود یا دیتاسنتر باعث نمیشه که سیستم از کار بیفته چون دادهها در نودهای دیگه در کلاستر تکرار شده و ذخیره شدن. تکرار دادهها منجر به سطح بالایی از پشتیبان گیری و بازیابی میشه.
SQL یه زبان دیتابیس با اسکیمای ثابته که اونو سفت و سخت میکنه. اما Cassandra یه مدل داده ای اختیاری داره و به شما اجازه میده که هر تعداد ردیف و ستونی که نیاز دارید ایجاد کنید.
Cassandra دو نوع همگام سازی داره: همگام سازی نهایی و همگام سازی تنظیم شده. همگام سازی نهایی به این معناست که هر بروزرسانی یا اطلاعاتی به هر نودی که داده مربوطه رو داره، منتشر میشه. در همگام سازی تنظیم شده، کلاینت باید بلافاصله بعد از دریافت نوشتن در کلاستر، تأییدیه بده.
ویژگی همگام سازی قابل تنظیم Cassandra این امکان رو به توسعه دهنده میده که بسته به وظیفه ای که انجام میده، هر یک از دو نوع همگام سازی رو انتخاب کنه.
Cassandra به خاطر توان خروجی بالا و توانایی نوشتن سریعش شناخته شده است. این ویژگی به خاطر فرآیند مدیریت داده هاش هست. اولین مرحله نوشتن به لاگ کامیت هست. این برای حفظ دادهها در صورت آسیب یا اختلال نود استفاده میشه. نوشتن به لاگ کامیت یه فرآیند سریع و کارآمده.
مرحله بعدی نوشتن به مم تیبل (Memtable) یا حافظه است. بعد از نوشتن به مم تیبل، نود تأیید میکنه که دادهها با موفقیت نوشته شدن. مم تیبل در حافظه دیتابیس قرار داره و نوشتن به حافظه خیلی سریعتر از نوشتن به دیسکه. همه ی اینها باعث سرعت بالای نوشتن در Cassandra میشن.
Cassandra بر پایه ی معماری نظیر به نظیر طراحی شده که در اون همه نودها برابر هستن. این برخلاف بعضی از مدلهای دیتابیسه که رابطه "slave to master" دارن. در این مدل، یه واحد عملکرد بقیه واحدها رو هدایت میکنه و واحدهای دیگه فقط با واحد مرکزی یا master ارتباط دارن. در Cassandra، واحدهای مختلف میتونن به عنوان همتا با همدیگه ارتباط برقرار کنن. این ارتباط نظیر به نظیر، نقطه ی شکست واحد رو از بین میبره و یکی از ویژگیهای برجسته ی Cassandra هست.
با این همه مزیت، Cassandra هم محدودیتهای خودش رو داره:
خب، حالا با این ویژگیها و محدودیتها آشنا شدی و بهتر میتونی درک کنی که چرا Cassandra اینقدر خاص و منحصر به فرده.
خب حالا که تا اینجا با ما همراه بودی، بیا با هم بریم سراغ کاربردهای جذاب و مهم Cassandra. این پایگاه داده ی NoSQL متن باز کلی قابلیت خفن داره که باعث شده توسط شرکتهای بزرگ و کوچیک در سراسر دنیا استفاده بشه. بیا ببینیم کجاها به کار میاد.
تجارت الکترونیک یه زمینه خیلی حساسه که تو هر منطقه و کشوری کاربرد داره. بازارهای مالی همیشه زمانهای اوج و افت دارن و هیچ مشتری دوست نداره وقتی که میتونه درآمد کسب کنه، با خرابی سیستم مواجه بشه. شرکتهای تجارت الکترونیک با استفاده از سیستم قابل اعتمادی مثل Cassandra میتونن از این خرابیها و وقفههای احتمالی جلوگیری کنن. تحمل خطای بالای Cassandra به این معناست که حتی اگه یک مرکز داده کاملاً خراب بشه، سیستم بدون مشکل به کارش ادامه میده.
به خاطر مقیاس پذیری راحت، به ویژه در فصلهای اوج خرید، مدیریت تجارت الکترونیک و موجودیها یکی از کاربردهای مهم Cassandra است. وقتی بازار هجوم میاره، شرکت باید توانایی دیتابیس برای حمل و ذخیره دادههای بیشتر رو افزایش بده. این رشد سریع و مقرون به صرفه، بدون نیاز به راه اندازی مجدد سیستم، برای شرکتها یه نعمته.
علاوه بر این، وب سایتهای تجارت الکترونیک از Cassandra برای ذخیره و ثبت فعالیتهای بازدیدکنندهها استفاده میکنن. این اطلاعات به ابزارهای تحلیلی کمک میکنه تا رفتار بازدیدکنندهها رو تحلیل کرده و مثلاً اونها رو به ماندن در سایت تشویق کنن.
با کمک Cassandra، وب سایتهای مربوط به فیلم، بازی و موسیقی میتونن رفتار و ترجیحات مشتریان رو دنبال کنن. دیتابیس برای هر بازدیدکننده، اطلاعاتی مثل کلیک ها، دانلودها، زمان صرف شده و غیره رو ثبت میکنه. این اطلاعات تحلیل میشن و برای پیشنهادات سرگرمیهای بیشتر به کاربر استفاده میشن.
این کاربرد Cassandra تو بخش شخصی سازی، توصیهها و تجربه ی مشتری قرار میگیره. این فقط به وب سایتهای سرگرمی محدود نمیشه، بلکه شامل پلتفرمهای خرید آنلاین و توصیههای شبکههای اجتماعی هم میشه. به همین دلیل، کاربران اعلان هایی درباره کالاهای مشابه به آنچه مرور کرده اند، دریافت میکنن.
دنیای امروز داره به سمت اینترنت اشیا (IoT) حرکت میکنه. ما هر روز با هزاران نقطه ی داده یا مجموعه داده جدید بمباران میشیم. هر دستگاه پوشیدنی، سنسور آب و هوا، سنسور ترافیک یا دستگاه موبایل دادهها رو درباره ی آب و هوا، ترافیک، مصرف انرژی و شرایط خاک ثبت و ارسال میکنه. این سیل اطلاعات میتونه به سرعت گیج کننده و به راحتی گم بشه.
اما ذخیره و تحلیل اطلاعات از دستگاههای IoT، بدون توجه به حجم بزرگ اون ها، با تکنولوژی Cassandra خیلی موثرتر شده. این به خاطر ویژگیهای زیره:
تشخیص تقلب برای امنیت و قابلیت اطمینان بسیاری از شرکت ها، به ویژه بانک ها، بیمهها و سایر مؤسسات مالی ضروریه. این شرکتها باید همیشه مطمئن بشن که میتونن با روشهای جدید و به روز سرقت داده که توسط کلاه برداران توسعه داده شده، مقابله کنن. هدف شرکتهای مالی اینه که کلاه برداران و هکرها رو از سیستم هاشون دور نگه دارن. Cassandra در اینجا به خاطر تحلیل لحظه ای دادههای بزرگ کاربرد داره. Cassandra میتونه دادهها رو از طیف گسترده ای از فعالیتهای اینترنتی جمع آوری کنه و در صورت شناسایی الگوها و ناهنجاری هایی که ممکنه منجر به تقلب بشه، هشدارها رو فعال کنه.
از طرف دیگه، همین مؤسسات مالی باید فرایند احراز هویت کاربران رو بدون مشکل انجام بدن. برای محکم کردن فرایند ورود کاربران به شکلی که فقط به مشتریان واقعی اجازه ورود بده و در عین حال این فرایند ساده و آسان باشه، Cassandra کمک میکنه تا تحلیلهای لحظه ای انجام بشه. به علاوه، با استفاده از Cassandra میتونی از دسترسی مداوم مطمئن باشی.
به طور کلی، Cassandra یکی از گزینههای برتر دیتابیس برای تشخیص تقلب و انجام فرایندهای احراز هویت هست به این دلایل:
الان تعداد زیادی برنامههای پیام رسانی داریم که هر روز تعداد کاربرهای بیشتری رو جذب میکنن. این نیاز به یک سیستم دیتابیس پایدار برای ذخیره حجم عظیمی از اطلاعات دائمی رو ایجاد میکنه. Cassandra هم ثبات و هم ظرفیت ذخیره سازی لازم برای شرکت هایی که خدمات پیام رسانی ارائه میدن رو فراهم میکنه.
Cassandra توی لجستیک و مدیریت دارایی هم کاربرد داره. وقتی میخوای حرکت هر آیتمی رو که قراره جابجا بشه، پیگیری کنی، از لحظه خرید تا تحویل نهایی، میتونی به Cassandra تکیه کنی. این پایگاه داده میتونه هر تراکنش رو ثبت کنه و برای شرکتهای بزرگ لجستیکی که حجم زیادی از دادهها رو به طور منظم پردازش میکنن، خیلی مفیده. Cassandra توی توسعه ی بک اند اینجور برنامهها کاربرد قوی داره و میتونه دادهها رو بدون اینکه عملکرد برنامه تحت تاثیر قرار بگیره، ذخیره و تحلیل کنه.
حالا که تا اینجا با ما همراه بودی، وقتشه نگاهی به برخی از موفقترین پروژه هایی بندازیم که از Cassandra استفاده کردن. این مطالعات موردی بهت نشون میده چطور شرکتهای بزرگ و کوچک از قابلیتهای منحصر به فرد این پایگاه داده بهره بردن.
Ably برای ذخیره سازی پایدار پیامها از Cassandra استفاده میکنه. این پایگاه داده به Ably کمک میکنه تا مقیاس اینترنتی رو مدیریت کنه و بدون محدودیت گسترش پیدا کنه.
Activision از Cassandra برای ساخت سیستم جدیدی استفاده کرده که پیامهای شخصی سازی شده ی زیادی رو به بازیکنان ارسال میکنه. این سیستم از دادههای لحظه ای استفاده میکنه و با کمک Cassandra به راحتی مدیریت میشه.
Apple بیش از ۷۵,۰۰۰ نود Cassandra رو برای ذخیره سازی بیش از ۱۰ پتابایت داده اجرا میکنه. یکی از کلاسترهای این شرکت بیش از ۱,۰۰۰ نود داره و میلیونها عملیات خواندن و نوشتن در ثانیه رو مدیریت میکنه.
Best Buy از Cassandra برای مدیریت افزایش شدید ترافیک در تعطیلات استفاده میکنه. این شرکت میگه که سیستمش با وجود افزایش ۷ برابری ترافیک، عملکرد بی نقصی داره.
Netflix از Cassandra برای مدیریت پتابایتهای داده و دسترسی به اونها در میلی ثانیه استفاده میکنه. این شرکت با استفاده از Cassandra یه سیستم خودکار برای لایه ی پایداری اطلاعات خودش ساخته.
❞نتفلیکس به طور گسترده ای از Apache Cassandra استفاده میکنه تا نیازهای روزافزون خودش برای ذخیره سازی دادهها رو برآورده کنه و بتونه دنیا رو سرگرم کنه. ما توی محیطهای خودمون از نسخه بتای 4.0 استفاده میکنیم و ویژگی هایی مثل Audit Logging و backpressure رو امتحان کردیم.❝ – وینای چلا، مدیر مهندسی نتفلیکس
Cassandra تمام نیازهای دیتابیس Discord رو برآورده کرده. این پلتفرم میتونه نودهای جدید اضافه کنه و تحمل از دست دادن نودها رو بدون تأثیر روی عملکرد داره.
این نمونهها فقط چندتا از کاربردهای گسترده Cassandra هستن. با نگاه به این داستانهای موفقیت، میتونی ببینی که چطور این پایگاه داده میتونه به کسب وکارها کمک کنه تا بهتر و سریعتر رشد کنن.
برای مطالعه بیشتر و دیدن موارد دیگه، میتونی به سایت رسمی کاساندرا مراجعه کنی.
حالا بیا با چند تا مثال عملی ببینیم که چطور میتونیم از Cassandra استفاده کنیم. برای شروع، فرض کن میخوایم اطلاعات کاربران سایت 7Learn رو ذخیره کنیم.
-- ایجاد Keyspace
CREATE KEYSPACE 7learn_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
-- ایجاد جدول کاربران
CREATE TABLE 7learn_keyspace.users (
user_id UUID PRIMARY KEY,
username TEXT,
email TEXT,
signup_date TIMESTAMP
);
-- درج داده ها
INSERT INTO 7learn_keyspace.users (user_id, username, email, signup_date)
VALUES (uuid(), 'john_doe', 'john@example.com', toTimestamp(now()));
INSERT INTO 7learn_keyspace.users (user_id, username, email, signup_date)
VALUES (uuid(), 'jane_doe', 'jane@example.com', toTimestamp(now()));
-- جستجوی داده ها
SELECT * FROM 7learn_keyspace.users WHERE username = 'john_doe';
Cassandra با سایر پایگاههای داده NoSQL مثل MongoDB، Couchbase و HBase رقابت میکنه. هر کدوم از این پایگاهها مزایا و معایب خودشون رو دارن.
Cassandra با سایر پایگاههای داده NoSQL مثل MongoDB، Couchbase و HBase رقابت میکنه. هر کدوم از این پایگاهها مزایا و معایب خودشون رو دارن.
ویژگی | Cassandra | MongoDB | Couchbase | HBase |
---|---|---|---|---|
مقیاس پذیری | بسیار بالا | متوسط | بالا | بالا |
دسترسی | همیشه در دسترس | متوسط | بالا | متوسط |
مدل داده | ستون محور | سندمحور | سندمحور | ستون محور |
پشتیبانی تراکنش | ضعیف | خوب | خوب | خوب |
عملکرد | بالا | متوسط | بالا | بالا |
دوست داری کار با Cassandra رو شروع کنی؟ اینجا یه راهنمای سریع و ساده برات آماده کردم که قدم به قدم جلو بری.
اول از همه، باید Docker رو روی سیستم خودت نصب کنی. میتونی Docker Desktop برای مک یا ویندوز استفاده کنی.
docker pull cassandra:latest
با استفاده از یک شبکه Docker، پورتهای کانتینر رو بدون اینکه روی میزبان باز بشن، دسترسی پیدا کن.
docker network create cassandra
docker run --rm -d --name cassandra --hostname cassandra --network cassandra cassandra
یک فایل به نام data.cql بساز و اسکریپت زیر رو توش قرار بده:
-- ایجاد یک keyspace
CREATE KEYSPACE IF NOT EXISTS store WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : '1' };
-- ایجاد یک جدول
CREATE TABLE IF NOT EXISTS store.shopping_cart (
userid text PRIMARY KEY,
item_count int,
last_update_timestamp timestamp
);
-- وارد کردن داده ها
INSERT INTO store.shopping_cart (userid, item_count, last_update_timestamp)
VALUES ('9876', 2, toTimeStamp(now()));
INSERT INTO store.shopping_cart (userid, item_count, last_update_timestamp)
VALUES ('1234', 5, toTimeStamp(now()));
با استفاده از ابزار cqlsh دادهها رو به دیتابیس وارد کن.
docker run --rm --network cassandra -v "$(pwd)/data.cql:/scripts/data.cql" -e CQLSH_HOST=cassandra -e CQLSH_PORT=9042 -e CQLVERSION=3.4.6 nuvo/docker-cqlsh
می تونی از CQLSH به صورت تعاملی برای اجرای دستورات CQL استفاده کنی.
docker run --rm -it --network cassandra nuvo/docker-cqlsh cqlsh cassandra 9042 --cqlversion='3.4.5'
برای دیدن دادههای موجود در جدول، از دستور زیر استفاده کن:
SELECT * FROM store.shopping_cart;
دادههای جدیدی به جدول اضافه کن:
INSERT INTO store.shopping_cart (userid, item_count) VALUES ('4567', 20);
برای متوقف کردن Cassandra و حذف شبکه، دستورات زیر رو اجرا کن:
docker kill cassandra
docker network rm cassandra
تبریک! به همین سادگی شروع به کار با Cassandra کردی. برای یادگیری بیشتر، میتونی به Cassandra Basics سر بزنی و اطلاعات بیشتری کسب کنی.
Cassandra برای برنامه هایی که نیاز به مدیریت حجم عظیمی از دادهها دارن و باید همیشه در دسترس باشن، مثل شبکههای اجتماعی، تجارت الکترونیک و برنامههای IoT بسیار مناسبه.
نه، Cassandra از تراکنشهای ACID پشتیبانی نمیکنه. اما میتونی با استفاده از راهکارهای خاص، برخی ویژگیهای تراکنشی رو پیاده سازی کنی.
پیکربندی Cassandra شامل تنظیمات مختلفی مثل تعداد تکرارها، سیاستهای نسخه بندی و مدیریت گرهها میشه که نیاز به دانش فنی و تجربه داره.
شرکتهای بزرگی مثل Netflix، Apple، eBay و Spotify از Cassandra برای مدیریت دادههای خودشون استفاده میکنن.
مزایای اصلی Cassandra شامل مقیاس پذیری خطی، دسترسی بدون توقف، توزیع شده بودن و پشتیبانی از زبانهای برنامه نویسی مختلفه.
Cassandra یه پایگاه داده قدرتمند و مقیاس پذیره که میتونه بهت کمک کنه تا حجم عظیمی از دادهها رو به راحتی مدیریت کنی. با مزایای زیادی که داره، انتخابی عالی برای شرکتهای بزرگ و برنامههای حساس به دسترسی پذیریه. البته، برای استفاده مؤثر از این سیستم، نیاز به دانش فنی و تجربه داری. اگه دنبال یه راه حل پایگاه داده برای مدیریت دادههای بزرگ هستی، Cassandra میتونه انتخاب مناسبی باشه.
امیدوارم این مقاله برات مفید بوده باشه و به سوالاتت جواب داده باشه. موفق باشی!
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: