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.
Cloud DatalabとBigQueryを
使ったアドホックデータ解析
gcp ja night #31 2016-01-21
Takashi Nishibayashi (@hagino3000)
1
お前誰よ
ID: hagino3000
Takashi Nishibayashi
!
• ネット広告配信最適化エンジニア
• Zucks AdNetworkデータ解析班
• 自転車
自転車
最適化処理や機械学習を実装してアプリケーションに組みこむ
!
実験・モデリング・実装
(多腕バンディットアルゴリズム/機械学習/最適化)
前処理
ログ収集
人間の意思決定をサポートするためのデータ分析
施策の効果検証・検定
主にこっち
Zuck...
• 広告リクエストに対して最も適切な広告を返す
• CTR (Click through Rate) の予測
• p(Click | Request, 広告枠, 広告キャンペーン)
• CVR (Conversion Rate) の予測
• p...
今日の話
• 広告配信システムのログをいい感じにBigQueryに
流しこんでる
• AWS to GCP
• BigQueryに入れたデータを使ったアドホックな解
析にCloud Datalabを使いはじめた
前処理
広告配信
サーバー
広告計測
サーバー
ログ
広告計測
サーバー
広告配信
サーバー
ログ
S3
前処理
SNS
トピック
SQS
キュー
GCP
Cloud
Storage
ログ
BigQuery
テーブル
テーブル
テーブル
配信シ...
BigQuery
Why BigQuery
• Hadoopクラスタ持ってない
• まずはAdHocにデータを利用できる環境が必要
• 利用人数は数人
• 300GB/day 突っこめれば良い
• マネージドサービスなので運用が楽
• 安い (1TByteでSt...
Data Load
• 配信システムのログがS3に配置されるので、S3から
の通知をトリガーにGCSにコピー
• 1時間に1回ファイルをGCS上でまとめてBatch Load
• Stream Insertはお金がかかるので、速く欲しいログ
だ...
Job管理
• Luigiを使っている
• タスク間の依存性定義 (ロード → 前処理 → 集計 → xxx)
• 入出力対象の抽象化 (S3, GCS, BigQuery, Local File, etc.)
• リトライ/エラー通知
• モ...
チーム内での共有
• Googleスプレッドシート + GAS
• クエリをスケジュール実行してグラフを作ったり
• クエリをセルに入力して実行できるシートをチー
ムで共有
• GASいいよねー、みたいな話はいろんな人がしてる
• gcp ja...
re:dash
• http://redash.io/
• KPI可視化やクエリ1発で終るような調べ物には便利
• 1分で使い始められる
• EC2, GCEのイメージが用意されている
• ちゃんと使うなら
• TLS化 + Googleアカウ...
150万溶かしたとかそういう話
読めばいいと思う
Cloud Datalab
https://cloud.google.com/datalab/?hl=ja
BETA
About Cloud Datalab
• Jupyter Notebookベースの対話環境をGCP
上に立てられる
• AppEngine + Managed VM 上で動作
• Github上で開発が進んでいる
• https://gith...
対話環境を何に使っているか
• データ調査・分析
• 実験
• 本に書いてあるコードを実行
• メモ
• 大抵の言語は動く
• https://github.com/ipython/ipython/wiki/
IPython-kernels-f...
データ調査の説明
クエリ
結果
本のコードを再現
2014年∼
• 共用のIPython Notebook (旧Jupyter) Server
• 毎日再起動 (生きているsessionを全クリア)
• よくノートが壊れて動かなくなる
• ユーザーアカウントという概念は無し
2015年∼
• 各自Jupyter Notebook on ローカルマシン
• Githubにノートをpushして共有
• BigQueryへのアクセス
• BigQuery-Python, pandas.io.gbq
課題
• 実験ノートをもっと気軽に共有したい
• 良い感じのアクセス制限をかけたい
• 共用Jupyter Notebook Serverの面倒はみた
くない
2016年∼
• Cloud Datalab上でノートをコミットして共有
• 特に再起動とかしていない
• 再起動したい時はvmにsshしてdocker restart
• BigQueryへのアクセスは
• import gcp.bigque...
Cost
• VMインスタンスを起動している時間
• N1 Standard VCPU1 だと3,300円/月 程度
• Good
• 30秒で使いはじめられる
• GCPプロジェクトのアカウントが使える
• ノートの共有が前よりは楽にできる
• カスタマイズ欲が無くなる
• Bad
• 他人の変更を取りこむのが割と面倒
• 数式がまだ使えない (master...
Tips
• Charting APIsあたりを全て覚えなくても良い
• 今まで通りmatplotlib, Seaborn を使えばいい
• 地図へのプロットはCharting APIが楽
• 環境構築はノートにしておく
• インスタンスタイプ...
まとめ
• 実験ノートの共有をうまくやりたかった
• Cloud Datalabの将来に期待
• GCPのアカウント権限が使えるのは楽
• BQ本は読んでおこう
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Upcoming SlideShare
Loading in …5
×

Cloud DatalabとBigQueryを使ったアドホックデータ解析

6,374 views

Published on

gcp ja night #31 の発表資料です

Published in: Technology
  • Be the first to comment

Cloud DatalabとBigQueryを使ったアドホックデータ解析

  1. 1. Cloud DatalabとBigQueryを 使ったアドホックデータ解析 gcp ja night #31 2016-01-21 Takashi Nishibayashi (@hagino3000) 1
  2. 2. お前誰よ ID: hagino3000 Takashi Nishibayashi ! • ネット広告配信最適化エンジニア • Zucks AdNetworkデータ解析班 • 自転車
  3. 3. 自転車
  4. 4. 最適化処理や機械学習を実装してアプリケーションに組みこむ ! 実験・モデリング・実装 (多腕バンディットアルゴリズム/機械学習/最適化) 前処理 ログ収集 人間の意思決定をサポートするためのデータ分析 施策の効果検証・検定 主にこっち Zucks AdNetworkにおける データ解析チームの仕事 We are hiring
  5. 5. • 広告リクエストに対して最も適切な広告を返す • CTR (Click through Rate) の予測 • p(Click | Request, 広告枠, 広告キャンペーン) • CVR (Conversion Rate) の予測 • p(Conversion | 広告枠, 広告キャンペーン) • 最適な入札価格の決定 • 広告枠ごとのインプレッション(リクエスト)予測 • 異常枠の検知 • 広告配信システムのログを活用できる状態にする
  6. 6. 今日の話 • 広告配信システムのログをいい感じにBigQueryに 流しこんでる • AWS to GCP • BigQueryに入れたデータを使ったアドホックな解 析にCloud Datalabを使いはじめた
  7. 7. 前処理 広告配信 サーバー 広告計測 サーバー ログ 広告計測 サーバー 広告配信 サーバー ログ S3 前処理 SNS トピック SQS キュー GCP Cloud Storage ログ BigQuery テーブル テーブル テーブル 配信システムAWS 通知 実験環境 予測 処理 予測 データ
  8. 8. BigQuery
  9. 9. Why BigQuery • Hadoopクラスタ持ってない • まずはAdHocにデータを利用できる環境が必要 • 利用人数は数人 • 300GB/day 突っこめれば良い • マネージドサービスなので運用が楽 • 安い (1TByteでStorage費用が20$/Month)
  10. 10. Data Load • 配信システムのログがS3に配置されるので、S3から の通知をトリガーにGCSにコピー • 1時間に1回ファイルをGCS上でまとめてBatch Load • Stream Insertはお金がかかるので、速く欲しいログ だけ対応する方針 • 今作るならEmbulkやCloud Dataflowを使うかも
  11. 11. Job管理 • Luigiを使っている • タスク間の依存性定義 (ロード → 前処理 → 集計 → xxx) • 入出力対象の抽象化 (S3, GCS, BigQuery, Local File, etc.) • リトライ/エラー通知 • モニタリング用UI • 処理は全てPythonで記述 • http://qiita.com/hagino3000/items/b9a7761dad1f352ec723
  12. 12. チーム内での共有 • Googleスプレッドシート + GAS • クエリをスケジュール実行してグラフを作ったり • クエリをセルに入力して実行できるシートをチー ムで共有 • GASいいよねー、みたいな話はいろんな人がしてる • gcp ja night #28, #29 の資料を見ていただければ
  13. 13. re:dash • http://redash.io/ • KPI可視化やクエリ1発で終るような調べ物には便利 • 1分で使い始められる • EC2, GCEのイメージが用意されている • ちゃんと使うなら • TLS化 + Googleアカウント認証のみにする
  14. 14. 150万溶かしたとかそういう話 読めばいいと思う
  15. 15. Cloud Datalab https://cloud.google.com/datalab/?hl=ja BETA
  16. 16. About Cloud Datalab • Jupyter Notebookベースの対話環境をGCP 上に立てられる • AppEngine + Managed VM 上で動作 • Github上で開発が進んでいる • https://github.com/ GoogleCloudPlatform/datalab
  17. 17. 対話環境を何に使っているか • データ調査・分析 • 実験 • 本に書いてあるコードを実行 • メモ • 大抵の言語は動く • https://github.com/ipython/ipython/wiki/ IPython-kernels-for-other-languages
  18. 18. データ調査の説明 クエリ 結果
  19. 19. 本のコードを再現
  20. 20. 2014年∼ • 共用のIPython Notebook (旧Jupyter) Server • 毎日再起動 (生きているsessionを全クリア) • よくノートが壊れて動かなくなる • ユーザーアカウントという概念は無し
  21. 21. 2015年∼ • 各自Jupyter Notebook on ローカルマシン • Githubにノートをpushして共有 • BigQueryへのアクセス • BigQuery-Python, pandas.io.gbq
  22. 22. 課題 • 実験ノートをもっと気軽に共有したい • 良い感じのアクセス制限をかけたい • 共用Jupyter Notebook Serverの面倒はみた くない
  23. 23. 2016年∼ • Cloud Datalab上でノートをコミットして共有 • 特に再起動とかしていない • 再起動したい時はvmにsshしてdocker restart • BigQueryへのアクセスは • import gcp.bigquery as bq
  24. 24. Cost • VMインスタンスを起動している時間 • N1 Standard VCPU1 だと3,300円/月 程度
  25. 25. • Good • 30秒で使いはじめられる • GCPプロジェクトのアカウントが使える • ノートの共有が前よりは楽にできる • カスタマイズ欲が無くなる • Bad • 他人の変更を取りこむのが割と面倒 • 数式がまだ使えない (masterブランチでは修正済み) • 既存ノートが動かなかったりする
  26. 26. Tips • Charting APIsあたりを全て覚えなくても良い • 今まで通りmatplotlib, Seaborn を使えばいい • 地図へのプロットはCharting APIが楽 • 環境構築はノートにしておく • インスタンスタイプの変更はLaunchページのクエリパラメー タで • http://datalab.cloud.google.com? cpu=2&memorygb=7.5&diskgb=200
  27. 27. まとめ • 実験ノートの共有をうまくやりたかった • Cloud Datalabの将来に期待 • GCPのアカウント権限が使えるのは楽 • BQ本は読んでおこう

×