Apache Cassandraはオープンソースの分散型データベース管理システムです。「Google Bigtable」のデータモデルと「Amazon Dynamo」のレプリケーションなどを参考に融合させて開発されました。NoSQLのデーターベース管理システムとして人気の筆頭です。この記事ではApache Cassandra理解をするために歴史や特徴、基本的なコマンドなどの基礎知識を簡単に解説していきます。
Apache Cassandraとはオープンソースの分散型データベース管理システムです。2008年にFacebook社でSNSの大規模なデータ処理を実現するために開発されました。サービス名称にApacheの名があることからも分かるように『Apache Software Foundation』によって開発・管理がされております。(初期バージョンはFacebook社が開発)Apache Cassandraは特徴として「耐障害性」「パフォーマンスが高い」「スケーラビリティー」などが挙げられます。
NoSQLとはデータベース言語であるSQLを使用せずとも利用することのできるDBMS(データベース管理システム)を指す言葉です。NoSQLは「Not Only SQL」の略称だと言われておりリレーショナル型データベース以外の総称です。よってNoSQLというDBMSの種類があるわけではありません。別名「非リレーショナル型データベース」と呼ばれています。
NoSQLの歴史や特徴について解説された記事はこちら>>
SQLとはリレーショナルデータベースの管理・操作をするため最も普及されているデータベース言語です。主な用途としてデータベース管理システム(DBMS)へデータの検索、追加、削除、更新などの指示のために使用されます。1970年代にIBM社の開発によって誕生した『Structured English Query Language(SEQUEL)』が元になっております。そのことから広く知れ渡っている呼び名は『シーケル』です。またSQLは国際標準化機構(ISO)で規格化をされております。そのためMySQL、Oracle、PostgreSQLなど様々なデータベース管理システムにおいてもSQLにて対応することが可能です。またSQLの代表的な拡張プログラム言語としてPL/SQLやT-SQLなどが挙げられます。
SQLの歴史や特徴について解説された記事はこちら>>
データベースとは様々な情報を整理し効率よく使用するために格納するデータの集合体のことです。データベースには様々なデータを効率よく管理するための機能が用意されております。また大量のデータを高速に処理することも可能です。用途は様々で顧客管理や在庫管理などの複数のデータを取り扱うことが必要とされる業務に使用されます。主なデータベースの種類としてOracleDBやMySQLなどが挙げられます。
データベースの種類や特徴を解説している記事はこちら>>
DBMSとはデータベースを構築するためにデータベースの運用、管理を実行するためのシステムです。
代表的な製品としてOracle Database、SQL Server、MySQLなどが挙げられます。
DBMSの歴史や種類を解説している記事はこちら>>
Apache Cassandraの読み方は『アパッチ・カサンドラ』です。名前の由来は見つかりませんでしたが、現在の正式名称である『Apache Cassandra』は2009年にASFに移管されて以降名付けられたと言われております。
Apache Cassandraは2008年にFacebook社のプログラマーである『アビナッシュ・ラクシュマン』『プラシャント・マリク』の2名によって開発されました。開発の目的はSNSの大規模なデータ処理を実現するためです。同年にFacebook社はCassandraをオープンソースとして公開し、「Apache Software Foundation(Apacheソフトウェア財団)」へ寄贈します。翌年の2009年位はASFに移管されCassandraは『Apache Cassandra』という正式名称へとなりました。
さらに翌年の2010年はApacheのトッププロジェクトに昇格します。以降、様々な有名企業で採用されることとなり「Netflix」「SONY」などが代表として挙げられております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2008年 | Facebook社の開発によって『Cassandra』誕生 『Apache Software Foundation(Apacheソフトウェア財団)』へ寄贈 |
2009年 | 『Apache Cassandra』という正式名称へ |
2010年 | Apacheのトッププロジェクトに昇格 |
2011年 | 『Apache Cassandra 1.0』リリース |
2013年 | 『Apache Cassandra 2.0』リリース |
2015年 | 『Apache Cassandra 3.0』リリース |
2020年 | 『Apache Cassandra 3.11.8』リリース |
Apache Cassandraの特徴を見ていきましょう。
MariaDBはMySQLとの互換が高いという特徴があります。これはいずれも開発者がミカエル氏のためベースのプログラムが親しいということが大きな理由とえます。これによりMySQLからMariaDBへの切り替えも簡単でスムーズに行うことができます。
Apache Cassandraは分散型データベースという特徴があります。分散型データベースとは複数の箇所に分散されたデータベース群が、一つのものであるかのように扱えるデータベース体系です。列指向データベース管理システムと行指向データベースシステムの複合型とも言われております。
Apache Cassandraは耐障害性に優れているという特徴があります。耐障害性については障害許容設計のため、複数のノードに自動的に複製されます。また複数のデータセンター間でのレプリケーションがサポートしており、障害が発生したノードは、ダウンタイムなしで置き換えることが可能です。
Apache Cassandraはパフォーマンスが高いという特徴があります。Apache Cassandraは主に基本的なアーキテクチャの選択により、ベンチマークや実際のアプリケーションで人気のあるNoSQLの代替案を常に上回っています。パフォーマンスが高いことがApache Cassandraが選ばれる大きな理由の一つです。
Apache Cassandraはスケーラビリティに優れているという特徴があります。データの整合性を重視しないことや、データのオーケストレーションと管理を行うための巨大な「マスター」を必要としません。そのため全てのノードに安価な汎用サーバーを使用できます。
Apache Cassandraの基本的なコマンドを以下の表にまとめておりますのでご覧ください。
カテゴリ | 内容 | コマンド |
起動 | Apache Cassandraを起動 | $ bin/cassandra [-f] |
データベース | データベース一覧の表示 | cqlsh> DESCRIBE keyspaces; |
テーブル | テーブル一覧の表示 | cqlsh> DESCRIBE tables; |
テーブルの作成 | cqlsh> USE my_app; cqlsh:my_app> |
|
ユーザー | ユーザー作成 | cqlsh> CREATE USER newuser WITH PASSWORD ‘password’; |
ユーザー確認 | $ ./bin/cqlsh -u Alice -p alice; |
Apache Cassandraを理解するために歴史や特徴、基本的なコマンドなどの基礎知識を簡単に解説させて頂きました。Apache Cassandraを一言で表すと『オープンソースの分散型データベース管理システム』です。Apache Cassandraの特徴として「耐障害性」「パフォーマンスが高い」「スケーラビリティ」などが挙げられます。Apache Cassandraについてこの記事で記載されている最低限の内容は理解しておくようにしましょう。