Vol5では、Greenplumの利用が適している分野と、ソフトウエアやアプライアンス型など様々な要件に応えられる提供形態についてご紹介します。
Greenplumの適用範囲
今回は、Greenplumがどのような分野に適用できるかをお話しします。
Greenplumはデータウエアハウス用の製品ですので、当然データウエアハウスに適用できますが、それ以外にもデータベースの最適化という分野で多く利用されてます。最適化の具体例としては、バッチ処理への適用です。
既存のシステムにおいて、データ量の増加にともないバッチ処理の長時間化がシステムの課題となっているケースが多く見受けられます。対策として、既存のデータベース・システムに対してCPUやメモリーを追加しても性能が伸びない。また、チューニングをいくら実施しても性能が伸びない。このような状況はよくあるのではないでしょうか。
これはシェアードエブリシング・アーキテクチャにおいて多く見受けられる課題です。バッチ処理の流れは、データのローディング、スキャン、テーブルの結合、集計、最後にアンロードして返していく、というものです。シェアードエブリシング・アーキテクチャの場合、これら全ての処理が1台のサーバの中で処理されるため、全フェーズにおいてボトルネックが発生するというのが課題でした。

次にシェアードナッシング・アーキテクチャの場合を見てみましょう。
他社のシェアードナッシング・アーキテクチャが採用している仕組みの場合、スキャン、結合、集約の各処理はパラレル化出来ていますが、データのロード、アンロードの部分はマスタサーバがボトルネックとなります。

これに対してGreenplumは、ロードもアンロードもパラレル化できますので、全フェーズにおいてパラレル処理が可能です。加えて、セグメントサーバの追加により、パラレル度を容易に上げることができます。他製品と比べ、より高速な分散処理により高速にバッチ処理を実行することが可能なのです。
このすべてのフェーズにおけるパラレル化は、Hadoopの環境にも有効です。Hadoopから、パラレルにデータを抜き出し、そのままスキャン、結合、集約、アンロードまで、すべてパラレル処理をして、そのままHadoopにシームレスにデータを戻す。このようなことが可能です。