~ Greenplum Polymorphic Data Storage が提供する豊富な選択肢 ~
Vol4では、データベースに対するアクセスを高速化、最適化する様々な先進機能についてご紹介します。
■Greenplum Polymorphic Data Storage が提供する豊富な選択肢■
Vol3で紹介した機能以外にも、Greenplumには、データアクセスを高速化するいくつかの仕組みがあります。
その仕組の一つであるデータの格納方式について説明します。
Greenplumでは、ローストアと、カラムストアという2つのデータの格納方式を持っています。
ローストアというのはデータをロー方式、行単位で格納するという方式です。これは一般的なデータベース製品が使っている、非常に一般的なものです。
実は、この仕組みは、データウエアハウス処理でよくある集計処理には非常に効率が悪いのです。何故でしょうか? 例えば、このカラムのCのデータだけを抜き出したいとします。ローストア方式の場合、ここの値だけを読みたいのに、全てのカラムの全レコード読みながら、カラムCだけのデータを抜き出すことをします。結果的に、非常に効率の悪いアクセスパターンになってしまうのです。
これに対してGreenplumが持っているカラムストアは、データをカラム単位で格納していきます。
ですから、カラムCのデータだけ集計したい、例えばカラムCの「平均値を出したい」あるいは「合計値を出したい」という場合でも、他のカラムに対するアクセスは一切行なわず、Cカラムだけ一気に足し合わせてアクセスをし、集計ができますので、IO負荷が非常に少なくて済むわけです。このように、集計処理を非常に高速に実行できるというのがカラムストアのメリットです。
実は、このカラムストアというのは新しい技術ではありません。
古くはSybaseのデータウエアハウス・ソリューションである、SybaseIQが15年前からこの仕組みを提供しています。ですが、カラムストア・データーベースの課題というのは、逆にローストアを持っておらず、カラムストアしか無いというのが課題でした。
大半のデータベースは、例えばOracleやDB2などはローストアを採用しています。
ローストアから持って来たデータをカラムストアに入れる、データベースのマイグレーションすることは クエリの書き方をうまく調整しなければ、なかなかパフォーマンスが出ません。
ローストアというのは、1件単位でデータを格納していきますので、インサート処理は非常に高速です。逆にカラムストアは、集計処理は非常に速いのですが、インサート処理は苦手で遅いのです。インサート処理をカラムストア方式に対してそのまま適応すると、非常に効率の悪いデータベータ処理になります。ここがカラムストアの課題でした。
続きはこちらから (»リンク)
EMCジャパンのTech Communityサイト (»リンク) では、ストレージや情報管理に関する最新技術を多数紹介しています。
企業ブログ
-
【EMC Tech Communityサイト】事例紹介 Vol.62 | グローバル・カンパニーにおけるパフォーマンスやストレージ使用率の向上とコスト削減を両立させる取り組み
アメリカのオハイオ州Olmstedに本社を置き、アメリカ、カナダ、メキシコ、中央アメ...
2012-10-31

