HP Verticaを歴史からひもとく/データプラットフォームを中心に据えたSAPDatabase Watch(2015年2月号)(2/3 ページ)

» 2015年02月27日 20時01分 公開
[加山恵美@IT]

Vertica特有の「あらかじめProjection」機能

 Verticaは列指向リレーショナルデータベースであることや、拡張性を持たせるために超並列処理(MPP)アーキテクチャを採用している他に、興味深い特徴を持っています。それは、2005年C-storeを世に出したころから設計思想の根幹に掲げているもので、読み取りに最適な配置にするために、あらかじめ必要な列のみを「射影(Projection)」する仕組みです。この仕組みを端的に表現するとすれば、「あらかじめProjection」――正式な機能名ではないですよ。

 どういうものかというと、自動的にデータテーブルをチューニングし、あらかじめマテリアライズドビュー*を作成するもの、とイメージすると分かりやすいでしょう。一般的なリレーショナルデータベースでは、クエリを受け取ると、まず索引(インデックス)をたどり、そこからデータを取り出します。Verticaの場合は、必要な列のみ抽出して、あらかじめ並び替えや圧縮を行っておくことで、データの取り出しを高速にしています。

 このような「あらかじめProjection」方式を採用した場合は、データベースエンジンがデータを格納する際にデータを最適に配置するため、処理は多くなりますが、その代わりデータを読み出す処理、読み込むデータ量を大幅に削減できます。検索高速化の恩恵を重視するなら悪くない選択肢となるでしょう。

「あらかじめProjection」(出典:日本HP 提供資料)

* マテリアライズドビュー あらかじめよく問い合わせがあるデータをマスター表とは別にキャッシュとして保有することで、クエリ応答速度を速めるしくみを指します。Oracle DatabaseなどのRDBMSで実装されています。関連記事参照。



 データの最適化(=物理スキーマの自動設計)を行うツールには「Database Designer」があります。GUI版「Management Console」、CUI版「Administration Tools」も用意されています。

 なお、Verticaの最新版は2014年8月に発表した7.1です。諸橋氏によると7.0からはJSON型にも対応しているとのことです。

 こうした特徴を生かしたVerticaの適用例もいくつか挙げておきましょう。

 まず一つ目、データウエアハウスにおけるデータのプレゼンテーションエリアに用いるパターンです。二つ目はIoT機器やサーバーなどから大量に発生するログデータをHadoopなどからVerticaに蓄積して分析に役立てるパターンです。いずれも大量のデータを集約し、分析の手前に配置して使います。

 諸橋氏によるとVerticaはHP自身の他、「Twitter」や「Facebook」内部での分析処理に用いられているそうです。筆者が他で聞いたところによると、米国のソーシャルゲーム開発・提供企業である「Zynga」でもリアルタイムマーケティング分析で用いられているそうです。Zyngaが提供するゲームのプレーヤーは1日にのべ約6000万人、1日に発生するデータはおよそ10TBもあるそうです。これらのデータからユーザーの行動履歴を分析し影響力のあるユーザーを見いだしたり、ゲーム体験をパーソナライズするなどに役立てているのだとか。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。