前回は「Amazon Web Services(AWS)」などのパブリッククラウドを活用することで、比較的容易にビッグデータ基盤を構築できる点について解説した。今回と続く第4回は[仕組み編]と位置付け、ビッグデータ基盤にリアルタイム性が備わるとさらに価値が高まることを解説する。さらに、リアルタイム性を備えるビッグデータ基盤の構築に役立つAWSのサービス「Amazon Kinesis」について紹介しよう。

 ビッグデータ基盤にリアルタイム性が備わる。これがどんなことか分かりにくいかもしれない。そこでまず、現状の大半のビッグデータ基盤、すなわちリアルタイム性を備えないビッグデータ基盤の課題を解説する。

 ビッグデータ基盤を構築し、活用するユーザー企業の多くは、全国各地の拠点に散在する各種サーバーやセンサーなどのログデータを、バッチ処理で集約し、分析しやすいように抽出・加工する。バッチ処理の実施頻度は、高いユーザー企業でもたいていは日次まで。それより短いサイクルを採用するユーザー企業は少ない。

 このように、日次などで一括して処理する仕組みは、必然的に三つの課題を抱える(図1)。一つ目は、「今」のことは分からない、という課題だ。

図1●バッチ処理が抱える課題
図1●バッチ処理が抱える課題
[画像のクリックで拡大表示]

 小売業やレストランチェーンを思い浮かべていただきたい。販促キャンペーンなどの施策を打ったとき、個々の店舗のPOS端末には施策の効果を確認できるデータが集まる。しかし本部側でその結果を確認できるのは、早くても翌日だ。キャンペーンに対する顧客の反応をすぐに確認し、悪いようであれば当日のうちに対策を検討するといった機動的な対応が取れないわけだ。

 二つ目の課題は、日中は利用できないである。大量のデータを集約し、必要なデータの抽出や加工を行うバッチ処理の負荷は重く、実行するサーバーに多大なリソースを必要とする。日中にバッチ処理を実行すると、同じサーバーを利用する他の業務に支障を来しかねないわけだ。

 障害時の負荷が大きい。これが三つ目の課題である。これは、システム運用を担当するITエンジニアにとっての負荷を意味する。前述の通り、バッチ処理は多くのリソースを使うため、業務時間中には実行しにくい。しかもバッチ処理で出力するデータは業績レポートなど重要なものが多い。処理が失敗した場合は、翌日の利用部門の業務に支障を来しかねない。このため夜間バッチでトラブルが発生しようものなら、ITエンジニアが深夜に緊急対応せざるを得ない。

 実は、これらバッチ処理が抱える三つの課題を一挙に解決し得るサービスがある。Amazon Kinesisだ。Kinesisは、次々と発生するデータ(ストリーミングデータ)を、リアルタイムに収集し、処理するシステムを構築するためのサービスである。詳しい仕組みは第4回で解説するが、各種サーバーやセンサー、POS端末、スマートフォンのアプリなどが次々と生成するログデータを、リアルタイムに近い状態で収集し、24時間貯蔵する機能を備える。