Cassandra چیست؟
دیتابیس NoSQL ستونی و توزیعشده، ساختهشده برای نوشتن حجم بسیار بالا و بدون نقطه شکست واحد در مقیاس چند دیتاسنتر.
چرا مهم است؟
در سیستمهایی با نرخ نوشتن بسیار بالا (IoT، لاگ رویداد، پیامرسانهای بزرگ) که هیچ سرور تکی جواب نمیدهد، Cassandra با معماری کاملاً توزیعشده و بدون Master، دردسترسبودن و مقیاس نوشتن را تضمین میکند.
تعریف
Cassandra یک دیتابیس ستونی توزیعشده است که در آن هر گره (Node) برابر است — بدون سرور Master یا Master ثانویه؛ داده بین چند Node و چند دیتاسنتر Replicate میشود تا حتی با از دست رفتن چند سرور، سیستم همچنان در دسترس بماند.
مدل داده
CREATE TABLE events_by_device (
device_id UUID,
event_time TIMESTAMP,
payload TEXT,
PRIMARY KEY (device_id, event_time)
) WITH CLUSTERING ORDER BY (event_time DESC);
برخلاف SQL، طراحی جدول در Cassandra بر اساس الگوی Query انجام میشود، نه نرمالسازی — یعنی معمولاً همان داده برای Queryهای مختلف چند بار در جدولهای متفاوت تکرار میشود (Denormalization عمدی).
ویژگی کلیدی: Tunable Consistency
میتوانید برای هر Query مشخص کنید چند Replica باید تأیید کنند تا عملیات موفق حساب شود (ONE، QUORUM، ALL) — یعنی خودتان بین سرعت و سازگاری داده Trade-off میکنید.
اشتباه رایج
❌ طراحی جدول Cassandra مثل یک جدول رابطهای نرمالشده و تلاش برای JOIN بین جدولها — Cassandra اصلاً JOIN ندارد؛ باید داده را بر اساس الگوی خواندن، از قبل مسطح (Denormalize) کرد.
منبع و مطالعه بیشتر
خلاصه
Cassandra یک دیتابیس ستونی بدون Master است که برای نوشتن حجم بسیار بالا و دردسترسبودن چنددیتاسنتری طراحی شده. جدولها باید بر اساس الگوی Query طراحی شوند نه نرمالسازی، چون JOIN ندارد. مرجع کامل: مستندات رسمی Apache Cassandra و DataStax.
