導入事例Introduction example

Eマーケティング事業者様 導入事例

ビッグデータのリアルタイム分析システムの構築

  • クラウド
  • ビッグデータ
  • 分析基盤
  • スマートアプリケーション

概要

数万人規模の利用者のサイト閲覧ログを自動収集し広告主やマーケティング担当者に活用してもらうシステム

課題

  • 合計で数十億レコードとなるログデータを格納できビッグデータの解析を行うことができる環境が必要
  • 取り込み格納したビッグデー タを解析し、利用者の操作にリアルタイムに結果を返すことが必要

導入効果

  • インフラ調達時間の削減、ビッグデータを解析するサービスを短期間で構築することができた
  • インフラのイニシャルコスト、ランニングコストをオンプレミスと比べて大幅に削減することができた
  • 利用者に快適な操作性を提供することができた

システム概念図

特徴

  • ボトルネックとなるデータ量をEMR、NoSQLを駆使し、バッチ処理時間、検索時間を数分レベルに短縮
  • 分析レポートにはRGraph、Ajaxを使用、動的で訴求力のあるグラフをリアルタイムに生成
  • 独自クロス集計エンジンを開発、分析者がドラッグ&ドロップで自由にピボット集計できるUIを開発

技術要素

・AWS
・EMR
・RDS
・Splunk
・Hinemos

今後の課題

  • Splunkについて
    データロード、完全一致による検索は高速化できたが、ユーザーによる任意のワードでのLIKE検索ではあまりパフォーマンスを発揮できていない状況がある。本来ログの解析用のDBのため、LIKE検索、特に日本語マルチバイト文字に対する検索には難がある。英語であれば、単語で分割してインデックスを保持することができるが、日本語では同様の方法が取れない。
    CabochaやChaSenなどで形態素解析をしてKVSで保持することで本件に耐えうる要件となり得たが、工期や費用の制限により採用に至らず、今後の課題となる。
  • クロス集計のオリジナル開発について
    今回はクロス集計(Excelでのピボット分析機能)に特化したBIツールを安価で利用するご要望を受けた。既製品のBIではランニングコストを含めると高価であり、Mondrian等の既存のOSSのOLAP系ライブラリも検討したが、要件に耐えうるものではなく、エンジン部分にSQLiteを使用したオリジナルのクロス集計分析ツールを開発することとした。
    エンジン部分へのSQLite採用の理由は全データをメモリ内で集計するのは現実的ではなく、またRDSにて実現するのもコスト的な問題があった。コスト面を解決し、取り回しのよい高速DBを検討した結果採用に至った。
    コンパクトで、使い捨てのDBとしてユーザーセッション単位に用意して処理を回すのには適していた。一方で排他制御機能が甘く、多くの修正が必要となった。2016年6月現在我々は数百万件を超える規模のデータのピボット集計をどのような構成で実現するかのベストな解をいまだ探っている状況である。
  • RDSの長所、短所
    OSSのDBをベースとしながら、ユーザーのチョイス次第ではエンタープライズニーズに応えられる規模まで拡張可能であることを考慮し、Redshiftが登場する前の当時ではRDS一本での構築となった。
    反省点としてはコストの問題がある。
    RDSの持つ冗長性やパフォーマンスと引き換えに高い利用料を払うなら、EC2上に何らかのDBを立てたほうが安価なこともある。特にDR等の考慮が重要ではない場合は選択肢として検討の範囲となり得る。
  • AWSの長所、短所
    AWSのインフラ管理を大手Sierに任せきりにすると、元々が仮想空間のマシン群ゆえに、更にブラックボックス化し、休眠リソースの整理やコストの最適化が難しくなる。
    24時間365日の監視タスク等は委託することでも良策ではあるが、AWS上の各サーバーのメンテナンスはできるだけユーザー企業の管理下の情報システム部門若しくはその指示で動く部隊で行うのが理想的である。
  • クラウド
  • ビッグデータ
  • 分析基盤
  • スマートアプリケーション
  • リプレース