BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

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風のライセンス下でオープンソースされた。

 

この記事に星をつける

おすすめ度
スタイル

BT