今回は、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を使ってみましょう。執筆時点のPhoenixの最新バージョンは2.2.2なので、そちらを使っていきます。
インストール
Phoenixをインストールしましょう。HBaseはすでにインストールされているものとします。以下のページを参考にインストールしてください。
Phoenixで推奨されているHBaseのバージョンは0.94.12なので、それ以上のバージョンのHBaseをインストールすると良いでしょう。
Phoenixは以下の手順でインストールします。
(1)以下のダウンロードページから、執筆時点の最新版であるphoenix-2.2.2-install.tarをダウンロードします。
(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
この記事は参考になりましたか?
- 初めてのHBase連載記事一覧
-
- HBaseでトランザクションを扱ってみよう
- HBaseをSQLで操作してみよう(後編)
- HBaseをSQLで操作してみよう(前編)
- この記事の著者
-
鈴木 俊裕(スズキ トシヒロ)
株式会社サイバーエージェント アメーバ事業本部 Ameba Technology Laboratory 2008年4月に株式会社サイバーエージェントに新卒で入社。基盤システムの開発・運用に従事する。 2010年4月にHadoop/Hiveを用いたログ解析基盤の開発・運用を担当する。 2011年4月に、ログ解析、レコメンド、検索エンジンなどを開発するAmeba Technology Laboratoryの立ち上げメンバーとなる。 2011年10月からHBaseを用...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
