PR

ドキュメント指向データベースと列指向データベース

2010年10月15日(金)
藤本 壱

Apache Cassandraの基本

列指向データベースの中で、オープンソースとして公開されているものもいくつかあります。その1つに、「Apache Cassandra」があります(以後「Cassandra」と略)。

Cassandraは、元々はFacebookの大量のデータを処理するために作られたデータベースです。その後、Apacheファウンデーションに寄贈されて、オープンソース化されました。現在では、Apacheトッププロジェクトの1つになっています。

Cassandraもスケーラビリティを重視した設計になっています。多数のサーバーにCassandraをインストールし、データを分散して処理することができます。

CassandraはJavaで記述されていますので、WindowsやLinuxなどのJavaが動作する環境で動作させることができます。また、「Thrift」というフレームワークによって、PHPやPerl等の各種の言語から、Cassandraのデータベースにアクセスすることができます。

Cassandraでは、データベース全体のことを「キースペース」と呼びます。また、リレーショナルデータベースのテーブルに相当するものを、「カラムファミリ」と呼びます。1つのキースペースの中に、複数のカラムファミリを入れることができます。

カラムファミリでは、1件分のデータを「key」で識別します。そして、そのデータには「name」と「value」からなる「カラム」を入れることができます。この場合は、カラムファミリは、リレーショナルデータベースのテーブルと似た使い方をすることができます。ただ、リレーショナルデータベースとは違い、カラムはデータを追加する都度自由に決めることができ、あらかじめ構造を決めておく必要はありません。

例えば、電話番号簿を作りたいとします。ただし、人によって、関係する電話番号がいろいろあるとします(自宅/携帯/会社等)。このような電話番号簿をCassandraで作る場合、人の名前をkeyにし、その人に関連する電話番号をカラムで表して、図2のようなデータ構造にすることが考えられます。

また、カラムファミリに「スーパーカラム」を入れることもできます。この場合、個々のカラムの中に、さらに細かなカラムを入れ子にするようなイメージになります。

図2:電話番号簿をCassandraで作る場合のデータ構造の例

Cassandraを使ってみる

前述したように、CassandraはJavaで作られています。JDKをインストールした環境で、環境変数をいくつか設定した後、Cassandraのプログラムを起動すれば、Cassandraを使ってみることができます。例えばWindowsなら、以下の手順でCassandraを実行することができます。

  1. 表3の環境変数を設定します。
  2. Cドライブに「var」というフォルダを作り、さらにその中に「lib」というフォルダを作ります。
  3. Cassandraの解凍先の「bin」フォルダにある「cassandra.bat」を実行します。

コマンドラインのツールで、データの追加等を行うことができます。Windowsであれば、コマンドプロンプトを起動して、binフォルダの「cassandra-cli.bat」を実行します。

前述の図2の例で、keyが「yamada」、カラムのnameが「home」の電話番号を追加したいとします。この場合、コマンドラインのツールで以下のように入力すれば、「Keyspace1」というキースペースの「Standard1」というカラムファミリに、データを追加することができます。

set Keyspace1.Standard1['yamada']['home'] = '03-1234-XXXX'

また、以下のように入力すれば、keyが「yamada」のデータについて、nameとcolumnの組み合わせのリストを得ることができます。

get Keyspace1.Standard1['yamada']

さらに、本稿では紙面の都合で解説しませんが、PHP等のライブラリを使って各種の処理(データの検索等)を行うことも可能です。

名前 設定値
JAVA_HOME JDKのインストール先のパス
CASSANDRA_HOME Cassandraのインストール先のパス
CASSANDRA_CONF %CASSANDRA_HOME%\conf
CASSANDRA_MAIN org.apache.cassandra.thrift.CassandraDaemon

表3:Cassnadraを実行するために設定する環境変数

1969年生まれ。神戸大学工学部電子工学科卒。ソフトメーカー勤務後、フリーライターとして独立。現在では、パソコン関係およびマネー関係の書籍を中心に執筆活動を行っている。ブログ「The blog of H.Fujimoto」は、Movable TypeやWordPressの情報を中心に毎日更新している(http://www.h-fj.com/blog/)。

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています