基幹バッチが超高速化する? | HATのブログ

HATのブログ

IT関係のニュースを中心に記事を掲載します。日経コンピュータで重要だと感じた記事とコメントを2010年9月1日号から書いています。
このブログは個人的なものです。ここで述べていることは私の個人的な意見に基づくものであり、私の雇用者には一切の関係はありません。

昨日、電通が新しく提案した「消費者の行動モデル」をSIPSと呼ぶことを書きました。10年近く前にSIPS企業として有名だったウルシステムズが「基幹バッチ用Hadoopフレームワーク」をOSSとして提供するというニュースが流れていました。これも何かの縁ですのでこの事について書きます。

SIPS企業とは、「戦略、デザイン、テクノロジーのワンストップでの提供」というコンセプトで一つの会社の中にコンサルとデザイナーとSEを共存させるという企業形態でした。過去形にしたのは、死語になっているからです。ドットコム企業などという言葉もありました。何だか懐かしいです。
SIPS: Strategic Internet Professional Service
    戦略的なインターネットのプロサービス

有名な会社は、米国系のサイエント、日系ならキノトロープ、そしてウルシステムズなどでした。あれから10年経ち、それぞれの会社はそれぞれが強かった分野をより強くする方向で進化されています。ウルシステムズはSIerの方向で成長されています。そういう経緯の中で、このニュースが発表されました。

「ウルシステムズ、業界初、基幹バッチ用のHadoopフレームワーク「Asakusa」 を開発、オープンソース化して提供開始」
http://www.ulsystems.co.jp/press-release-20110209.html

Hadoopはこのブログでも何度も取り上げていますが、Googleが開発した超高速バッチ処理の仕掛けをオープンソース化したものです。昨年4月28日号の日経コンピュータの記事 の最後にこういう言葉があります。<ウルシステムズの神林取締役は、「月末の会計処理や、流通業における売り上げ分析。こういったバッチ処理をHadoopが置き換えていくのは間違いない。今年から当社でも、顧客に対してHadoopを使ったシステムを提案する」と語る>

これをフレームワークとしてオープンにしたという事でしょう。

そもそもバッチ処理が本当に必要なのかどうかという議論はあります。DOAで正しく設計出来ていれば、全てリアルタイムで処理が出来て当たり前だと主張されている方もおられます。実際彼は私もやったことがないほどの大量処理のシステムを作った事を知っていますから、どういう仕掛けで実現しているのか知りたいと思っていました。

とは言え現実的には、ほとんどの基幹システムでバッチ処理が存在し、それを高速化したいというニーズは多くあります。バッチ処理を高速化する手法には、いままで4種類ありました。
1.最高速度のCPUとメモリとDISKに変える
 →現状を分析して一番投資効果の高い部分を重点的に
2.すべてのデータをメモリ上で処理する事でDISKのI/Oを減らす
 →最大10倍速くなります(メモリとDISKのI/O速度の差)
  ただし、EMCなどすご~いDISKを使ってると既にキャッシュに乗ってるかも
3.入力データを一件ずつばらしてバラバラのサーバで処理してからまとめる
 →入力データの「順序」が結果に影響しないように設計を変える必要がある

 1<2<3の順で処理設計の変更が必要になります。そして最後は・・
4.設計を見直してチューニング(高速化)する

SQLを1か所変えるだけで10倍速くなったなどという事はよくあります。無駄に何度も全件読み込みを行っているならそれを回避すれば高速化出来ます。この、再設計するノウハウの一つとしてHadoop(というか正確にはMapReduce)があります。

ただし、HadoopはGoogleの検索やindex作成処理から派生した処理方式です。統計処理には向いていますが、集計や単純計算が主体の基幹バッチ処理にどうやって使うのでしょう。この記事だけではわかりませんが、ヒントはありました。
<・高い生産性を実現する開発環境
業務フロー設計からプログラムコードを自動生成するMapReduce(注2)コンパイラ、
モデルジェネレーター(自動生成ツール)、一連のテストツール群>

何らかの「業務フロー」の「モデル」を記述して、そこからプログラムコードを自動生成するという仕掛けのようです。記事 によってはもっと明確に「同社独自のDSL(ドメイン特化言語)を使って開発したプログラム」と書いてあります。
http://itpro.nikkeibp.co.jp/article/NEWS/20110209/357032/

ある方が、「DOAはDSLである(かも)」という事を言われています。ウルシステムズが、どういうDSLを発明されたのか興味があります。

バッチ処理のモデルであれば、DOAの世界でもデータ総研がSPFチャートでバッチ処理を描くという事をされていました。ただ、それはあくまでも「設計」のレベルであり実装につなげるという発想はありませんでした。

このウルシステムズのフレームワークは3月に公開だという事ですので、それ以降記事が出るでしょう。私も研究したいと思います。