PureData System for Analyticsは定評あるNetezzaテクノロジーを踏襲
PureData for Analyticsは、データウェアハウス・アプライアンスとして実績の高いNetezzaがベースだ。こちらは、データウェアハウスなどの大量データ分析に向く、シェアードナッシング型アーキテクチャをとっている。とはいえfor Analyticsは、単純なシェアードナッシング型ではない。ある意味、シェアードナッシングとシェアードディスクの良いところを組み合わせた構造となっている。
各ディスクには、直結する形でサーバーが配置される。これはMPP(超並列処理)層と呼ばれ、シェアードナッシングの構造だ。for Analyticsでは、この上にMPP層を束ねるSMP層が配置される。MPP層のCPUとメモリ、FPGA、そしてディスクという組み合わせを1つのインテリジェントなディスクと捉えれば、SMP層はディスクを共有する構造となる。このシェアードディスクとシェアードナッシングを組み合わせることで、高速な処理と管理の容易さを両立している。
さらにfor Analyticsの高速処理で肝となるのが、各ノードに配置されているFPGAだ。FPGAはField Programmable Gate Arrayの略。平たく言えば、プログラムの書き換えが可能な、高速なLSI(半導体集積回路)だ。CPUはプログラムを読み込んで汎用的な処理を行う が、FPGAでは特定の処理を行う。For Analyticsでいう特定の処理とはデータベース処理である。FPGAではディスクからのデータ読み取り速度で、ストリーミング-読出しデータをディスクやメモリーに滞留させることなく-、データベース処理できるのだ。
FPGAがストリーミングで行う処理は、圧縮データの解凍、データの絞り込み、カラムの絞り込み、関数、SQLロジック、JOINなどのデータベース処理だ。そのため、ディスクからメモリへとデータが渡されるまでのほんの短い間に、これらの処理が済んでしまう。CPUは渡された結果だけを用い、残りのデータベース処理をすればいい。これに対し汎用的なデータベースでは、ディスクからメモリに必要データをすべて読み込み、その上で圧縮の解凍、データやカラムの絞り込みなどの処理をCPUで行わなければならない。このFPGAによる事前のストリーミング処理による性能差は、かなり大きなものとなる。
さらにfor Analyticsでは、検索処理だけでなく分析ロジックも取り込んでいる。通常の分析環境では、データウェアハウスとは別に分析用サーバーを用意し、その上で高度な統計処理などを行う。そうなれば、分析用のサーバーに必要なデータを抽出し渡す必要がある。これでは、ビッグデータそのものを分析対象にはできず、集計データやサンプル抽出したデータしか使えない。つまりは、真のビッグデータ分析とはならないのだ。
for Analyticsでは、最近注目されているR言語分析、IBM SPSSのデータマイニングや予測分析、空間・地図分析などの分析ロジックをあらかじめ内包している。なので、高速なアプライアンスサーバーの中で、ビッグデータに対しこれらの分析を行える。分析ロジックは、あらかじめ用意したものだけでなくユーザーなどが独自開発したものも取り込める。
FPGAによるストリーミング処理や分析ロジックそのものを取り込んでいることにより、チューニングやインデックス作成などの面倒な作業は必要ない。このように、大量データの分析に特化しているのが、PureData System for Analyticsなのだ。