バージョンアップ情報
Cassandra情報
Cassandraとは
Cassandra(カサンドラ)は高い拡張性と、可用性を兼ね備えたOSSの分散データベース管理システムです。
CassandraはもともとFacebook社(現Meta社)*において、大容量のデータを格納するために開発され、 2008年にソースコードが公開され、2009年にはApacheのプロジェクトとなりました。
その後2010年にFacebook社*はGoogleが開発したBigtableをモデルとした別プロダクトであるHBaseを採用した動きから、Cassandraを採用する企業は限定的でしたが、2014年以降AppleやNetflixといった企業が可用性などの観点から自社の大規模システムにCassandraを採用したことを公表したこともあり、再び注目を浴びました。
Cassandraはオープンソースプロジェクトであるため、無償でのソースコード取得・本番利用が可能ですが、テスト済みでサポートを受けることが可能なDataStax社による商用製品版も存在します。
2021年7月にメジャーリリースである4.0.0がリリースされました。 このメジャーリリースでは、
- Java11や一時レプリケーションの実験的サポートの追加
- メトリックやYAML構成情報の公開するVirtual Tables機能の追加
- コンプライアンスやデバッグに有用な監査ログ機能の追加
- ライブトラフィックのキャプチャやリプレイのためのFull Query Logging(FQL)機能の追加
- ノード間メッセージプロトコルの最適化
- クラスタノードのデータ交換で利用されるストリーミングの改善
が行われました。
最新のGAバージョンとして4.1がリリースされています。
- 仮想テーブル(Virtual Tables)機能の導入
- Guardrailsと呼ばれる新しいフレームワークの導入
- クライアント側のパスワードハッシュ使用オプションの追加
- パーティション拒否リストの導入
などが行われました。
次のメジャーリリースである5.0.0は、間もなくリリース予定です。2023年12月にBETA1がリリースされています。このメジャーリリースでは、
- Storage-Attached Indexing(SAI)の導入
- JDK17サポート
- Cassandra Query Language(CQL)内の新しい数学関数のサポート
- 新しいUnified Compaction Strategy(UCS)の導入
- SAIを使用したANNベクトル検索機能の導入
- CALデータ型に対する汎用マスキングを提供するネイティブCQL関数の追加
などの新機能があります。
主な特徴
Cassandraの主な特徴は以下の通りです。
マスターレス方式
データベースのクラスタアーキテクチャとしては「マスタスレーブ方式」の採用が 大半を占めていますが、Cassandraは「マスターレス方式」を採用しています。
この方式では各ノードが等価であり、ノードを統括するマスタは存在しません。 そのため、単一障害点が存在しません。加えて、レプリケーション設定により 各ノードに登録されたデータはそれぞれ自動で別ノードに伝播されるため、 高い可用性を実現する事が可能です。
データの分散配置
Cassandraはコンシステント・ハッシュ法というパーティションキーに基づいて、データをクラスタ内の各ノードに分割して配置するハッシュ法を採用しているため、一部のノードがダウンした場合やスケールアウトするような場合でも、サービスを継続して利用することが可能です。
スキーマ定義がある
MongoDBなどのドキュメントDBや、RedisなどのKey-Valueストアと異なり、 Cassandraにはスキーマ定義があります。これによってアプリケーションの 開発や運用時に開発者・運用者にてデータ内容の把握が容易になります。
加えて、CassandraはRDBと異なり、スキーマに完全に依存しているわけではなく、一つのカラムに対して複数の値を挿入するなどある程度自由なテーブル構成を実現することができます。
性能が線形にスケールする
Cassandraは、ノードを追加することで処理をスケールさせることができます。
Cassandraは公式で性能が線形にスケールすることを謳っており、 Netflixが実施したベンチマークもそれを裏付けています。
AppleのiCloudなど、大規模なシステムでCassandraが採用されている理由の一端としては、 このようなスケール性能があると考えられます。
SQLに似たクエリが利用可能(CQL)
Cassandraでは、CQL(Cassandra Query Language)というSQLライクなクエリで 操作を行うことが出来ます。SELECTやUPDATE、DELETEなど、基本的なクエリはSQL ほぼそのままで実行することができます。GROUP BYはバージョン3.4.3から実装されサポートされています。 ただしJOINなどの集約は実装されていません。
また、関数やORDER BYなどの並び替えについても制限がかかっているため、注意が必要です。
GAバージョン4.1のCQLのバージョンは、3.4.6です。
最新バージョンの5.0BETAのCQLバージョンは、3.4.7となっています。
動作環境
CassandraはJavaアプリケーションです。
- Oracle Java Standard Edition 8またはOpenJDK8の最新バージョンが必要となります。Cassandra4.0.2以降は、Java11が完全サポートされています。
- cqlshを利用するためにはPython3.6以上の最新バージョンが必要となります。
Cassandraのライセンス
Cassandraのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
Apache Cordova
アパッチコルドバ。オープンソースのモバイル開発フレームワークです。
-
サポート対象
Apache Axis
アパッチ アクシス。JavaとXML技術に基づいたWebサービスのフレームワークです。