Apache HBaseは、GoogleのBigtableをモデルにしたオープンソースの分散型バージョン管理型非リレーショナルデータベースです。BigtableがGoogle File Systemの分散ファイルストレージシステムを使用しているように、Apache HBaseはHadoop Distributed File System(HDFS)の分散機能を利用しています。
HBaseは多くのビッグデータのユースケースで一般的な、大量の分散データを保存するフォールトトレラントな方法を提供するために設計されています。リレーショナルデータベースシステムとは異なり、HBaseはSQLのような構造化されたクエリ言語をサポートしておらず、代わりにAPIを通じてアクセスします。
例えば何十億人ものユーザーがステータスを投稿し、写真をアップロードし、友達を作るソーシャルメディアアプリケーションを運営しているとします。ここで生成されるデータは巨大で構造も多様です。従来のリレーショナルデータベースでは、このようなデータを効率的に処理するのは難しくなりますが、HBaseなら効率的に処理できます。
HBaseではデータはテーブルに整理されますが、従来のリレーショナルデータベースにおけるテーブルの考え方とは少し違います。ここで簡単な例を挙げます。
ソーシャルメディアアプリケーション用にHBaseにUsers
というテーブルがあると仮定します。
HBaseはビッグデータへのリアルタイムの読み書きアクセスに最適な選択肢です。巨大なデータセットがあり、特定のキーの値を何千台ものサーバーからリアルタイムで素早く検索する必要がある場合によく使われます。
しかし、アプリケーションが複雑な複数行のトランザクションを必要とする場合や、複数のテーブルを結合したり多くの異なる行やテーブルのデータを集約するような複雑なクエリを実行する必要がある場合、HBaseは最適な選択ではありません。また、HBaseは小規模なデータ用に設計されていません。HBaseの利点は数テラバイトの大規模なデータセットで最もよく発揮されます。