• はてなブックマークに追加
  • Yahoo!ブックマークに登録
ミクシィ鈴木理恵子の“アプリ開発ビギナー向け講座” Vol.
10
Treasure Dataなら初心者も
大量データ解析ができる!?
今回はTreasure Dataというクラウドサービスを利用し、アプリ開発初心者でも大量のデータを高速かつ簡単にデータ解析を行うことができるノウハウをご紹介します。
(取材・文/鈴木理恵子 総研スタッフ/宮みゆき 撮影/佐藤聡)作成日:13.03.28
アプリ開発初心者でもラクラクデータ解析ができる「Treasure Data」とは

 こんにちは、ミクシィの鈴木理恵子です。前回は、潜在的なユーザーのニーズを知るために、アプリのデータ解析が重要であるというお話をしました。データ解析は導入の敷居が高いことが問題でしたが、最近はクラウドサービスを利用することで手軽にデータ解析を行えるようになりましたね。アプリ開発初心者にもオススメできるものとしてGoogle Analytics(http://www.google.com/intl/ja_jp/analytics/)とTreasure Data(http://www.treasure-data.com/)をご紹介しました。

「データ解析が重要なのはわかったけど、本当に私にもできるのかな?」と、まだ躊躇している方もいるでしょう。Google Analyticsについては、解説しているWebサイトや書籍が既にたくさんあるのでそちらにお任せして、今回はTreasure Dataについてアプリ開発初心者でも利用できる理由をご説明していきます。

 まず、Treasure Dataについて復習をしましょう。Treasure Dataは大量のデータを高速にそして簡単に集計できるクラウドサービスでしたね。アプリのログをTreasure Dataにアップロードし、SQLに似たクエリを使ってログを集計する、という使い方をします。集計処理の部分はHadoopというシステムが使われていて、とても高速です。

 さて、このTreasure Dataはなぜアプリ開発初心者でも利用できるのでしょうか? 理由は2つあります。1つ目は「Treasure Dataを利用するために必要な技術が少ない」から、2つ目は「実際にプロダクトに利用する場合にも組み込みや運用が簡単」だからです。それでは順にご説明しましょう。

 まず、1つ目の理由である「Treasure Dataを利用するために必要な技術が少ない」から説明します。Treasure DataはHadoopなどの専門的な部分は、開発者が意識する必要がないようにつくられています。さらに、MySQLなどのRDBで、データアクセスするために利用するSQLとよく似たクエリ言語を使って集計できるため、SQLを知っていれば割と簡単に利用することができます。開発者の方でもSQLは使ったことがないという方がいるかもしれませんが、集合データを扱う基本の言語としてSQLに似たクエリ言語はさまざまなプロダクトで利用されています。1日勉強するだけで十分に基礎は押さえられますので、ぜひ身に付けておくことをオススメします。

Treasure Dataがホントに簡単なのか実験!

 Quickstart Guide(http://docs.treasure-data.com/articles/quickstart)にはデモ用のApacheログをTreasure Dataにアップロードし、クエリを使ってアプリへのリクエストをステータスコード別に集計する方法が説明してありますので、果たして本当に簡単なのかどうか試してみましょう。まず最初は、Quickstart Guideに従い、デモ用のApacheログを利用して試してみてください。おそらく20分くらいあれば、Step5の集計までできるかと思います。もしうまくできたら、今度はApacheログではなく自分で用意したデータでも試してみましょう。手元にデータがない方はSNSなどのAPIを利用するのもいいと思います(※1)。今回はmixiのUpdates APIを使って取得した最新の友人の更新情報を、友人がよく使う機能を集計してみますので参考にしてみてください。

 まず以下のURIにアクセスし、最新の友人の更新情報を取得します。
 GET https://api.mixi-platform.com/2/updates/@me/@friend
 (このURLにいくつか+αの情報を加えてリクエストを送ります。+αは※2参照)

 取得した更新情報の内、今回はobjectTypeとPostedTimeという項目のみを抽出して、以下のようにJSON形式でupdate.jsonというファイルに書き出します。objectTypeはユーザーがどのような種類のアクションを起こしたかを示しています。(※3)

{"objectType":"status","time":"2013-03-26T08:49:10+09:00"} 
{"objectType":"status","time":"2013-03-26T07:54:42+09:00"} 
{"objectType":"bookmark","time":"2013-03-26T06:14:51+09:00"}

 Quickstart Guideを順に進めていき、Step4では先程作成したupdate.jsonをアップロードします。

td db:create td_test
td table:create td_test updates
td table:import td_test updates --json updates.json

 Step5では下記のクエリを使って集計します。

td query -w -d td_test \
  "SELECT v['objectType'] AS objectType, COUNT(1) AS cnt FROM updates GROUP BY v['objectType']"

 このデータでは15件中13件がstatus(mixiボイス)で、私の友人の間では最近status(mixiボイス)が非常によく使われているということがわかりました。

 このようにTreasure DataはSQLの知識があれば簡単に集計を行うことができます。尚、今回は少ないデータでしたが、何千、何万件、それ以上のデータをアップロードすると、よりTreasure Dataの良さを感じられるはずです。

プロダクトに利用する場合も組み込みや運用が簡単

 2つ目の理由は、実際にプロダクトに利用する場合にも組み込みや運用が簡単だからです。Quickstart Guideのような一番シンプルな例は簡単でわかりやすいのに、それをいざプロダクトに組み込むときに困ってしまうことはありませんか? Treasure Dataは開発者にやさしく作られていますので心配ありません。

 例を見てみましょう。先程のQuickstart Guideでは、すでに出力し終わったログファイルをTreasure Dataにアップロードしていました。しかし実際にアプリを運用するとログファイルのサイズは大きく、都度アップロードするためのスクリプトを書くのも面倒です。そこでオススメなのがStreaming Import(http://docs.treasure-data.com/categories/td-agent-language)というアップロードの仕組みです。各プログラミング言語ごとに用意されているモジュールを使ってログを出力するだけで、モジュールが5分毎に自動的にログをアップロードしてくれます。

 ログ出力例(Ruby)

TD.event.post('login', {:uid=>123})

 これなら実際にアプリに組込むのも運用するのも簡単ですね!

 第8回でご紹介したアプリホスティングサービスのHeroku(http://www.heroku.com)を利用すると、アドオンを追加することでTreasure Dataをより簡単に利用することができます。また第7回でご紹介した「mixi API Quick Start」(http://developer.mixi.co.jp/about-platform/api_quick_start/overview/)などのSNS連携アプリの自動作成機能もHerokuを利用しているため、これで作成したアプリもアドオンを追加することでTreasure Dataを利用できます。

 さて今回はTreasure Dataという大量のデータを高速にそして簡単に集計できるクラウドサービスを利用すれば、アプリ開発初心者でも大量データ解析を行えるということをお話しました。ぜひあなたのアプリでもデータ解析を活用してみてください!

(※1)APIを利用する際は利用規約の範囲内でご使用ください。
(※2)Updates APIの詳しい使い方はこちらをご参照ください。
(※3)objectTypeの詳しい使い方はこちらをご参照ください。
鈴木 理恵子

株式会社ミクシィ 技術部 コアプロダクト開発G所属。
青春時代はギター制作に明け暮れていたが、一転、IT業界に転身しプログラマとなる。
業務アプリケーションシステムの開発を経て、現在はミクシィでmixi Graph APIなどのアプリプラットフォーム開発を担当。

  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
あなたを求める企業がある!
まずはリクナビNEXTの「スカウト」でチャンスを掴もう!
スカウトに登録する

このレポートの連載バックナンバー

鈴木理恵子のアプリ開発ビギナー向け講座

ミクシィ鈴木理恵子が、アプリ初心者の方向けに、聞きたくても聞けないアプリ開発の初歩的なノウハウや失敗回避法などを伝授します。

鈴木理恵子のアプリ開発ビギナー向け講座

このレポートを読んだあなたにオススメします

ミクシィ鈴木理恵子の“アプリ開発ビギナー向け講座”

アプリデータ解析ができるおすすめクラウドサービス

鈴木理恵子のアプリ開発ビギナー向け講座アプリ開発で欠かせないのがデータ解析。今回はお手軽にアプリデータ解析ができるサービス「Google Analytics…

アプリデータ解析ができるおすすめクラウドサービス

ミクシィ鈴木理恵子の“アプリ開発ビギナー向け講座”

初心者でもわかる!アプリ開発に役立つHerokuの機能

鈴木理恵子のアプリ開発ビギナー向け講座前回ご紹介した「mixi、Facebookで活用できるアプリ自動生成機能」。どちらのアプリもHeroku上に自動生成…

初心者でもわかる!アプリ開発に役立つHerokuの機能

ミクシィ鈴木理恵子の“アプリ開発ビギナー向け講座”

mixi、Facebookで活用できるアプリ自動生成機能を紹介

鈴木理恵子のアプリ開発ビギナー向け講座Webアプリ開発初心者が効率よく学ぶことができるのがサンプルコードを書き写したり、編集したりする“サンプルコード勉強法…

mixi、Facebookで活用できるアプリ自動生成機能を紹介

ミクシィ鈴木理恵子の“アプリ開発ビギナー向け講座”

開発者のためのiframe内アプリのセッション管理方法

鈴木理恵子のアプリ開発ビギナー向け講座開発者を悩ませるiframe内表示Webアプリ問題。前回はその現状についてお伝えしましたが、今回はiframe内Web…

開発者のためのiframe内アプリのセッション管理方法

ミクシィ鈴木理恵子の“アプリ開発ビギナー向け講座”

開発者を悩ませるiframe内表示Webアプリ問題とは?

鈴木理恵子のアプリ開発ビギナー向け講座フレーム内に小さなブラウザのようにWebページを表示してくれる「iframe」。特別な技術は必要ないのに、さまざまな…

開発者を悩ませるiframe内表示Webアプリ問題とは?

応募者は「イケた!」と思ったのに……なぜ不採用?

スキルが高い人材でも「NG」を出した人事の証言

求人の募集要項にあるスキルは満たしていたのに、なぜか結果は不採用。そんな経験をした人も多いのでは? では、採用に至らな…

スキルが高い人材でも「NG」を出した人事の証言

この記事どうだった?

あなたのメッセージがTech総研に載るかも

あなたの評価は?をクリック!(必須)

あなたのご意見お待ちしております

こちらもお答えください!(必須)

歳(半角数字)
(全角6文字まで)
  • RSS配信
  • twitter Tech総研公式アカウント
  • スカウト登録でオファーを待とう!
スマートグリッド、EV/HV、半導体、太陽電池、環境・エネルギー…電気・電子技術者向け特設サイト

PAGE TOP