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

Mais conteúdo relacionado

Destaque

HTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2confHTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2confJxck Jxck
 
Google big query × Amazon redshift
Google big query × Amazon redshiftGoogle big query × Amazon redshift
Google big query × Amazon redshiftFumihide Nario
 
How To Select Best Transmission For Your Vehicle
How To Select Best Transmission For Your VehicleHow To Select Best Transmission For Your Vehicle
How To Select Best Transmission For Your VehicleDreamcars Auto Repair
 
The Test, Gillie, Gettysburg, 4 JUL 2014
The Test, Gillie, Gettysburg, 4 JUL 2014The Test, Gillie, Gettysburg, 4 JUL 2014
The Test, Gillie, Gettysburg, 4 JUL 2014David R. Gillie
 
福岡商工会議所講演会(2017年2月17日)
福岡商工会議所講演会(2017年2月17日)福岡商工会議所講演会(2017年2月17日)
福岡商工会議所講演会(2017年2月17日)隆志 柳瀬
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介ao27
 
ホームセンターにある画像をVision apiで分析してみた話
ホームセンターにある画像をVision apiで分析してみた話ホームセンターにある画像をVision apiで分析してみた話
ホームセンターにある画像をVision apiで分析してみた話Wasaburo Miyata
 
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDKBigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDKnagachika t
 
Ruby Kaja のご提案
Ruby Kaja のご提案Ruby Kaja のご提案
Ruby Kaja のご提案nagachika t
 
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅Tomoki Hasegawa
 
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価Kumano Ryo
 
Gceハンズオン20150411イン福岡
Gceハンズオン20150411イン福岡Gceハンズオン20150411イン福岡
Gceハンズオン20150411イン福岡Ryosuke Akahoshi
 
Distributed Deep Q-Learning
Distributed Deep Q-LearningDistributed Deep Q-Learning
Distributed Deep Q-LearningLyft
 
GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例Fumihiko Shiroyama
 
Firebase によるリアルタイム モバイル開発 @gcpug 福岡
Firebase によるリアルタイム モバイル開発 @gcpug 福岡Firebase によるリアルタイム モバイル開発 @gcpug 福岡
Firebase によるリアルタイム モバイル開発 @gcpug 福岡Google Cloud Platform - Japan
 
Inspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter TuningInspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter Tuningnagachika t
 
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Yusuke Wada
 

Destaque (20)

HTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2confHTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2conf
 
Google big query × Amazon redshift
Google big query × Amazon redshiftGoogle big query × Amazon redshift
Google big query × Amazon redshift
 
Ansvar Community Insurance Proposal
Ansvar Community Insurance ProposalAnsvar Community Insurance Proposal
Ansvar Community Insurance Proposal
 
企画案
企画案企画案
企画案
 
How To Select Best Transmission For Your Vehicle
How To Select Best Transmission For Your VehicleHow To Select Best Transmission For Your Vehicle
How To Select Best Transmission For Your Vehicle
 
The Test, Gillie, Gettysburg, 4 JUL 2014
The Test, Gillie, Gettysburg, 4 JUL 2014The Test, Gillie, Gettysburg, 4 JUL 2014
The Test, Gillie, Gettysburg, 4 JUL 2014
 
福岡商工会議所講演会(2017年2月17日)
福岡商工会議所講演会(2017年2月17日)福岡商工会議所講演会(2017年2月17日)
福岡商工会議所講演会(2017年2月17日)
 
AIG Corporate Travel PDS
AIG Corporate Travel PDSAIG Corporate Travel PDS
AIG Corporate Travel PDS
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
 
ホームセンターにある画像をVision apiで分析してみた話
ホームセンターにある画像をVision apiで分析してみた話ホームセンターにある画像をVision apiで分析してみた話
ホームセンターにある画像をVision apiで分析してみた話
 
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDKBigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
 
Ruby Kaja のご提案
Ruby Kaja のご提案Ruby Kaja のご提案
Ruby Kaja のご提案
 
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
 
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
 
Gceハンズオン20150411イン福岡
Gceハンズオン20150411イン福岡Gceハンズオン20150411イン福岡
Gceハンズオン20150411イン福岡
 
Distributed Deep Q-Learning
Distributed Deep Q-LearningDistributed Deep Q-Learning
Distributed Deep Q-Learning
 
GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例
 
Firebase によるリアルタイム モバイル開発 @gcpug 福岡
Firebase によるリアルタイム モバイル開発 @gcpug 福岡Firebase によるリアルタイム モバイル開発 @gcpug 福岡
Firebase によるリアルタイム モバイル開発 @gcpug 福岡
 
Inspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter TuningInspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter Tuning
 
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤
 

Semelhante a Google BigQueryを使ってみた!

「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会Yu Ishikawa
 
GoogleAnalytics Tools クックブック
GoogleAnalytics Tools クックブックGoogleAnalytics Tools クックブック
GoogleAnalytics Tools クックブックTakashi Sudou
 
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのかTechon Organization
 
20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~Hikaru Tanaka
 
Qgis2.18 基礎編
Qgis2.18 基礎編Qgis2.18 基礎編
Qgis2.18 基礎編Jyun Tanaka
 
DMTC 2nd プレゼンテーション
DMTC 2nd プレゼンテーションDMTC 2nd プレゼンテーション
DMTC 2nd プレゼンテーション真悟 平山
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案Toshiyuki Shimono
 
10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testingTakuto Wada
 

Semelhante a Google BigQueryを使ってみた! (8)

「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会
 
GoogleAnalytics Tools クックブック
GoogleAnalytics Tools クックブックGoogleAnalytics Tools クックブック
GoogleAnalytics Tools クックブック
 
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
 
20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~
 
Qgis2.18 基礎編
Qgis2.18 基礎編Qgis2.18 基礎編
Qgis2.18 基礎編
 
DMTC 2nd プレゼンテーション
DMTC 2nd プレゼンテーションDMTC 2nd プレゼンテーション
DMTC 2nd プレゼンテーション
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
 
10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing
 

Mais de Yusuke Wada

僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達Yusuke Wada
 
スッとGoを取り入れる
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れるYusuke Wada
 
東京脱出計画中
東京脱出計画中東京脱出計画中
東京脱出計画中Yusuke Wada
 
Extreme remote working
Extreme remote workingExtreme remote working
Extreme remote workingYusuke Wada
 
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPANPodcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPANYusuke Wada
 
創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01Yusuke Wada
 
It's not only about "REMOTE"
It's not only about "REMOTE"It's not only about "REMOTE"
It's not only about "REMOTE"Yusuke Wada
 
事故からはじまるスケールチャンス
事故からはじまるスケールチャンス事故からはじまるスケールチャンス
事故からはじまるスケールチャンスYusuke Wada
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
5 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 20145 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 2014Yusuke Wada
 
Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術Yusuke Wada
 
The master plan of scaling a web application
The master plan ofscaling a web applicationThe master plan ofscaling a web application
The master plan of scaling a web applicationYusuke Wada
 
そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?Yusuke Wada
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Yusuke Wada
 
10 things to learn from Bokete
10 things to learn from Bokete10 things to learn from Bokete
10 things to learn from BoketeYusuke Wada
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
 
僕らの履歴書
僕らの履歴書僕らの履歴書
僕らの履歴書Yusuke Wada
 
僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由Yusuke Wada
 
僕らがつくるための 「5W」について
僕らがつくるための 「5W」について僕らがつくるための 「5W」について
僕らがつくるための 「5W」についてYusuke Wada
 
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方Yusuke Wada
 

Mais de Yusuke Wada (20)

僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
 
スッとGoを取り入れる
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れる
 
東京脱出計画中
東京脱出計画中東京脱出計画中
東京脱出計画中
 
Extreme remote working
Extreme remote workingExtreme remote working
Extreme remote working
 
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPANPodcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
 
創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01
 
It's not only about "REMOTE"
It's not only about "REMOTE"It's not only about "REMOTE"
It's not only about "REMOTE"
 
事故からはじまるスケールチャンス
事故からはじまるスケールチャンス事故からはじまるスケールチャンス
事故からはじまるスケールチャンス
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
5 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 20145 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 2014
 
Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術
 
The master plan of scaling a web application
The master plan ofscaling a web applicationThe master plan ofscaling a web application
The master plan of scaling a web application
 
そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
10 things to learn from Bokete
10 things to learn from Bokete10 things to learn from Bokete
10 things to learn from Bokete
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
 
僕らの履歴書
僕らの履歴書僕らの履歴書
僕らの履歴書
 
僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由
 
僕らがつくるための 「5W」について
僕らがつくるための 「5W」について僕らがつくるための 「5W」について
僕らがつくるための 「5W」について
 
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
 

Google BigQueryを使ってみた!