データ収集の基礎的なアプローチ

*本稿はデータ分析システムの学習会及びその他運用SE等への説明として、アーキテクチャの概要をまとめたものです。DONNADEXIGNでのプロジェクトで携わった様々なアーキテクチャ、システムのポイント解説です。

ブラウザからのデータ収集をバッチデータ収集とストリームデータ収集を複合運用していく際の基本的な構造

① ブラウザ→イベントキュー⇄ストリームデータ収集→データレイク

② ブラウザ→サーバー→データベース⇄バッチ収集→データレイク

バッチデータでのシステムでは、事業システムにおけるNFSはオンプレミスにおけるサーバー間のファイル共有を指し、オブジェクトストレージはHTTPSプロトコルにて運用します。ストリームデータではイベントキューを順次ストリームデータ収集するため、処理の分散を行っていきます。処理の分散はまず仮運用を前提としてボトルネック解析を行いますが、ディスクボトルネック→CPUボトルネック→ネットワークボトルネックと計算処理の順に発生を見ていきます。特に初段階でのディスクボトルネック解析がメインになることが多いでしょう。ディスクキューの読み込みR側と書き込みW側を比べて行うQ:R/W法の実施を考えます。ただ従来からのon-premiseシステムではインフラストラクチャ・レベルでCPUを増強したり、メモリを増やしたりしてスケールアップするなどの対策を取るだけでなく、実際にR/Wのデータ量を測定して計算する方法も考えられ、こちらの方がパフォーマンスが高いことがあります。ディスクボトルネックについて分散ストレージのアーキテクチャはHadoopでの構築を基本としており、DataノードとNameノードで構成しているHDFSクライアントサービスを提供しております。HDFSクライアントを中心に、アプリケーションからの読み込み要求に応じてDataノードへ要求を伝えアプリケーションにフィードバックします。その際、どのDataノードかをNameノードに問い合わせて、データを取得します。(なお、この点について結果整合性の検証が必要となってきますが、別の記事に譲ります。)またHadoopでの構築までは必要ない場合では、分散処理をクラウドベース前提で構築して、ファイル処理とデータレイク処理で簡単に構築することもできます。ただし、Hadoopでできるワーカー監視処理などは自動対応ではないので、やはりスレーブサーバが複数の場合はHadoopでの構築、もしくはDataノードの採用となるでしょう。Hadoop運用の一般的な理解で言えば、WEBショッピングなどでのレコメンド等の最適化、オンラインゲームなどでのユーザ行動分析、金融商品の現在価格計算やリスク計算、その他並列処理の全般です。

Stay In Touch

Be the first to know about new arrivals and promotions