本誌ではこれまで、カブドットコム証券のSNS解析サービスなどを例に出しながら、ビッグデータの活用例や対応技術を紹介してきた。Hadoopをベースとした分析システムや、大量データに対応したDWHを導入することで、これまでは難しかった分析を行えることがご理解いただけたと思う。
いずれにおいても重要なのは大量のデータを高速に処理する仕組み。通常のシステムであれば結果を得るまでに1カ月以上かかっていた分析を、数時間から数日で完了させることでビジネスを加速させていくことが可能だ。
しかし、一口にビッグデータと言っても、その利用シーンはさまざま。ときには目的とするデータの検出をリアルタイムに行いたいというケースもあるだろう。この場合、数時間後に分析結果を得るという流れでは、当然ながら間に合わない。
そこで日本IBMでは、ストリーミングデータをリアルタイムに処理するようなアーキテクチャも用意している。本誌はこちらの技術の概要を、日本IBM ソフトウェア事業 インフォメーション・マネジメント事業部 ワールドワイド ビッグデータ テクニカル・リードの土屋敦氏に聞いたので、簡単にご紹介しよう。
Hadoopでは対応が間に合わないシーンも
「Hadoopベースのシステムでは、分析モデルに対応したプログラムをあらかじめ実装しておき、データが貯まるのを待ってからそれを夜間バッチなどで実行することになる。したがって、結果が得られるまでには数分、数時間から数日かかることになる」
土屋氏はHadoopベースのシステムの課題をこのように分析し、さらに次のように続けた。
「例えば、ネットワーク上に流れる大量データを常に監視し、目的のデータを発見したらすぐにスマートフォンに通知するといったことができたら、ビジネスが大きく変わる可能性がある」
これはすなわち、ビッグデータをリアルタイムに処理するという試みだが、すでに活用をはじめている業種もあるという。例えば、以前の記事でも紹介したが、クレジットカード業界では、決済処理を実行する前にユーザーの利用パターンを照合し、問題のあるユーザーの利用を水際で食い止めるという試みが行われている。
また、航空管制システムのサイバーテロ検知や、火山噴火/竜巻発生時などの被害予測などでも、大量に送信されてくるデータを瞬時に分析するシステムが利用されている。
「面白い例としては、軍事施設などの重要施設への侵入者検知システムなどもある。地下に埋め込まれたファイバーケーブルが音声シグナルを拾い、そのデータ分析をして不正侵入を検知している。このシステムでは最大1600並列ストリーム処理が実行されている」(土屋氏)
リアルタイム解析、実現の仕組み
上記のような大量データのリアルタイム処理を実現しているのが「IBM InfoSphere Streams」(Streams)である。こちらは、ネットワーク上に流れるデータをストレージに貯めることなくその場で解析し、必要であればデータを加工して出力することができるプラットフォームになる。
「一般にビッグデータ関連の製品でリアルタイムと謳っているのは、インメモリデータストアを活用したものがほとんど。こちらはメモリ上で処理を実行していると言えども、データベースのようなストアに格納してから処理を実行することになるため、多少のタイムラグが発生する。それに対してStreamsでは、ネットワークから収集したデータを、ディスクへの書き込み処理を行わずにその場で解析して処理する。先に挙げたような、一瞬を争うようなシステムでは圧倒的に有効な手法だ」(土屋氏)
対応データはテキストだけでなく、VoIP、電子メール、音声、ビデオなど、多様な形式をサポートしている。スケールアウトを行う際も開発者の負担を軽減するために、半自動的に拡張が行われるという。
「ビッグデータの中心処理を担うHadoopベースのIBM InfoSphere BigInsightsの前にStreamsを設置し、データをフィルタリングするという使い方もできる。また、DWHのIBM Netezzaと連携させ、Netezzaの分析モデルを再利用することも可能。これらの3製品を組み合わせれば、超大規模なビッグデータに対しても十分に対応していける」(土屋氏)
* * *
本稿ではスペースの都合上、Streamsの本当にさわりの部分しか紹介できなかったが、6月19日(火)に開催される『ビッグデータ分析プラットフォーム・セミナー』では、同製品のアーキテクチャを詳しく解説していく予定だ。
また、ビッグデータにおけるリアルタイム処理の活用法についてもより具体的に示される予定なので、企業システムに関わる方々はぜひともご聴講いただきたい。