ちょっと話題の記事

「アジャイルデータサイエンス」の付録を寄稿しました

2014.04.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

4月25日に オライリー・ジャパンから発売予定の「アジャイルデータサイエンス――スケーラブルに構築するビッグデータアプリケーション」の付録A「Fluentdによるログの収集」について能登が、付録B「Elasticsearch + Kibanaによるログの可視化」について佐々木が書かせていただきました。
agile-data-science

オライリー・ジャパンの書籍サイトは以下になります。ご予約頂けますと幸いです(^^)
O'Reilly Japan - アジャイルデータサイエンス
また、Amazonでも予約が開始されています。
Amazon.co.jp: アジャイルデータサイエンス ―スケーラブルに構築するビッグデータアプリケーション: Russell Jurney, Sky株式会社 玉川 竜司: 本

アジャイルデータサイエンス本文について by 能登

原書について読みましたので、ちょっとだけ紹介します。ざっくり言うとデータを分析するためのシステムの作り方と考え方について書かれた本です。システムの作り方としてはデータが増えても処理できるようにスケーラブルなアーキテクチャにしましょうということで、S3にデータをすべて流し込んでおいてPigで必要に応じて加工しましょうという形になっています。また、考え方としてはアジャイルということでまずは最小限に動くものを作って、ちょっとずつ機能を追加していくという流れになっています。具体的にはEメールを題材にデータの収集から加工、データベースへの格納とWebアプリケーションによる可視化までの流れについてコード付きで解説しています。そして章が進む毎にWebアプリケーションに機能を追加するため、データの加工方法から再度説明していくという流れになっています。

読んでみた感想としては、とてもおもしろかったです。私自身、前職で広告配信システムのログ集計を担当していたので、非常に共感する部分も多い内容でした。なお、データサイエンスとありますが、統計や機械学習については本書では扱っていません。あくまでもデータを収集して可視化するためのアプリケーションを作成するための仕組みづくりがメインテーマです。一応、共起というか確率を使ってメールの本文と送信先から返信が来るかどうかを予測するみたいなものはありますが、Pigのソースを追えば何をしているかわかると思います。

付録A「Fluentdによるログの収集」について by 能登

本書ではEメールが題材でしたが、実際はログを元に分析するケースも多いかと考え、Fluentdによるログ収集の方法について書かせていただきました。具体的にはApacheのアクセスログをS3に転送するというものです。本書を読まれる方の中にはあまり技術に詳しくない方もいるかと思われたので、Fluentdがどんなものでセットアップするにはどうすればよいのかが分かるような入門的な内容としました。Fluentdは本家のドキュメントの内容が充実していますし、既存のブログも多くあります。それらにあたる前の前準備ぐらいを目的としています。とはいえ、私自身今回改めて調べたことも多くあったので、発売後に補足記事を書ければと思っています。

付録B「Elasticsearch + Kibanaによるログの可視化」について by 佐々木

本書ではメールの全文検索エンジンとしてElasticsearchを使用し、MongoDBとWebアプリケーションの組合せでグラフによる可視化を行っていました。しかし良いグラフを作るためにはデータの傾向を分析する必要がありますし、そのためにクエリやマイニングを何度も繰り返して試行錯誤するのは効率的ではありません。素早くそして見やすい形でデータにアクセスし迅速に傾向を把握することが、良いグラフに繋がります。

そこで本書の付録として、ElasticsearchとKibanaを組み合わせ、リアルタイムにかつ柔軟にカスタマイズが可能な可視化の仕組みを作る方法を書かせて頂きました。ElasticsearchとKibanaの組み合せは既に鉄板であり多くの方が利用されているかと思いますが、これから試されたい方を対象として、ApacheのアクセスログをFluentdを使ってElasticsearchに取り込み、更にnginx上のKibanaで表示させる方法について、セットアップから動作の確認まで一通り出来るように書かせて頂いております。

ビッグデータマイニングにおけるクエリやビューの設計前に、このような手軽で軽い仕組みを使って調査を行うという手法は今後より一般的になっていくと思います。最近ではGraphite+Grafanaなど新しいツールも出てきました。今後も様々な仕組みについて試して、そして本ブログでご報告したいと思います。