2015年1月23日金曜日

Yahoo!ビッグデータインサイトとTableauOnlineを連携させる

先日、IDCフロンティアさんのハンズオンセミナーに行ったのですが、
TableauのMyPageをアクティベーションの問題(凄い時間かかる)から作る事が出来ず、
失意のままセミナーが終わってしまったので、復習がてら資料読みながらやってみます。

ハンズオンセミナーは定期的にやるという話ですので、
是非、以下URLをウォッチして確認してみてください。
http://idcf.doorkeeper.jp/

今回のゴールは、
YBIとTableauOnlineを連携させて、TableauOnline上でグラフ化してみる。
ところまでやりたいと思います!
※Tableauのグラフ生成操作や詳しく解析手法を説明するという事は、
 今回の記事ではしませんのでご注意下さい!

今回用意する環境

IDCFクラウド
  light.S1
  Ubuntu Server 14.04 LTS 64-bit
Yahoo!ビッグデータインサイト(以降YBI)のアカウント
TableauOnlineのアカウント
です。
YBIもTableauもクレジットカードは今回不要です。
YBIは無料コースがありますし、Tableauは試用期間があります。
気楽に進めて下さい。

IDCFの初期構築はめちゃ楽ガイドをご参照ください。
http://www.idcf.jp/pdf/cloud/IDCFCloud_installation_guide.pdf

ちなみに2015/01/22時点で、新規ユーザは3000円分のクーポンついてます。
(3000円はlight.S1を半年上げっ放しでもOKな金額なので安心して検証出来ます!)
お友達紹介キャンペーンも併用すると最大6000円分のクーポンがついてきますので、
是非ご活用ください!(ご紹介は taka3110_pcc でお願いします!w)


その他のサイトのアカウント類は先に作っておきましょう。
(特にTableauはアクティベーションに1時間くらい掛かります。)

Yahoo!ビッグデータインサイトのアカウント作成

以下URLにアクセス
https://console-ybi.idcfcloud.com/users/sign_up


・・・簡単ですね。
SignUpをするとMyPageに飛んでデモが始まるので適当に流してください。
最初からいくつかサンプルデータが入ってますので、HiveやPrestoを使う事が出来ます。
HiveやPrestoを使う環境をSignUpのたった5項目書くだけで揃っちゃう。
ちょっと使ってみたいなーっていうときは便利ですね。

MyPageの右上、自分の名前が書いてあるメニューをクリックすると、
My Profile画面に移動できます。こちらでAPIKeyを取得します。

APIKeyを取得する為にパスワードを入力します。


APIKeyが表示されるので、今回はWrite-Only API Keysを使用します。
こちらをコピーしてメモ帳等にでも保存しておいてください。
(あとでtd-agentのコンフィグに記載する必要がある為)



TableauOnlineのアカウント作成

以下、URLにアクセス
https://www.tableau.com/ja-jp/products/online
無料で試すボタンを押すと以下のように入力画面が出てきます。
項目を埋めて下さい。

リクエスト送信後、1時間くらいでMyPage作成についてのリンクが記載されたメールが来ます。
かなり時間がありますので先にサーバを作ってしまいましょう。


サーバ構築


さて、それでは中身を構築しましょう。
ハンズオンセミナーに忠実に作ります。
今後、本サーバを使用した記事を書く予定ですが、今回の記事では実は使いません。
従って、YBIとTableauの連携だけ確認する方は飛ばしていただいて結構です。
ただAPIのサーバ指定を変更すればトレジャーデータでも使用できますので、
一般的にtd-agentとnginxの連携方法の練習と捉えていただければ。

連携についてはハンズオンセミナーの方で聞いて頂ければと思います。


apt-get install nginx
curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-precise.sh | sh
mkdir -p /usr/local/ybi/data
cd /usr/local/ybi/data
echo "export TD_API_SERVER=https://ybi.jp-east.idcfcloud.com" > ~/.bash_profile
source ~/.bash_profile
td account -f
#-----------------------------------------------
#以下対話式になるので記入(#は不要)
Enter your Treasure Data credentials.
Email: #YBIに登録したメールアドレス#
Password (typing will be hidden): #YBIに登録したメールアドレス#
Authenticated successfully. #←成功するとこのメッセージになります。
Use 'td db:create <db_name>' to create a database.
#-----------------------------------------------

td db:create handson
td table:create handson
apt-get install openjdk-7-jre
cp -p /etc/td-agent/td-agent.conf /etc/td-agent/td-agent.conf.org
vi /etc/td-agent/td-agent.conf
#-----------------------------------------------
#以下内容を記入。#APIキーを記入#の部分をYBIのAPIキーになおす。(#は不要)

# Tailing the Nginx Log
<source>
  type tail
  path /var/log/nginx/access.log
  pos_file /var/log/td-agent/nginx-access.pos
  tag td.handson.streaming
  format nginx
</source>
# Treasure Data Input and Output
<match td.*.*>
  type tdlog
  apikey #APIキーを記入#
  auto_create_table
  buffer_type file
  buffer_path /var/log/td-agent/buffer/td
  endpoint https://ybi.jp-east.idcfcloud.com
  flush_interval 10s
  use_ssl true
</match>
#-----------------------------------------------
chmod +x /var/log/nginx/
/etc/init.d/td-agent restart
/etc/init.d/nginx restart

これでnginxのログをtd-agentを経由してYBIへ自動的に送る設定が完了しました。

念の為テストしてみましょう。
curl http://localhost/
curl http://localhost/
curl http://localhost/
curl http://localhost/
curl http://localhost/
sleep 10
td query -w -t presto -d handson "SELECT * FROM streaming"

上記を実行すると5行(5 rows in set)のアクセスデータがテーブル型で表示されると思います。
表示されない場合はggrksで。

TableauOnlineを使う


Tableauはタブローと読みます。タブローソフトウェアという会社のBIツールです。
YBIにしろ中身であるtreasuredataにしろ、分析、結果の出力までは行います。
それを見やすいようにビジュアライズしたりするのが、
今回Tableauに代表されるBI(Business Intelligence)ツールが必要になります。

百聞は一見に如かず。早速やってみてみましょう。

アクティベートが完了していればメールが来ていると思います。
文中のCreate Your SiteのリンクをクリックしてMyPageを作成しましょう。
ログインをすると完成したMyPageのワークブックが表示されている状態となります。

管理者ボタンをクリックしてプロジェクトを追加していきましょう。


プロジェクトをクリックして追加のリンクをクリックします。




名前と説明を適当にいれて追加ボタンをクリックします。


追加したプロジェクトがプロジェクトの一覧に表示されていると思います。



YBIとTableauの連携


さて、次はYBIの方を触ります。
今回はYBI --> Tableauへクエリ結果を出力させるやり方を取ります。

それではYBIにクエリを用意しましょう。
New Queryをクリックし、Databaseドロップダウンメニューからsample_datasetsを選択します。
クエリを記入(下記コピペ)して、下図青枠のResult Exportのaddボタンをクリックします。


クエリはこちら
------------------------------------------------------------------------------
SELECT
  CAST(TD_TIME_FORMAT(time, 'YYYY-MM-dd', 'JST') AS TIMESTAMP) AS Datetime,
  method AS Method,
  COUNT(1) AS Count
FROM
  www_access
GROUP BY
  TD_TIME_FORMAT(time, 'YYYY-MM-dd', 'JST'),
  method
------------------------------------------------------------------------------

Result Exportの画面でExport toにTableau Server を選択。
HostにはTableauOnlineのドメインを記入します。
Username/PasswordはTableauOnlineにログインした際に使用したものを記入します。
Datasourceは適当に入力をして、画面をスクロールします。
最後にProjectに先ほど作成したProjectの名前を記入してUseをクリックします。


UseをクリックするとNew Queryの画面に戻るのでRunをクリックして、
Queryを走らせると自動的にJobの画面に遷移します。

Jobが完了すると下図のようにJOB番号の横がrunningからsuccessになります。
今回のQueryだと平均で30秒程度で終わると思います。

successになったらTableauの方で確認してみましょう。
先ほど追加したプロジェクトにデータソースが追加されていると思います。



BIツールでのビジュアル化


最後にグラフを作成してビジュアル化します。

データソース名の横にあるチェックボックスにチェックを入れて、
新しいワークブックのリンクをクリックするとグラフ作成画面に遷移します。

グラフ作成画面では左にあるディメンションやメジャーを列/行へドラッグ&ドロップする事で、
グラフを簡単に作成する事ができます。
Datetimeは+を押すことでより期間をスコープして確認する事ができます。
習うより慣れろですので、先ずは下図のような図を作ってみて色々と変更してみて下さい。




今回はYBIとTableauの連携でした。
上記内容は定期的にハンズオントレーニングをやっています。
詳細はIDCFのイベントページをご確認下さい!
http://idcf.doorkeeper.jp/

それでは、よいクラウド構築を!

0 件のコメント:

コメントを投稿