トップ OSS紹介 Cassandra

Cassandra

NRIのOpenStandiaが提供するCassandra 最新情報

バージョンアップ情報

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 Cordova

    アパッチコルドバ。オープンソースのモバイル開発フレームワークです。

  • Apache Axis
    サポート対象

    Apache Axis

    アパッチ アクシス。JavaとXML技術に基づいたWebサービスのフレームワークです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。