Hadoop HBase part1

ということで,HBaseについて.

最近,Hadoop内でも特に活発に開発されているHBaseについてです.これは,Google Bigtableの再実装ですね.HBase Architectureを読んでみたまとめを書いておきます.


Data Modelとして,基本的なデータの表現方法が記されています.まず,HBaseは,概念的にはデータベースで言うところの表形式のようなものを持っています.カラムは,<family>:<label>であらわされます.それぞれのレコードに当たるものは,<Row Key>で一意に決定されます.さて,<family>は,SQLのCREATE TABLEみたいなものを発行して決定されますが,


で,実際にどんな感じに格納されるかの話,レコードのキーがrow[0-3]の場合.


row=row0, column=anchor:bar, timestamp=1174184619081

row=row0, column=anchor:foo, timestamp=1174184620720

row=row0, column=anchor:foo, timestamp=1174184617161

row=row1, column=anchor:bar, timestamp=1174184619081

row=row1, column=anchor:foo, timestamp=1174184620721

row=row1, column=anchor:foo, timestamp=1174184617167

row=row2, column=anchor:bar, timestamp=1174184619081

row=row2, column=anchor:foo, timestamp=1174184620724

row=row2, column=anchor:foo, timestamp=1174184617167

row=row3, column=anchor:bar, timestamp=1174184619081

row=row3, column=anchor:foo, timestamp=1174184620724

row=row3, column=anchor:foo, timestamp=1174184617168

って感じ.anchor:fooは複数追記されているけど,それは,timestampが違うからですね.何も指定せずにanchorをrow1でゲットすれば,4行目に相当するデータが帰ってくるわけですね.ちょっと工夫すれば,高速に検索できそうです.