HBaseをSQLで操作してみよう(前編)

CodeZine / 2014年1月30日 14時0分

 今回は、HBaseをSQLで操作しRDBのように扱えるようにする、Salesforceが開発したライブラリ「Phoenix」を紹介します。

■はじめに

 本連載では、ここまでにいくつかのHBaseのユースケースを紹介してきました。RDBとは設計のやり方が違うので、戸惑われた方もいらっしゃると思います。

 今回は、HBaseをSQLで操作できるライブラリ「Phoenix」を紹介したいと思います。NoSQLのHBaseをSQLで操作するというと変に聞こえるかもしれませんが、HBaseをRDBのように扱えるのはメリットだと思います。ただし、Phoenixを使ったからといって、HBaseをまったく意識しなくて良いということではありません。

 今回のテーマでは、HBase上でどう実現されているかについて着目していきたいと思います。まずは前編ということで、実際にPhoenixを動かしてみましょう。

■対象読者

HBaseを使ってみたいけど、どう使ったらよいか分からない方 MySQLなどのRDB以外のデータベースを使ってみたい方 ■Phoenixとは

 Phoenixは、Salesforceが開発した「HBaseをSQLで扱えるようにしたライブラリ」です。BSDライクなライセンスで公開されており、HBaseへの低レイテンシーなクエリを実行するために開発されました。

 Phoenixでは、基本的なDDL(CREATE TABLE、DROP TABLE、ALTER TABLEなど)やDML(UPSERT VALUES、UPSERT SELECT、DELETEなど)がサポートされています。

 また、ビルトイン関数がサポートされており、独自に作ることも可能です。JDBCをサポートしているので簡単にJavaから使うことができます。

 Phoenixは、RDBライクな表形式のデータモデル(行×列)を提供しますが、HBase上では各列をRowKeyの一部かColumn/Valueとしてマッピングします。これについては、この後に説明します。

 それ以外にも、限定されたものですがトランザクションやセカンダリインデックス、ジョイン(マスタブランチのみ)もサポートされています。

 詳細は、以下を参考にしていただければと思います。

PhoenixのブログPhoenixのWikiPhoenixの最近実装された機能Phoenixのロードマップ■Phoenixを使ってみる

 それでは、実際にPhoenixを使ってみましょう。執筆時点のPhoenixの最新バージョンは2.2.2なので、そちらを使っていきます。

●インストール

 Phoenixをインストールしましょう。HBaseはすでにインストールされているものとします。以下のページを参考にインストールしてください。

HBaseを使って簡易ブログサービスを作ってみよう』  Phoenixで推奨されているHBaseのバージョンは0.94.12なので、それ以上のバージョンのHBaseをインストールすると良いでしょう。

 Phoenixは以下の手順でインストールします。

 (1)以下のダウンロードページから、執筆時点の最新版であるphoenix-2.2.2-install.tarをダウンロードします。

https://github.com/forcedotcom/phoenix/wiki/Download (2)ダウンロードしたファイルを解凍します。

$ tar xvf phoenix-2.2.2-install.tar
 (3)phoenix-2.2.2.jarを、HBaseのインストールディレクトリのlibディレクトリ以下にコピーします。

$ cp phoenix-2.2.2.jar <HBaseのインストールディレクトリ>/lib/
 (4)HBaseを起動します。

$ <HBaseのインストールディレクトリ>/bin/start-hbase.sh


CodeZine

この記事に関連するニュース

トピックスRSS

ランキング