本連載では、情報システムの次代を担うITの7大トレンドを順次紹介していく。今回は、分散処理の徹底によって超高速化を狙う最新の「バッチ処理」技術を見ていこう。

【分散バッチ処理】 Hadoop型の分散処理で、バッチを超高速化

 銀行の勘定系システムなどに採用され、古くからよく知られるバッチ処理は、今や、情報システムの最先端分野だ。多くのコンピュータメーカーが提供していた独自仕様のメインフレームから現在主流のパソコンサーバーに至るまで綿々と続くバッチ処理をオープンソース・ソフトウエアに委ね、しかも分散処理を徹底することが大きなトレンドになりつつある。

 西鉄ストアは、オープンソースの分散バッチ処理ソフト「Hadoop(ハドゥープ)」を使った基幹業務システムを2011年9月末に稼働させる。店舗から集まるPOS(販売時点情報管理)データの集計・分析から会計までを担うシステムで、「4~5時間を要していたバッチ処理を、20~30分に短縮できる」(構築を受注したウルシステムズの神林飛志取締役*)。システム刷新後は夜を徹したバッチ処理が、閉店後の短時間で終わるはずだ。

■基幹向けにデータ保全を強化

 Hadoopがバッチを高速処理できる秘けつは、「MapReduce(マップリデュース)」と呼ぶ分散処理の手法にある。大量のデータを多数のサーバーに分けて集計・加工する処理が「Map」、処理結果を一つの表にまとめて出力する処理が「Reduce」だ(図1)。

図1 Hadoop(ハドゥープ)による分散処理システムの概要
図1 Hadoop(ハドゥープ)による分散処理システムの概要
図は、POSデータの集計に活用した例。「キー(Key)」と「バリュー(Value=値)」の組み合わせが羅列する「キー・バリュー型」で、集計結果を出力する。なおキー・バリュー型は、グーグルの「Bigtable」と呼ぶデータベースなどが採用する形式で、大量のデータを高速で検索するのに向く。
[画像のクリックで拡大表示]

 依存関係が薄いデータならば、各サーバーが非同期で分散処理を進められる。切り分けた個々のデータ群の処理だけにCPU性能をフルに発揮できるこの仕組みで、高速化を図る。

 Hadoopには「DB(データベース)に比べて信頼性が低く、開発作業に高いスキルが必要」という指摘もあるが、こうした懸念を払しょくするITベンダーの取り組みが始まっている。

 例えばNTTデータは業務データを保全するため、Hadoop上でMapReduceを管理する重要なサーバーを冗長化したり、併用するDBのデータ復元機能を活用したりするシステム構築手法を提案する(表1)。

表1 バッチ向けの分散処理製品や関連サービスの例
表1 バッチ向けの分散処理製品や関連サービスの例
[画像のクリックで拡大表示]
*2011年7月当時。現在はノーチラス・テクノロジーズ所属。