トップ OSS紹介 Cassandra

Cassandra

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

バージョンアップ情報

Cassandra情報

Cassandraとは

Cassandra(カサンドラ)は高い拡張性と、可用性を兼ね備えたOSSの分散データベース管理システムです。
CassandraはもともとFacebookにおいて、大容量のデータを格納するために開発され、 2008年にソースコードが公開されました。
その後FacebookがGoogleのBigtableをモデルとした別プロダクトであるHBaseを採用した動きから採用する企業は限定的でしたが、近年AppleやNetflixといった企業が可用性などの観点から自社の大規模システムにCassandraを採用したこともあり、再び注目を浴びています。

Cassandraはオープンソースプロジェクトであるため、無償でのソースコード取得・本番利用などが可能ですが、テスト済みでサポートを受けることが可能なDataStax社による商用製品版も存在します。

2021年7月にメジャーリリースである4.0.0がリリースされました。 このメジャーリリースでは

  • Java11や一時レプリケーションの実験的サポートの追加
  • メトリックやYAML構成情報の公開するVirtual Tables機能の追加
  • コンプライアンスやデバッグに有用な監査ログ機能の追加
  • ライブトラフィックのキャプチャやリプレイのためのFull Query Logging(FQL)機能の追加
  • ノード間メッセージプロトコルの最適化
  • クラスタノードのデータ交換で利用されるストリーミングの改善

が行われました。

主な特徴

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などの並び替えについても制限がかかっているため、注意が必要です。

動作環境

CassandraはJavaアプリケーションです。

  • Oracle Java Standard Edition 8またはOpenJDK8の最新バージョンが必要となります。(Java 11はまだ実験的サポートであり、プロダクション環境での利用は推奨されません)
  • 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がまるごと解決します。
下記コンテンツも
あわせてご確認ください。