BT

Phoenix: Apache HBase上でSQLクエリを実行する

| 作者: Abel Avram フォローする 9 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2013年2月13日. 推定読書時間: 2 分 |

原文(投稿日:2013/01/31)へのリンク

 

Salesforce.comがPhoenixをオープンソース化した。これは開発者が Apache Hbase上でSQLクエリを走らせることができるJava層である。

無数の SQL, NoSQL、NewSQLに加えて、Salesforce.comがアナウンスした のは、プロジェクトPhoenix, Apache HBaseの上のSQL層、で行指向のビッグデータストアである。全てJavaで書かれており、コードはGitHubで入手でき、クライアントに組込み可能なJDBCドライバーを提供している。

Phoenixは Salesforce.com内部で低遅延クエリとして使われており、プロジェクトの記述によれば、単純なクエリを数ミリ秒、あるいは何千万の行を数秒で処理する。Phoenixは、HBaseのように map-reduceジョブ用に使われるのではなく、標準化された言語を介してHBaseにアクセスするのに使われている。

プロジェクトの作成者によると、PhoenixはHiveに対して1つの単純なクエリで1千万から1億の行を処理する。 また、HBaseのAPI、コプロセッサ、カスタムなフィルターを使うことで、同様なクエリを実行する Impala やOpenTSDBよりもずっと高速である。

Phoenixクエリエンジンは、SQLクエリを1つないし複数のHBaseスキャンに変換して、それらの実行を調整し、標準のJDBC 結果セットを生成します。 HBase APIを直接使い、コプロセッサとカスタムなフィルターを併用すると、パフォーマンス が小さなクエリでミリ秒の桁、数千万の行で秒の桁になります。

最も興味のあるフィーチャを以下に列記する。

  • 組込まれたJDBCドライバーがメタデータAPIを含んだ、ほとんどの java.sqlインターフェースを実装している。
  • 列をマルチパート行キーあるいはキー/値 セルとしてモデル化できる。
  • 述語のプッシュダウンと最適なスキャンキー形成を持つ、完全なクエリサポート。
  • DDLサポート:列の追加/削除用の CREATE TABLE, DROP TABLE, ALTER TABLE。
  • バージョン管理されたスキーマ リポジトリ。スナップショットクエリは、データが書かれた場所のスキーマを使う。
  • DMLサポート:UPSERT VALUESで行毎の挿入、 UPSERT SELECTで同一あるいは違うテーブル間の大量データ転送、 DELETEで行の削除。
  • クライアント側のバッチにより限定のトランザクションをサポート。
  • 1テーブルのみ-ジョインは、まだできない、そしてセカデリインデックスは、開発中である。
  • 可能な限り ANSI SQL標準に従っている。

PhoenixのコードはBSD風のライセンス下でオープンソースされた。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT