Apache HBase
概要
Apache HBaseとは、米アパッチソフトウェア財団(Apache Software Foundation)が開発・公開している、オープンソースの分散型データベース管理システム。データベースの主流であるリレーショナル型(RDB)と異なる構造を持つ、いわゆるNoSQL型システムの一つ。米グーグル(Google)社が開発し同社システムで内部的に使用している「BigTable」(ビッグテーブル)をモデルに、これに似た構造や機能を持つデータベース管理システムをオープンソースのソフトウェアとして再現したものである。
同じくASFが開発・公開している分散ファイルシステムであるHDFS(Hadoop Distributed File System)を基盤にデータベースを構築する。リレーショナルデータベースのように表(テーブル)の形でデータを構造化するが、一般的なRDBMSとは異なり各列(カラム)の値をひとまとめにしてストレージ上に記録する。このような方式を列指向(カラム指向)型という。
表における各行(row)には、「クオリファイア」(qualifier)と呼ばれる標識(列名に相当)と「セル」(cell)と呼ばれる単体のデータ(フィールド値に相当)のペアを単位にデータを格納する。さらに複数のクオリファイアが「カラムファミリー」(column family)にグループ化されている。セルのデータは自動的に履歴管理され、過去の任意の時点のデータを呼び出すことができる。
多数のサーバコンピュータで一つのデータベースを管理する分散環境を前提に設計され、データを複数のノードに分散して記録するシャーディングを自動的に行うため、アプリケーション側で保存先を気にする必要はない。データの一貫性が強く確保され、処理途上で古いデータを外部から参照されないようになっている。
データベースの操作はRDBのようにSQLを使うことはできず、Java APIやRESTful APIなどでの形で提供されるAPIをアプリケーションから呼び出すことで行う。Apache HadoopのMapReduceなどビッグデータの大規模分散解析などに適している。