しかし最近、ハードウェアやRDBMSの機能が進歩し、リアルタイム性の実現に向けてさまざまな取り組みを耳にするようになりました。弊社の製品をご使用いただいているお客様でも、レプリケーションや更新トリガによるETL方式を検証中であるという話題を聞きますし、他社でもリアルタイム性を実現するソリューションが出てきています。
したがって、私も従来の考え方を改め、これらの動向に注目しているところです。また、ETLをバッチ処理として実行する方式でリアルタイム性を追求する場合、バッチ起動間隔を可能な限り短縮してゆくことになりますが、そのような状況(更新が頻繁に行われる環境)であってもハードウェア・リソースの競合を極力回避するようなシステム構成が弊社製品でも可能になってきましたので、こちらの方も早急に評価したいと考えています。
OLAPとキューブ
「BI(Business Intelligence)をやるには、マイニングツールが必要なのか?」と質問されることがあります。
ご存知のとおりデータマイニングは、クラスタ分析、決定木、関連規則、回帰分析、ニューラルネットワークなどの統計解析手法を使用して分類/関連性発見/将来予測を行うものですが、これらの分析はSQLで記述することはできません。たとえばRDBに売上明細データが蓄積されているから将来の売上を予測してみようとしても、RDBMSに対してSQLで回帰分析を指示することはできないのです。したがって、冒頭の質問に私は「データマイニングがやりたいならば適切なツールが必要です」と答えています。
では、「OLAPをやるには、キューブが必要なのか?」という質問には、何と答えるべきでしょうか。マイニングツールの場合と同様に、OLAPという分析作業がSQLで記述できず特殊なツールを要求し、そのツールがキューブというデータのみ解釈するとしたら答えは明白だと思いますが、果たしてそうなのでしょうか?
OLAPによるデータ分析とは
「OLAP」というのは、ドリリング(ドリルダウン/ドリルアップ)やスライス&ダイスという手法を使用したデータ分析のことです。そして通常OLAPは、分析対象(ファクト)と分析視点(次元)から構成されるディメンジョナルモデルのデータベースと、ドリルダウンなどの操作機能を持つOLAPツールの組み合わせで行われます。
各分析手法を簡単に説明すると、ドリルダウンというのは次元(またはその階層)の追加、ドリルアップはその反対、スライシングは次元内属性値の切り替え、ダイシングは次元の入れ替えです。たとえば売上金額というファクトに対して、期間(年-月-日)、地域(地方-県-市)、商品(大-中-小分類)という次元(および階層)があるとき、期間別の集計金額に対して地域という次元を追加して期間・地域別の集計金額に展開したり、あるいは年別の集計金額に対して次元内の階層である月を追加して年月別の集計金額に展開することをドリルダウンといいます。また、地域・商品別の集計金額を期間の属性値(2000年、2001年、2002年、…)を切り替えながら見ることをスライシングといい、地域と商品の順番を逆にして商品・地域別に展開することをダイシングといいます。