バージョンアップ情報
Cassandra情報
Cassandraとは
Cassandra(カサンドラ)は高い拡張性と可用性を備えたオープンソースの分散データベース管理システムです。
CassandraはFacebook社(現Meta社)が大容量のデータを格納することを目的として開発が開始し、2008年にソースコードを公開し、2009年にApacheのプロジェクトとなりました。
その後2010年になりFacebook社ではCassandraで満たせない要件が出てきたため、Googleの技術をルーツとするHBaseを採用することになりました。
そのため、一時期Cassandraの採用が伸び悩んでいました。
しかし2014年以降、AppleやNetflixなどの企業が可用性を理由に自社の大規模システムにCassandraを採用し、再び注目を浴びています。
2021年7月にリリースされたCassandra 4.0.0では以下の機能追加や改善が行われました。
- Java 11サポート
- 一時レプリケーションの実験的サポートの追加
- メトリクスやYAML構成情報の公開するVirtual Tables機能の導入
- コンプライアンスやデバッグに有用な監査ログ機能の導入
- ライブトラフィックのキャプチャやリプレイのためのFull Query Logging (FQL) 機能の導入
- ノード間メッセージプロトコルの最適化
- クラスタノードのデータ交換で利用されるストリーミングの改善
2022年にリリースされた4.1.0では以下が強化されています。
- Guardrailsと呼ばれる新しいフレームワークの導入
- クライアント側のパスワードハッシュ使用オプションの導入
- パーティション拒否リストの導入
そして、2024年11月にはメジャーバージョン5.0.0がリリースされ、以下の機能追加や改善が行われました。
- Storage-Attached Indexing(SAI)の導入
- Java 17サポート
- 新しいUnified Compaction Strategy(UCS)の導入
- SAIを使用したANNベクトル検索機能の導入
- 動的データ・マスキングの導入
また、5.0.0のリリースに伴い、バージョン3系のコミュニティサポートが終了しました。
Cassandraはオープンソースプロジェクトであるため、無償でのソースコード取得・本番利用が可能な一方、DataStax社によるサポートを受けられる商用製品版も存在します。
主な特徴
Cassandraの主な特徴は以下の通りです。
マスターレス方式
多くのデータベースがクラスタアーキテクチャとして「マスター・スレーブ方式」を採用するのに対し、Cassandraは「マスターレス方式」を採用しています。
この方式により各ノードは等価であり、ノードを統括するマスターが存在しないため、単一障害点が存在しません。
加えて、レプリケーション設定により各ノードに登録されたデータはそれぞれ自動で別ノードに伝播されるため、高い可用性を実現する事が可能です。
データの分散配置
Cassandraはコンシステント・ハッシュ法を用いて、パーティションキーに基づきデータをクラスタ内の各ノードに分割して配置します。
そのため、一部のノードがダウンした場合やスケールアウトするような場合でもサービスを継続して利用することが可能です。
スキーマ定義がある
MongoDBなどのドキュメント型DBやRedisなどのKey-Valueストアと異なり、 Cassandraにはスキーマ定義があります。
これによってアプリケーションの開発や運用時に開発者・運用者にてデータ内容の把握が容易になります。
一方で、CassandraはRDBとは異なり、スキーマに完全依存せず、1つのカラムに対して複数の値を挿入するなど柔軟なテーブル構成が可能です。
線形スケーラビリティ
Cassandraはノードを追加することで処理性能をスケールさせることができます。
Cassandraは公式で性能が線形にスケールすることを謳っており、Netflix社のベンチマーク結果でも高いスケーラビリティが証明されています。
AppleのiCloudなど、大規模なシステムでCassandraが採用されている理由の1つに優れたスケーラビリティがあると考えられます。
(参考) Netflix社のベンチマーク:Benchmarking Cassandra Scalability on AWS — Over a million writes per second
SQLに似たクエリが利用可能 (CQL)
CassandraではCQL(Cassandra Query Language)というSQLライクなクエリでデータ操作を行うことができます。
SELECTやUPDATE、DELETEなどSQLに似た文法で基本的なクエリを実行することができます。
しかし、決してSQLと同等ではなく、JOIN機能がなく、SQL同等の関数も揃っていません。
またGROUP BYは3.1.0からサポートされるようになった一方、ORDER BYによる並び替えは特定のカラムに対してのみ有効といった制約もあります。
動作環境
Cassandraの主要部分はJavaで実装されており、Java上で動作します。
- Cassandra 4.0.2以降はJava 11を完全にサポートしています
- Cassandra 5.0.0以降はJava 17もサポートしています(ただし、ビルド時にはJava 11が必須です)
ただし、CQLの実行ツールであるcqlshを利用するためにはPython 3.6以上が必要です。
Cassandraのライセンス
CassandraはApache License Version 2.0に基づいて公開されています。
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
Apache Cordova
アパッチコルドバ。オープンソースのモバイル開発フレームワークです。
-
サポート対象Apache Axis
アパッチ アクシス。JavaとXML技術に基づいたWebサービスのフレームワークです。

