Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Google BigQueryを使ってみた!

12,226 views

Published on

PerlCasual #06
2014/10/24
Yusuke Wada a.k.a. yusukebe

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yxyv2nvt } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yxyv2nvt } ......................................................................................................................... Download Full doc Ebook here { https://tinyurl.com/yxyv2nvt } ......................................................................................................................... Download PDF EBOOK here { https://tinyurl.com/yxyv2nvt } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yxyv2nvt } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yxyv2nvt } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Google BigQueryを使ってみた!

  1. 1. Google BigQueryを つかってみた! PerlCasual#06 2014/10/24 Yusuke Wada a.k.a. yusukebe
  2. 2. 2つの問題意識
  3. 3. 1. 開発サイドから • 例えばアクセスログが膨らんで活用できない 1.サイズが大きい 2.分散されている 3.量が多いので解析するのが難しい • 何か困った時に過去のログが使えない... 大きなログを簡単に追いたい!
  4. 4. 2. ビジネスサイドから • 例えば行動ログ的な細かい指標が無い 1.データベース上の静的な情報のみ 2.Google Analyticsは非常に優秀だが... 3.ユーザーに紐付く情報を解析したい 指定したログを貯めてディレクターの人 でも解析・分析でできるようにしたい!
  5. 5. と、その時... 巷でビッグクエリーという言葉を 聞くようになる...
  6. 6. とか!
  7. 7. Google BigQueryは巨大なデータを様々 なフォーマットで放り込めてSQLライ クなクエリで問い合わせが可能でチョー 高速!120億レコードに対するクエリ を5秒でフルスキャン!ステキー しか も利用料も安いと来たもんだっ!
  8. 8. ってことで Google BigQueryを使ってみた話+α
  9. 9. データを用意する 業務で使っているログの場合 • RPCへのアクセス+ユーザー識別子 • 一旦JSON形式でファイルへ書き出す • 集約サーバーに投げる • fluent-plugin-bigquery で BigQuery へ挿入
  10. 10. Google BigQuery 集約サーバ APIサーバAPIサーバAPIサーバ
  11. 11. データを用意する デモのためにTwitter APIを利用する • Streaming APIの「statuses/sample」を利用 • publicなツィートのほんの一部を取得可能 • fluent-plugin-twitter で簡単に • 最後はやはり fluent-plugin-bigquery を使う
  12. 12. Google BigQuery Tweet収集サーバ
  13. 13. スキーマは必要
  14. 14. Google BigQueryは ブラウザから色々できる
  15. 15. 例えば... • BigQuery Browser Tool (後述) • Googleアカウントベースで権限の追加 • 利用状況の確認 • APIクライアントの作成や削除 • APIリクエストのモニタリング • 課金の管理 フルマネージドで便利!
  16. 16. 独自のSQLで問い合わせる https://cloud.google.com/bigquery/query-reference
  17. 17. ここで BigQuery Browser Tool 登場
  18. 18. SELECT COUNT(*) AS tweet_count FROM [twitter-stream-sample:twitter.tweet] ちなみに10月18日(土)から収集開始
  19. 19. 22,289,497件 / 7.5秒
  20. 20. Browser Toolで出来ること • Queryの実行と結果を表形式で見る • Queryの保存とロード • CSV形式での結果のダウンロード • 新しいテーブルやDataSetの作成など 必要最小限の機能が揃っている さらにBigQuery Connector for Excelを使えばExcelとの連動も可能
  21. 21. 例えばディレクターが新しい KPIを図るためにQueryを 構築することも考えられる
  22. 22. 以上 Google BigQuery を使ってみた話終わり One More Thing
  23. 23. 今作ってるモノ BigView For Visualizing Google BigQuery • 元々業務でBigQueryの結果を可視化するため • Browser Toolのある種拡張 • BigQueryのThird-partyサービスは複雑で高価 • 目指すところはKibanaっぽいところ?
  24. 24. BigViewで出来ること • Googleアカウントでのログイン • 権限を持つプロジェクトへのクエリの実行 • とある条件下での結果のチャート表示 • Pieチャート • Lineチャート • クエリの保存 (未実装)
  25. 25. BigViewを使ってみる
  26. 26. 1時間ごとのツイート数 をグラフにしてみる
  27. 27. SELECT USEC_TO_TIMESTAMP((UTC_USEC_TO_HOUR(created_at))) AS time, COUNT(*) AS tweet_count FROM [twitter-stream-sample:twitter.tweet] GROUP BY time ORDER BY time
  28. 28. この辺はデータが欠落してます><
  29. 29. ユーザーの使用言語の割合を チャートにしてみる
  30. 30. SELECT user_lang, COUNT(user_lang) AS lang_count FROM [twitter-stream-sample:twitter.tweet] GROUP BY user_lang ORDER BY lang_count DESC
  31. 31. 何らかのライセンスで パブリックに使ってもらう かもしれません!
  32. 32. まとめ
  33. 33. • Google BigQueryはブラウザで色々できちゃって 楽だし安いそして早い/速い • 実装(連携?)はおおよそfluentdにお任せ • 活用できてないデータを活かすことが出来る • Browser ToolでディレクターがSQLを書く? • BigViewでシンプルなデータの視覚化を目指す • Googleの回し者ではないです ^^

×