超高速リアルタイムDWH(高速機関)


「高速機関」の実演を見ました。最近、注目されているテクノロジーですが、見るのは3回目です。過去の2回は、ただ「早い、凄い」という説明と実演だけなので得心がいかなかったのです。単に速さを見せるだけのデモを鵜呑みにするほど、当方も素人ではありません。そこで先輩が経営しているベンチャー・インキュベーターの会社にお願いして、ジックリと見て来たのです。このテクノロジーは、「ファイル処理の実行速度を従来の数十倍から数百倍に高速化する技術」とされています。

http://www.kousokuya.co.jp/

実際に大変な処理速度です。PCサーバーで、1GBを超えるファイルを2、3分で処理します。同社のベンチマークによれば、金融機関で1時間48分を要する月次バッチを49秒で処理したそうです。別のベンチマーキングでは、12時間を要しているOracleDBベースの買掛金消し込み作業が40分(うち36分はOracleからのデータ取り込みと戻し時間)と言いますから、バッチ処理に悩んでいる大手金融機関には、ヨダレの出るような処理速度です。

環境は現在Windowsで、Linuxへの対応が予定されていますが、Unixは計画にないとのことです。アプリはプロシージャCALLとSQLコマンドで処理します。超高速なので、ファイル設計に従来のような物理設計上の配慮は不要です。論理モデルをそのままファイル化し、処理の都度、必要データを取り込めば良いのです。昔から、エンジニアの願望であった大福帳処理が実現できます。ということは、DB物理設計やチューニング作業が不要となります。中間ファイルは全く要らないことになります。結果として、開発効率は従来型RDBに比較して5分の1程度になるそうです。(仮に半分でも大変な効果ですが。)

これだけの高速処理を実現するために数々の知恵(発明)が組み込まれています。幾つかご紹介すると

◇    キャッシュをワーキングエリアとしている。メモリーはデータ、HDDはアーカイブという位置付けである。つまりHDDの速度からキャッシュの速度に変わるのである。

◇    使用頻度の高いデータをキャッシュに置くことで、メモリーとのロール・イン/アウトを最少化している。

◇    物理的インデックスを止めて、計算式によるインデッキシングにすることで、インデックス処理負荷を大幅に軽減している。

◇    データを大幅にコンパクションするために、完全正規化されたデータ一つ一つをポインターで指定するようにしている。

◇    データ・アクセスはランダムではなく、全てシークェンシャルとして、HDDの性能を最大限発揮させる。

◇    HDDからのローディングを高速化するため、複数台HDDとDMAの組合せを工夫している。

などです。既存の標準製品を使いながら、処理を遅延させる要素を徹底的に除去しています。開発者の高度な技術力もさることながら、柔軟な思考力の賜物でしょう。既成大手ベンダーでは、出来ないことです。出来ても売上げを減らすことになるので、組織的に制止されるでしょう。

この技術は商品ではありません。開発におけるコアソリューションという位置付けです。他のソリューションと組合せながら、適したアプリケーションをビジネス・バリューに基づいてSIerが開発して下さい・・というビジネスモデルです。大手ユーザーはすぐに、ベンチャー製品は安定性・継続性に不安がある・・と言います。その割に、自社システムに属人的ツールやロジックを組み込んで平気でいます。汎用的な高速化ツールと考えれば、開発ベンダーの事業継続性に神経質になる必要はないでしょう。

金融機関での使い方を考えれば、まず思い浮かぶのがバッチの効率化です。自振データの前処理などにも強力なツールになるでしょう。1日のログを振り回せば、日計処理も高速化できます。全日分のログから決算処理することも容易でしょう。既存の勘定系は再構築のタイミングにありませんので、当面は、その弱点を補完する使い方が対象分野となります。

情報系でも様々な使い方が考えられます。勘定系や周辺システム、外部からのデータを大福帳化できればベストです。しかし、その為には、データの正規化が必要となります。その費用・労力・リスクの方が、高速機関を導入するよりも大きくなる可能性を考慮する必要があります。

また、現行IT資源との調和を図るためにも、全ITの整理・ブループリント作成が必要でしょう。データモデラー、アーキテクト、BPRエキスパートの役割が重要となります。