データウェアハウスとOLTPを一緒にするのは是か非か
Greenplumに話をもどそう。
Greenplumでは、ノードのセグメントサーバーそれぞれで分散の処理をしながらロードが行えるデータロードの仕組みを使うことで、数倍ではなく数十倍以上のロード時間の短縮が可能となる。
「スピードが2桁以上変わると、できることが大きく変わってきます」
―と語るのは同社 データ・コンピューティング事業本部 テクノロジー & プロフェッショナルサービス部 テクニカル・コンサルタントの松下正之氏。
ローディングに数時間かかるならば、どうしても日次のバッチ処理で更新するしかない。つまり、1日前のデータしかDWHでは分析対象にできない。それが10倍ロードが速くなれば、1時間ごとにデータウェアハウスのデータを更新することも可能になる。
「これで、ほぼオンラインの情報をデータウェアハウスで持つことができます」(松下氏)
シェアードナッシングの足かせが外れるというわけだ。
Oracle Exadataとの違いは?
このように、大幅な性能向上でいままでとシステムに対する考え方が大きく変わる…という話は、実はOracleがExadataの提供を開始した際も言っていたことである。
Oracleの場合は、そもそもGreenplumとはアーキテクチャが異なる。彼らは、一貫してシェアードエブリシングと呼ばれる共有ディスク型のアーキテクチャをとっている。このアーキテクチャでは、そもそもストレージは共有しているので、データをノードごとに分散する処理は必要ない。直接、そして並列化してローディングする方法などで、データロードの高速化は比較的容易に行えるアーキテクチャでもある。
Oracleの場合は、課題となるのはローディングよりも全件検索といった検索処理の性能だ。シェアードエブリシングでは、ストレージのIO性能がDWHの性能にもっとも大きな影響を与えている。つまりCPUの処理に対し、ディスク性能が追いついていないのだ。それを解消するために、ストレージ側に検索エンジンを搭載し前処理して流通するデータ量を大幅に削減したのがExadataだ。さらに、そのデータを圧縮し、経路としては高速なインフィニバンドを用い、SSDなどのシリコンディスクも活用して大幅な性能向上を行っている。
このようにアプローチはまったく異なるが、2社は同様に「従来より2桁以上の性能向上」が見込まれることをアピールする。Oracleの場合は、さらにExadataをデータベース・マシンと位置づけ、DWHだけでなくOLTPの処理も高速化できるという。そのため、OLTPとDWHを1台に集約できるといい、そもそもOLTPのシステムから抽出してDWHにデータロードする概念すら無駄なものだと主張している。OLTPとDWHが完全に1つになれば、そのメリットはかなり大きいだろう。
「Oracle Exadataはデータウェアハウスの1つの解であり、たしかにいい方法だと思います。しかしながら、それを実現する方法としては、我々はExadataがROI的にすべての顧客ニーズに合うものではないと考えています」(松下氏)
いま発生したデータをすぐにでも分析対象にしたいという高度なニーズがあれば、顧客はOracle Exadataを選ぶことになるだろう。とはいえ、すべての顧客がそれを必要としているわけではないというわけだ。
コストに対する考え方は、ニーズと効果によって変化するものだ。Oracle Exadataでこれまでの常識を覆すことができるのなら、安い買い物だという顧客もいるだろう。
自分たちが何を必要としているかを冷静に考え、これまでの常識にとらわれずに製品選択をする目を持つこと―従来の常識を覆す性能を持った製品を選ぶときに欠かせないことではないだろうか。