Top Banner
Cloud DatalabBigQuery使ったアドホックデータ解析 gcp ja night #31 2016-01-21 Takashi Nishibayashi (@hagino3000) 1
32

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

Apr 16, 2017

Download

Technology

hagino 3000
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cloud DatalabとBigQueryを使ったアドホックデータ解析

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

gcp ja night #31 2016-01-21 Takashi Nishibayashi (@hagino3000)

1

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

お前誰よID: hagino3000 Takashi Nishibayashi !• ネット広告配信最適化エンジニア • Zucks AdNetworkデータ解析班 • 自転車

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

自転車

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

最適化処理や機械学習を実装してアプリケーションに組みこむ !

実験・モデリング・実装 (多腕バンディットアルゴリズム/機械学習/最適化)

前処理 ログ収集

人間の意思決定をサポートするためのデータ分析 施策の効果検証・検定

主にこっち

Zucks AdNetworkにおける データ解析チームの仕事

We are hiring

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

• 広告リクエストに対して最も適切な広告を返す

• CTR (Click through Rate) の予測 • p(Click | Request, 広告枠, 広告キャンペーン)

• CVR (Conversion Rate) の予測

• p(Conversion | 広告枠, 広告キャンペーン)

• 最適な入札価格の決定

• 広告枠ごとのインプレッション(リクエスト)予測

• 異常枠の検知

• 広告配信システムのログを活用できる状態にする

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

今日の話• 広告配信システムのログをいい感じにBigQueryに流しこんでる

• AWS to GCP

• BigQueryに入れたデータを使ったアドホックな解析にCloud Datalabを使いはじめた

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

前処理

広告配信 サーバー

広告計測 サーバー

ログ

広告計測 サーバー

広告配信 サーバー

ログ

S3前処理

SNS トピック

SQS キュー

GCP

Cloud Storage

ログ

BigQuery

テーブル

テーブル

テーブル

配信システムAWS

通知

実験環境

予測 処理

予測 データ

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

BigQuery

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

Why BigQuery• Hadoopクラスタ持ってない

• まずはAdHocにデータを利用できる環境が必要

• 利用人数は数人

• 300GB/day 突っこめれば良い

• マネージドサービスなので運用が楽

• 安い (1TByteでStorage費用が20$/Month)

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

Data Load

• 配信システムのログがS3に配置されるので、S3からの通知をトリガーにGCSにコピー

• 1時間に1回ファイルをGCS上でまとめてBatch Load

• Stream Insertはお金がかかるので、速く欲しいログだけ対応する方針

• 今作るならEmbulkやCloud Dataflowを使うかも

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

Job管理• Luigiを使っている

• タスク間の依存性定義 (ロード → 前処理 → 集計 → xxx)

• 入出力対象の抽象化 (S3, GCS, BigQuery, Local File, etc.)

• リトライ/エラー通知

• モニタリング用UI

• 処理は全てPythonで記述

• http://qiita.com/hagino3000/items/b9a7761dad1f352ec723

Page 13: Cloud DatalabとBigQueryを使ったアドホックデータ解析
Page 14: Cloud DatalabとBigQueryを使ったアドホックデータ解析
Page 15: Cloud DatalabとBigQueryを使ったアドホックデータ解析
Page 16: Cloud DatalabとBigQueryを使ったアドホックデータ解析

チーム内での共有• Googleスプレッドシート + GAS

• クエリをスケジュール実行してグラフを作ったり

• クエリをセルに入力して実行できるシートをチームで共有

• GASいいよねー、みたいな話はいろんな人がしてる

• gcp ja night #28, #29 の資料を見ていただければ

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

re:dash• http://redash.io/

• KPI可視化やクエリ1発で終るような調べ物には便利

• 1分で使い始められる

• EC2, GCEのイメージが用意されている

• ちゃんと使うなら • TLS化 + Googleアカウント認証のみにする

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

150万溶かしたとかそういう話

読めばいいと思う

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

Cloud Datalabhttps://cloud.google.com/datalab/?hl=ja

BETA

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

About Cloud Datalab• Jupyter Notebookベースの対話環境をGCP上に立てられる

• AppEngine + Managed VM 上で動作

• Github上で開発が進んでいる

• https://github.com/GoogleCloudPlatform/datalab

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

対話環境を何に使っているか• データ調査・分析

• 実験

• 本に書いてあるコードを実行

• メモ

• 大抵の言語は動く

• https://github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages

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

データ調査の説明

クエリ

結果

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

本のコードを再現

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

2014年~

• 共用のIPython Notebook (旧Jupyter) Server

• 毎日再起動 (生きているsessionを全クリア)

• よくノートが壊れて動かなくなる

• ユーザーアカウントという概念は無し

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

2015年~

• 各自Jupyter Notebook on ローカルマシン

• Githubにノートをpushして共有

• BigQueryへのアクセス

• BigQuery-Python, pandas.io.gbq

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

課題

• 実験ノートをもっと気軽に共有したい

• 良い感じのアクセス制限をかけたい

• 共用Jupyter Notebook Serverの面倒はみたくない

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

2016年~• Cloud Datalab上でノートをコミットして共有

• 特に再起動とかしていない

• 再起動したい時はvmにsshしてdocker restart

• BigQueryへのアクセスは

• import gcp.bigquery as bq

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

Cost

• VMインスタンスを起動している時間

• N1 Standard VCPU1 だと3,300円/月 程度

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

• Good

• 30秒で使いはじめられる • GCPプロジェクトのアカウントが使える • ノートの共有が前よりは楽にできる • カスタマイズ欲が無くなる

• Bad • 他人の変更を取りこむのが割と面倒 • 数式がまだ使えない (masterブランチでは修正済み) • 既存ノートが動かなかったりする

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

Tips• Charting APIsあたりを全て覚えなくても良い

• 今まで通りmatplotlib, Seaborn を使えばいい

• 地図へのプロットはCharting APIが楽

• 環境構築はノートにしておく

• インスタンスタイプの変更はLaunchページのクエリパラメータで

• http://datalab.cloud.google.com?cpu=2&memorygb=7.5&diskgb=200

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

まとめ

• 実験ノートの共有をうまくやりたかった

• Cloud Datalabの将来に期待

• GCPのアカウント権限が使えるのは楽

• BQ本は読んでおこう