BigQueryの話
それでもBigQueryを使い続ける理由
BigQueryで150万円使ったときの話
それでもBigQueryを使い続ける理由
発表者について(現在)
SENSY株式会社 所属 シニアエンジニア
「感性学習」「パーソナル人工知能」というコンセプトの製品の開発
BigQuery、Cloud Composer、Cloud AutoML… など、GCPを利用した
データ処理や製品開発など
(...今日はこの話はしません)
発表者について(ゲーム会社時代)
ゲーム会社 所属
技術基盤チームでゲームの基盤の作成、ログなどのデータ分析など
BigQueryを使い始めた頃、とあるQiitaの投稿 がちょっと話題に…
BigQuery
BigQueryで
150万円
溶かした人の顔
当時のBigQuery界隈
当時のBigQuery界隈
● 世間ではRedshiftと比較されることが多かった印象
● 社内ではRedshift・Elasticsearch・MongoDB・BigQueryなどを使っていた
● パーティショニングができなかったので日毎のテーブルを作るのが一つの方法
だった
何があったのか
経緯 (1)
大量のゲームログの入っているテーブル
を分割しようとした
テーブルは月ごとに分かれていて、 各ロ
グにはゲームのアクションなどに応じたタ
グが振られていた
それをタグごと・日ごとのテーブルに分割
しようとした
time tag message
2015-01-01 00:00:00 quest {}
2015-01-01 00:00:00 event {}
2015-01-02 00:00:00 event {}
time tag message
2015-01-01 00:00:00 quest {}
time tag message
2015-01-01 00:00:00 event {}
time tag message
2015-01-02 00:00:00 event {}
SELECT
tag,
time,
message
FROM
<old table>
WHERE
tag = <tag name>
AND time BETWEEN <start time>
AND <end time>
経緯 (2)
月ごとのテーブルから日付とタグでフィル
ターを掛けるクエリを実行し、それを別
テーブルに保存した
テーブルには約60種類のタグ、対象の月
は数ヶ月分、1テーブルは約300GB
つまり約60✕30(日)✕月数の数だけクエ
リを実行することになり、それには毎回
300GB費やす
300
GB
60
種類
数
ヶ月
30
日✕ ✕ ✕
=
PB
(ペタバイト)
150万円
※ある程度想定できていることであ
り、その他の研究開発も含んでい
ます。
※記事はネタとしてのキャッチーさ
を狙っていました。
ちなみに…
影響
社内のディレクター
(SQLが使える人)
社内
SNS
各種勉強会
社外 Google
今日の内容の対象
技術者はBigQueryについてよく理解して
いる人が多いと思うので、
過剰に怖がってしまった意思決定者に説
明できるような内容をお話できればと思
います。
社内
ディレクター
「クエリを実行するとお金がかか
る!?」と、必要以上に怖がってしまう
人がいた。
過剰に怖がらなくても良い
● BIツールや検索ツールを使っている
○ 重いクエリを何度も回してしまう確率を少なくできる
○ 必要なクエリが限られるのでキャッシュが効く
○ 余計な期間や列を検索しない
● 検索よりもストレージにかかる料金のほうが高かった
○ BIツールに組み込んだり、
○ ディレクターやデータアナリストが分析で使ったりしていたにもかかわらず
● `for` 文で回すようなことをしないかぎり問題になるような量にはならない
社外
各種勉強会
SNS
各種勉強会では引用されることも多
かった。費用についての意識が広まっ
た(?)
SNSでは中身読んでいない人も結構
いた印象
料金へのイメージは2分している?
● より理解している人は安いイメージ?
● あまり使ったことがない人は高いイメージ?
実運用への理解
● 150万円使うだけのデータを集めるのは多くの個人や企業にとって難しい
● 単発のクエリでは問題になるレベルにはならない
● パーティショニングがあるので今はこのような操作をする必要がない(記事書い
た直後に発表)
● 料金には上限を設定できる(記事書いた直後に発表)
Google
中の人
お世話になっている日本法人から連
絡があった。
怒られるかと思ったが…
どうやらBigQueryのプロダクトマネージャーがQiitaのことを知って話をしたがっている
らしい。
六本木のGoogleに行って、テレビ会議。
アドバイスもらったり要望聞いてもらったりした。
上限設定を早めに公開した(と聞いた)
!
Googleがすごかった
ユーザーに寄り添っている
● 今回の件のようなヒアリング
● StackOverflowなど、関連サイトもチェックしているらしい
● 酒ゲーのような勉強会もユーザーと一緒に行っている
いいサービスを作ろうとしていると感じる
その後
その後
当時の会社でも引き続きBigQueryをデータ分析のメインとして使用
むしろ利用箇所は増やしていた
現在の会社でも、特別な理由がない限りBigQueryにデータを集約するようにしている
BigQueryを手放せない理由
1. 安い
?
料金
(asia-northeast1)
アクティブ ストレージ $0.023 per GB
長期保存 $0.016 per GB
ストリーミング挿入 $0.012 per 200 MB
クエリ(オンデマンド) $8.55 per TB
https://cloud.google.com/bigquery/pricing?hl=ja
無料枠
● BigQueryへのデータのバッチ読み込み
● データのエクスポート
● 削除
○ テーブル
○ ビュー
○ パーティション
○ 関数
○ データセット
● メタデータの操作
● キャッシュされたクエリ
● エラーになるクエリ
● 1ヶ月あたりの最初の 10GBのストレージ
● 毎月最初の1TBのクエリ処理データ
https://cloud.google.com/blog/products/data-analytics/cost-opt
imization-best-practices-for-bigquery
比較サービスはあまりない
● 多くのケースで、BigQueryは無料で使える可能性がある
● 保存容量や検索速度と、安さの両立は他サービスでは難しそう
○ 自分でインスタンスを建てるようなサービスで同じ機能を実現するのに相当な台数が必要
● 比較対象はあまりない
● 長期間更新のないテーブルはストレージ料金も安くなる
2. 便利
便利 (1)
● BIツールなどたくさんのツールが対応している
● APIを使っていろいろなところから使える
● ライブラリも豊富
● Googleサービスとの連携
○ スプレッドシート
○ Google Analytics
○ その他
● クエリの共有も容易(URLで共有できる)
引用: https://cloud.google.com/blog/ja/products/gcp/connecting-bigquery-and-google-sheets-to-help-with-hefty-data-analysis
便利 (2)
● 標準SQLが使えて、プログラマー以外も分析ができる
● 権限がある限り、プロジェクトをまたいだ検索ができる
● 多少非効率なクエリを書いても、十分に早く結果が返ってくる
権限のある人ならプロジェクトをまたいでJoinもできる
3. 費用管理
費用管理
BigQueryに限らないが、Google Cloud Platform は「プロジェクト」という単位があ
り、プロジェクトごとに費用がわかるので、ビジネス上の費用管理がしやすい。
同時にプロジェクトごとに権限管理もできるので、責任の範囲もコントロールできる。
権限がある限りプロジェクトをまたいでジョブ(クエリ)を実行することができる。
※ ジョブ(クエリ)はプロジェクトに紐づく
プロジェクトごとの費用管理
安い 便利
費用管理
しやすい
BigQuery
十分に安いです
必要以上に恐れなくても大丈夫
使ってみるだけなら
無料枠で十分
デモ
BigQuery
十分に安いです
必要以上に恐れなくても大丈夫
本(今はちょっと古いのでWebの記事を読んだほうがいいかも)
本(来月頃に出る)
ありがとうございました
itkr.github.io

BigQuery で 150万円 使ったときの話