BT

InfoQ ホームページ ニュース Phoenix: Apache HBase上でSQLクエリを実行する

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

ブックマーク

原文(投稿日: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

コミュニティコメント

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

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

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。