これまでは、既存の基幹系システムをクラウドに移行する方法を見てきた。このパートでは、クラウドだから実現できた機能を持つ基幹系の事例を紹介する。福岡県を中心に店舗展開するスーパーマーケット、西鉄ストアがHadoopとAWSを使って構築した会計システムである。

 西鉄ストアが構築した会計システムは独自の特殊な機能を持つ。一般的なやり方より正確に利益を計算できる「個別原価法」という方法を用いて利益を算出する。具体的には、いくらで仕入れた商品が、いくらで売れたかを商品種ごとに管理するものだ。こう書くと簡単そうだが、1万5000品目の商品を扱う西鉄ストアで、この処理をするのは大変である。仕入れ値、売値、在庫数は毎日変動するので、全商品のこれらのデータを毎日洗い替えして計算することになるからだ。

写真1●西鉄ストアの濱田孝洋氏
写真1●西鉄ストアの濱田孝洋氏

 このように個別原価法は計算量が膨大になるため「どの小売業もやりたいと思っていたが、事実上無理だった。当社が全国で初めてのはず」(西鉄ストア 情報システム部 濱田孝洋氏、写真1)。ちなみに一般の小売業では、より簡易な方法で利益を類推している。

 西鉄ストアはこの先進的な基幹系システムを、クラウドを使うことで実現した。しかし、その道のりは平坦ではなかった(図1)。プロジェクトチームが直面する壁をどのように乗り越えていったかを見てみよう。

図1●西鉄ストアが基幹系システムをクラウド化する際に直面した三つの壁
Hadoopの利用、AWSへの移行、AWSのクセや特徴に合わせた開発、によって乗り越えた
[画像のクリックで拡大表示]

膨大なバッチ処理をHadoopで

 西鉄ストアの情報システム部が乗り越えた第1の壁は「バッチの処理量が膨大」であったことだ。この会計システムで必要になったバッチ処理は、1日当たり、最大1億件の売り上げ締め処理、原価計算で5億4000万件の明細処理、2700万件の仕入れデータの取り込み処理、債権管理で900万件の集計処理、債務管理で300万件のマッチング処理などである。

 この膨大なバッチ処理量を乗り越えるために、並列分散処理を実行するオープンソースソフト「Hadoop」を使うことにした。プロジェクトに参加したノーチラス・テクノロジーズの神林飛志氏(代表取締役社長)は「結果的にHadoopは有効だった。全データをアクセスするようなときに圧倒的な速さを示した」。完成したシステムはバッチ処理に合計8時間かけているが、「もしRDBMSを使って実装していたら原価計算部分(Hadoopで3時間)だけでも100時間はかかるはず」(神林氏)という。

 バッチ処理量だけでなく、バッチ処理プログラムも膨大であった。一般にHadoopのプログラム開発は難易度が高く生産性を上げるのは難しい。そこで神林氏らは独自の開発フレームワークを使うことで乗り切った。基幹系のバッチ処理によくある、データマッチングや分岐処理などを容易に記述できるようにしたのだ。このフレームワークはオープンソースソフト「Asakusa」として公開している。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。