NoSQL「HBase」はIoTにも最適--柔軟なスキーマでデータ構造の変更に対応

草薙昭彦 (MapR Technologies) 2015年03月09日 19時14分

  • このエントリーをはてなブックマークに追加

HBase登場の背景

 2月24日、オープンソースソフトウェア(OSS)プロジェクト支援団体Apache Software Foundation (ASF) は「Apache HBase 1.0」のリリースを発表しました。HBaseの開発が開始されてから約8年、数々の機能強化と安定性向上のための改良を経て、成熟した製品として一つのマイルストーンに達したことが合意された結果です。第2回では、このHBaseについて掘り下げていきます。

 HBaseは、ASFのプロジェクトとして開発されているOSSのNoSQLデータベースです。同じくApacheプロジェクトの分散データ処理基盤として開発されている「Apache Hadoop」上で動作し、分散型のスケーラブルなデータストア機能を提供しています。

 HadoopやHBaseは、Googleの大規模分散処理基盤を構成する技術をもとに、オープンソースコミュニティがクローンとして開発したソフトウェアです。価格性能比の高いコモディティサーバを利用して信頼性の高い大規模なシステムを構築するというGoogleの思想は、そのままこれらのプロジェクトに引き継がれています。

 Hadoopは、分散ファイルシステム「Google File System (GFS) 」とアプリケーション実行フレームワーク「MapReduce」をオープンソースで実現するためのプロジェクトですが、対象としていたのは主に非構造化データに対するバッチ処理でした。これに対してHBaseは、構造化されたデータに低レイテンシでアクセスするために設計されたデータストアである「BigTable」のオープンソース実装です。

 初期のBigTableの利用例のひとつに、ウェブアクセス解析のシステムがあります。このシステムでは、無数にあるウェブサーバから大量かつ高頻度のデータが投入される一方で、短時間での集計と統計情報の低レイテンシでの取り出しをサポートする必要がありました。このような要件を満たすための設計が最適化され、それはHBaseの使い方を考える上で重要なポイントになります。

HBaseのデータモデルと実装

 HBaseそのものを紹介する前に、HBaseで扱われるデータモデルについて説明します。HBaseのデータモデルはBigTableが元になっていますので、BigTableの論文の次の非常に簡潔な説明を引用します。「BigTableは“スパース”で分散され、永続性のある、多次元ソートマップである」。そして「各“マップ”はソートされた行キー、カラムキー、タイムスタンプでインデックスされ、値は解釈されていないバイト列」と続きます。

 マップという用語を聞き慣れない方がいるかもしれませんが、マップとは、重複しないキーを使って構成される、キーと値のペアの集合のことを指しています。HBaseでは、行キー、列(カラム)キー、タイムスタンプという多次元の要素からなるキーと、そこから一意に定まる値のペアがデータ構造を表現します。

 ここで、データを2次元の表の形式で表してみましょう。このHBaseのテーブルは、リレーショナルデータベース(RDBMS)のテーブルと同様に垂直方向に行、水平方向にカラムが並び、各行は1つの行キーと任意の数のカラムを持ちます。上で述べた多次元マップは、キーが指定するテーブル内の特定セルに格納される値、という形で表現することが可能です。シリーズ第1回でHBaseはワイドカラムストア型に分類されていましたが、これはマップの追加により各行に任意の数のカラムを保持できることを示しています。

図1:多次元ソートマップをテーブルとして表現
図1:多次元ソートマップをテーブルとして表現(筆者作成)

 これをRDBMSのリレーショナルモデルと比較してみると、その違いが際立ちます。リレーショナルモデルにおけるリレーションは、多次元の属性を持つ“タプル(値の組、テーブルの行で表現される)”の集合ですが、リレーション間の演算を成り立たせるためにリレーションのすべてのタプルは同じ属性を持ち、重複やNULL値を許容しません。さらに、データの矛盾を排除するために積極的に正規化されます。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

この記事を読んだ方に

関連ホワイトペーパー

SpecialPR

連載

CIO
ハードから読み解くITトレンド放談
大木豊成「仕事で使うアップルのトリセツ」
研究現場から見たAI
ITは「ひみつ道具」の夢を見る
内製化とユーザー体験の関係
米ZDNet編集長Larryの独り言
今週の明言
「プロジェクトマネジメント」の解き方
田中克己「2020年のIT企業」
松岡功「一言もの申す」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
Fintechの正体
内山悟志「IT部門はどこに向かうのか」
情報通信技術の新しい使い方
三国大洋のスクラップブック
大河原克行のエンプラ徒然
コミュニケーション
情報系システム最適化
モバイル
通信のゆくえを追う
セキュリティ
企業セキュリティの歩き方
サイバーセキュリティ未来考
セキュリティの論点
ネットワークセキュリティ
スペシャル
Gartner Symposium
企業決算
ソフトウェア開発パラダイムの進化
座談会@ZDNet
Dr.津田のクラウドトップガン対談
CSIRT座談会--バンダイナムコや大成建設、DeNAに聞く
創造的破壊を--次世代SIer座談会
「SD-WAN」の現在
展望2017
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
HPE Discover
Oracle OpenWorld
Dell EMC World
AWS re:Invent
AWS Summit
PTC LiveWorx
古賀政純「Dockerがもたらすビジネス変革」
さとうなおきの「週刊Azureなう」
誰もが開発者になる時代 ~業務システム開発の現場を行く~
中国ビジネス四方山話
より賢く活用するためのOSS最新動向
「Windows 10」法人導入の手引き
Windows Server 2003サポート終了へ秒読み
米株式動向
実践ビッグデータ
日本株展望
ベトナムでビジネス
アジアのIT
10の事情
エンタープライズトレンド
クラウドと仮想化