効率的なPDCAのカギはストリーミングデータの可視化!

効率的なPDCAのカギは
ストリーミングデータの可視化!

ENGINEERING

Big data , Network , Web application

データは活用してこそ意味があるもの。ただ、大量のデータを一つひとつ分析するには手間がかかりすぎます。そこで知っておきたいのがデータの可視化。効率的で直感的なデータ活用の方法を教えます!

「ストリーミングデータ」をざっくり一言で言うと?

継続的に発生する大量のデータを「ストリーミングデータ」と呼びます。
例えば、ECの購買データ、物流システムの取引データ、SNSの投稿データ、ウェブアプリケーションの操作ログなどが該当します。
こういったデータを効率的・直感的に可視化する手法を「データビジュアライゼーション」と呼びます。
しかしながら、このようなデータは毎分毎秒増加するため、分析元のデータ更新が煩雑であり、しかもデータ量が非常に多くなるためExcelなどを用いてデータを分析したりグラフ化を行なったりするには限界があります
では、そういったストリーミングデータの収集およびデータビジュアライゼーションはどのように行うのが良いのでしょうか?

データを見える化!データビジュアライゼーションの流れ

ストリーミングデータを可視化する手順は、一般的に下記のような流れになります。

  • 1.データ収集
  • 2.エンリッチメント
  • 3.蓄積
  • 4.可視化(ビジュアライゼーション)

1. データ収集

データ形式は、その取得元に応じてサーバーのアクセスログファイルやセンサー、APIなど様々な形式が考えられます。
また、分析・可視化を行う際にはこのデータソースは一つだけではなく、いくつものデータソースから同時に大量のデータを集め、相関関係などを分析するケースが多くあります。これらのデータを集約して分析基盤に流し込むには、「fluentd」や「Logstash」「Kafka」などのログ収集ツールと呼ばれるソフトウェアが必要になります。

2. エンリッチメント

データソースから与えられたデータに付加的な属性を付与することをエンリッチメントといいます。例えば、SNSの投稿に機械学習機械学習サンプルデータを解析してそのデータからパターンやルールを導き出し、これを新たなデータに当てはめることで結果を予測する手法のこと。自動的な学習能力の獲得を目的として始められた人工知能の研究分野のひとつ。によって推定された年齢や性別などの属性を付与することがこれにあたります。

3. 蓄積

収集したデータを蓄積します。蓄積するデータを検索して使うのか、集計・分析して使うのかなど、目的に応じてアーキテクチャアーキテクチャアプリケーションの構造のこと。大規模なアプリケーションを開発する際にはそれを構成するパーツを細かく分解し、適切に組み合わせることが必要となるが、それを表す言葉がアーキテクチャである。アーキテクチャが適切に設計されたアプリケーションはメンテナンスコスト、機能追加コストが低いなどの優位性を持つ。が選ばれます。検索目的であれば「Elasticsearch」などがあり、集計・分析が目的であれば「Hadoop」などのアーキテクチャアーキテクチャアプリケーションの構造のこと。大規模なアプリケーションを開発する際にはそれを構成するパーツを細かく分解し、適切に組み合わせることが必要となるが、それを表す言葉がアーキテクチャである。アーキテクチャが適切に設計されたアプリケーションはメンテナンスコスト、機能追加コストが低いなどの優位性を持つ。があります。場合によってはこれらを組み合わせて使用します。

4. 可視化

蓄積したデータをグラフやチャート、ヒートマップなどとして可視化します。ある程度の集計もこの役割の中で行われることがあります。ストレージに合わせて選ばれることが多く、例えば「Elasticsearch」であれば「Kibana」などのソフトウェアがよく使われます。
(処理の流れの図)

データを見える化!データビジュアライゼーションの流れ

可視化されたストリーミングデータはどう使うの?

可視化されたストリーミングデータの使用例がこちらです。

1.Webサービスのアクセスログの可視化

アクセスログの可視化は上記で紹介したソフトウェアを組み合わせることにより比較的簡単に実現できます
これによりユーザー属性の分布やパフォーマンスの推移など、サービスの改善点がわかりマーケティングに活かす情報を得ることができます
この例では、「fluentd」を用いてWebサーバー上のログファイルからデータを収集し、「Elasticsearch」に蓄積し「Kibana」で可視化するという構成を想定しています。また、「fluentd」のフィルタで「IPを位置情報に変換するプラグイン」を用いることにより、アクセス元の位置情報をエンリッチメントすることができます。
このようにサーバーのアクセスログなど、そのままでは把握しにくい、活かしにくいデータに関しても可視化することで最終的に図のような画面で閲覧することができ、効果的な運用・データ活用が可能になります。

Webサービスのアクセスログの可視化

2.SNS投稿の可視化

次にSNSの投稿を可視化する例を見ていきます。
SNSの投稿データは顧客のインサイトを探るのに役立つ情報が多く含まれています。Twitter社はストリーミング形式のAPIを提供しており、開発者はリアルタイムに投稿データを取得することが出来ます。無料で利用できるのはTwitterの全投稿の1%に過ぎませんが、これだけでも一日数百万件を超える投稿を取得することができます(2017年5月現在)。
これをWebサービスの例と同様に可視化すると、下図のような画面が得られます。
「Elasticsearch」はストレージとしての側面もありますが、同時に全文検索エンジンでもあります。キーワードに関連する投稿のみを高速に取得することができるため、自社ブランドや商品名に紐づく投稿のみを絞り込んで集計・可視化することでリアルタイムにユーザーの興味を多く引いている商品、キャンペーンなどの把握が可能となります。

SNS投稿の可視化

3.Talkscope

より高度な属性をSNSの投稿データに付与することもできます。オロの提供する「訪日外国人xSNS分析ツール Talkscope」では、機械学習機械学習サンプルデータを解析してそのデータからパターンやルールを導き出し、これを新たなデータに当てはめることで結果を予測する手法のこと。自動的な学習能力の獲得を目的として始められた人工知能の研究分野のひとつ。の技術を用いてTwitterの投稿データにユーザーの居住国や性別といった属性を付与しています。
また可視化部分は独自のインターフェースをWebアプリケーションとして実装しており、高度な検索もシンプルな操作で行うことができるように工夫しています。
Talkscopeも内部では「Elasticsearch」を活用しており、OSSOSSオープンソースソフトウェア(Open Source Software)の略。ソフトウェアのソースコードが無償で公開され、一定のライセンスに基づき改良や再頒布の許可が定められているもののことを指す。様々な分野で利用されているオペレーティングシステムである「Linux」もOSSとして提供されている。(オープンソースソフトウェア)を活用しつつOSSOSSオープンソースソフトウェア(Open Source Software)の略。ソフトウェアのソースコードが無償で公開され、一定のライセンスに基づき改良や再頒布の許可が定められているもののことを指す。様々な分野で利用されているオペレーティングシステムである「Linux」もOSSとして提供されている。では実現できない独自に作り込みたい箇所のみを費用をかけ開発するなども可能です。

ここまで見てきたように、ストリーミングデータの可視化は非常にシンプルな構成で始めることができます。
データを可視化することによって、思いかげない傾向や特徴の発見、効果測定や施策の成功傾向・失敗傾向などを見つけやすくなり、より効率的なPDCAサイクルを回すことが出来るようになります。
データの活用に関してお悩みであれば、その第一歩としてOSSOSSオープンソースソフトウェア(Open Source Software)の略。ソフトウェアのソースコードが無償で公開され、一定のライセンスに基づき改良や再頒布の許可が定められているもののことを指す。様々な分野で利用されているオペレーティングシステムである「Linux」もOSSとして提供されている。で容易に始められるデータの可視化を検討してみてはいかがでしょうか。

この記事を書いた社員

Yosuke Hizen

Back-End Engineer

アプリケーションの設計・開発・運用を担当するバックエンドエンジニア。自社サービス「Talkscope」の開発責任者。趣味は楽器演奏とトレイルラン。