HANAには集計テーブルも中間テーブルもインデックスもいらない
Q:いまや各社がインメモリデータベースを提供しています。他社製品に比べHANAがもっとも優れている点はどんなところでしょうか。
シューマン氏:他のインメモリデータベースは、既存データベースのチューニングです。ハードディスクの代わりに、インメモリを使い仮想化します。なので、既存データベースの一部をコピーしてインメモリに載せます。そのため既存データベースで利用していた集約テーブルやインデックスなども残ることに。また、トランザクション系と情報系を分けたり、構造化データと非構造化データを分けたりする必要もある。これでは、一部を速くできてもすべてが速くなるわけではありません。
SAP HANAは、Any Data、Any Sourceとなっています。あらゆるデータを扱える。そこには冗長性も集計もありません。それが他とHANAが違うところです。冗長性がないのは重要です。これでデータをリアルタイムに補足できます。集計も中間テーブルもなく、HANAの中には真のデータが1つしかないからです。
これまでのデータベースは、さまざまなスキームをあらかじめ用意し特定の目的に対しては回答ができます。ところがアドホックな要求は得意でない。HANAはそれが初めてできるデータベースです。企業では部署ごとにデータベースを持っていて、ビジネストランザクション処理やレポーティングを行います。これをスムースにやるために、データモデルやアプリケーションごとにたくさんの静的な集計テーブルを持つのが普通なのです。
HANAでは集計テーブルをすべて排除し、データはもっとも細かい粒度で1つだけ存在します。重複するデータはありません。集約が必要であれば、オンザフライでリアルタイムに作ります。データベースを構築した際に答えを用意しなくていいのです。これで人々の思考に合わせて処理できます。
既存のデータベースは、インメモリ機能を使っても集計や中間テーブルがなくなるわけではありません。なので、質問をしても(旧い集計データをもとにした)誤った解答が、以前より速く返ってくるだけです。お金をかけてそれをやっているのです。
Q:HANAは他のデータベースとはコンセプトが違うのは分かりました。では現状のHANAでさらに改良すべき点はありますか。
シューマン氏:さらに多くのデータソースをリアルタイムに取り込めるようにしたいと考えています。さまざまなデータソースをシンプルに取り込めるようにしたい。たとえば、Hadoopとのインテグレーション機能はありますが、それをさらにシンプルにしたい。
もう1つは、HANAの中でロジックを動かすランタイム機能です。すでに予測分析などの各種アナリティクス機能、地理情報処理などデータベース処理以外のものをHANAの中で動かせます。これらをさらに拡充したいと考えています。今後はマシン・ラーニングや保険や金融といった業種別機能などを、HANAに実装し高速化したい。つまり、さらなるプラットフォーム化を目指し、よりリッチな機能を搭載します。