SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

初めてのHBase

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

初めてのHBase 第8回

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

 今回は、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連載記事一覧

もっと読む

この記事の著者

鈴木 俊裕(スズキ トシヒロ)

株式会社サイバーエージェント アメーバ事業本部 Ameba Technology Laboratory 2008年4月に株式会社サイバーエージェントに新卒で入社。基盤システムの開発・運用に従事する。 2010年4月にHadoop/Hiveを用いたログ解析基盤の開発・運用を担当する。 2011年4月に、ログ解析、レコメンド、検索エンジンなどを開発するAmeba Technology Laboratoryの立ち上げメンバーとなる。 2011年10月からHBaseを用...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7589 2014/01/30 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング