クラウド
上級

Apache Cassandra (分散NoSQL)(カサンドラ)

Facebook 2008年公開・Apache Foundation 移管の分散NoSQL データベース。Wide Column・無限水平スケール・マルチデータセンタで巨大スケール採用。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
DB
Cassandra
NoSQL
分散

概要

Apache Cassandra はAvinash Lakshman / Prashant Malik (Facebook) が2008年に公開・社内Inbox Search 用に開発開始、後にApache Software Foundation へ移管・Apache 2.0 ライセンスで運営されている分散NoSQL データベース。Amazon Dynamo (2007論文・分散性) と Google BigTable (2006論文・列指向) のハイブリッド設計、Wide Column ストア・無限水平スケール・マルチデータセンタ複製・Always-On (No Single Point of Failure) で巨大スケール採用。

主要マイルストーン

年月出来事
2008-07Facebook 公開
2009-03Apache Software Foundation 採用
2010-02Apache Top-Level Project
2012Netflix 大規模採用
2014DataStax 商用版・Enterprise
2015-04Cassandra 2.1 (Lightweight Transactions)
2017-01Cassandra 3.x (Materialized Views)
2021-07Cassandra 4.0
2024-09Cassandra 5.0 (Vector Search / Storage Attached Index)

Cassandra 主要特徴

特徴説明
データモデルWide Column (Column Family)
アーキテクチャPeer-to-Peer (No Single Master)
一貫性Tunable (Strong / Eventual 選択可)
複製Configurable Replication Factor
ノード追加線形スケール
Masterなし (P2P)
障害耐性No Single Point of Failure
マルチDC標準
CQLCassandra Query Language (SQL風)
通信Gossip Protocol

CAP 定理での位置

CAP 定理 (Consistency / Availability / Partition Tolerance):

DBCAP分類
CassandraAP (Availability + Partition Tolerance)
MongoDBCP (Consistency + Partition Tolerance)
RedisCP
DynamoDBAP
PostgreSQLCP

Cassandra は「Always-On」を最優先・データ整合性は「Eventually Consistent」を許容、ネットワーク分断時もサービス継続。

CQL (Cassandra Query Language)

SQL 風の独自クエリ言語:

-- Keyspace (Database 相当) 作成
CREATE KEYSPACE my_app
WITH REPLICATION = {
    'class': 'NetworkTopologyStrategy',
    'dc1': 3,
    'dc2': 3
};

-- Table 作成
CREATE TABLE my_app.users (
    user_id UUID,
    email TEXT,
    created_at TIMESTAMP,
    PRIMARY KEY (user_id)
);

-- Insert / Select
INSERT INTO my_app.users (user_id, email, created_at)
VALUES (uuid(), '[email protected]', toTimestamp(now()));

SELECT * FROM my_app.users WHERE user_id = abc...;

JOIN なし・正規化少なめが特徴。

主要採用先

企業用途規模
Netflixストリーミング履歴数百TB
AppleiCloud 一部数百ノード
Instagramフィード数十TB
eBay検索 / 在庫数十ノード
Walmart注文管理数百ノード
Discordメッセージ (~2017まで・後ScyllaDB)数十TB
CloudflareDNS Analytics-
ComcastTV 推薦-

Cassandra 5.0 (2024) 主要追加

機能内容
Vector SearchAI ベクトル類似検索
Storage Attached Index (SAI)全列インデックス対応
Trie Memtableメモリ効率向上
Cassandra Sidecar管理ツール

主要競合・派生

DB関係
Apache HBaseGoogle BigTable 系・分散
ScyllaDBCassandra C++ 互換実装・10倍高速
DataStax AstraDataStax の Cassandra マネージドクラウド
Apache Cassandra (Apache)本家オープンソース

ScyllaDB (派生)

2014年ScyllaDB Inc. が Cassandra と100% wire-compatible なC++ 実装公開:

  • 10倍以上の性能 (Reactor Pattern)
  • Discord が2017年に Cassandra から ScyllaDB へ移行 (有名事例)
  • 同じCQL クライアントで利用可

関連用語との違い

  • vs MongoDB: Wide Column / Document
  • vs Redis: 永続的分散 / In-Memory
  • vs DynamoDB: OSS / AWS マネージド
  • vs HBase: Cassandra (Peer-to-Peer) / HBase (Master-Slave)

FAQ

Q1: 個人で使う? A: 通常不要。Web アプリ・ホビーは PostgreSQL / MongoDB で十分。Cassandra は数十-数百ノードのスケールが必要な企業向け。

Q2: 学習価値? A: 高い。分散システム理論 (CAP / Gossip / Vector Clock / Consistent Hashing) の実用例として学習価値大。NoSQL 設計パターン理解に有効。

Q3: ScyllaDB へ乗換? A: 高性能要求・C++ メモリ効率重視ならScyllaDB。OSS コミュニティ・標準性ならCassandra。両方Wire互換でクライアント側変更最小。

この記事について
カテゴリークラウド
難易度上級
作成日2026/5/15