【勉強会メモ】GCPUG in Osaka #4【GCP】~ BigQuery編 ~
日時:2017/09/23(土) 13:00 〜 17:0
場所:Aiming 大阪スタジオ
BigQuery ハンズオン ~ 実際に動かしてみよう!~
BigQueryの仕組み
サーバレスサービスモデル
- VM、CUP、メモリディスクサイズなどの設定不要
- データを入れる出すだけで他に気にする必要がない
Colossus
- 独自のストレージエンジン
- データセンター規模のファイルシステム
- Googleのサービス(GmailやGoogle Docs)全体で使用
- 同じデータを3箇所のデータセンターにレプリケーション
- シャーディング&暗号化
Capacitor
- カラムナーストレージフォーマット
- データを行ではなく列で持つ
Poseidon
Dremel
Borgで管理
- クエリも同時に3箇所に投げられて早かったものが採用される
Jupiter
- 独立したストレージとネットワーク
費用
クエリ課金
- クエリ毎に利用した絡むに対するデータ容量で課金
- 月額固定料金
ストレージ課金
- データ容量に対して課金
- 90日以上変更の内テーブルは課金が半額
ストリーミングインサート
- 1行ずつ個別に入れるデータ量に対して課金
IAMと認証、監査ログ
- Google CloudのIAMと権限の連携
- DataSet単位での権限付け
- 認証はO-Authとサービスアカウント
- 全ての操作を監査ログで保持しBigQueryへExportも可能
制限事項
割り当てポリシー | BigQuery のドキュメント | Google Cloud Platform
ハンズオン
ウェブ UI を使用したクイックスタート | BigQuery のドキュメント | Google Cloud Platform
クエリ解説
select * ~
は危険⇒やっちゃダメ- 大量データの場合はエラー
- テーブルにエクスポートできる
- 大量データのORDER BYは避ける
- Standard-SQLを使う場合はQuery Optionで
Use Legacy SQL
チェックを外す UPPER
やCOUNT
などは無課金WHERE
句を指定する新たな列をスキャンするためむしろ課金対象のデータ量が増える- クエリ結果に影響のない絡むはクエリオプティマイザによって自動的にスキャン範囲から除外されることもある
- UNIONの代わりにテーブルワイルドカードで
TABLE_NAME_*
のような指定が可能 - JOINのスキャン範囲は基本的に足し算
補足
- 来年の春頃BigQueryのコンソールが変わる予定
Data Studio
- 簡易的なBIツール
- PPTのようなスライドに数値やレポートを埋め込める
- Google Analyticsのチームが開発しているのでAnalytics系のデータソースが多い
- 無料で使える(BigQuery分は課金)
- 共有できる
- Webページに埋め込み可能(iframeに対応)
ハンズオン
- BigQuery > カスタムクエリでStandard-SQLの結果をレポートに追加できる
- 挿入 > フィルタオプション
- スタイル > エキスパンドのチェックを外す
- 挿入 > 期間
- デフォルトの期間を「過去30日間」などにできる
- 別のデータソースのグラフを追加できる
- 例)[Sample]Google Analytics Data
- フィルタは別々のグラフを同時に期間指定でフィルタリングできる
Dataprepベータ版
想定される使い方は、機械学習などにデータを食わせる前にBigQueryのデータを学習させやすくするために加工するような用途。
- できること
- 仕組み
- 裏はDataflowがうごいている
- Dataflowのプログラムをかかなくてもいい
- 課金はDataflowとGCSだけ
- 裏はDataflowがうごいている
LTセッション
BigQueryで遊ぼうとしてつまづいた話
発表者: YukiNakata さん
自社でBigQueryを使ってPoCサービスを作ったが一番大変だったのはDB素材を集めることだったという話。
オープンデータの活用
大阪府のオープンデータ
- 水道の普及状況
- 道の駅一覧
- 姉妹都市
- 府立高校受験結果
問題点
アメリカのオープンデータ
⇒実用的な形式でデータが揃っている
データの収集
様々なデータを取得しBigQueryへ投入
かけた時間
- データを探す…55%
- データ加工…27%
- BQにロード…9%
- BQの学習…残り
BigQueryを無料で使おう
発表者:吉永真次さん
株の投資にBigQueryを活用している話。
- 証券会社から分析に必要なデータを取得
- 取得したデータはいったんスプレットシートへ保存
- BigQueryで集計
- 銘柄ごとの何時に買って何時に売ったらよいかを分析・予測
- 自動売買
モチベーション
- 毎日0.2%ぐらい儲かる
- 50万円投資で1,000円ぐらい
- 毎月4%儲かる⇒年間48%
- 50万円⇒10年で2,500万円
⇒という皮算用
⇒上記の仕組み以外の投資も含めると結果的にはトータルで負けているらしい… (システムの問題ではない)
補足
BigQueryの活用事例
- Web系サービスの人が多い
- Analyticsとの組み合わせが便利
- GCP全体でみてもBigQueryだけ使っている人は多い
- AWSでEC2など使っていてもログデータの解析はBigQueryを使っているケースは多い
感想など
大量のデータを手軽にどのような手段にも扱えるのがBigQueryの特徴だと思うが、現状はビジネスシーンでの最大の利点はAnalyticsを扱えることなのではないかと思う。ただ、Standard-SQLがデフォルトになったり、DataStudioやDataprepのようなデータを扱う周辺サービスが充実してくると他の用途での利用も拡大しそうだ。ペタバイトクラスの大量データでも数秒で集計して取得できたりするので、今後はその大量データをいかに簡単に出し入れできるかが大事になってくるだろう。スキャンしたデータ量で課金されるので手軽とはいえ適当にクエリを使っていると恐ろしい額の請求が発生しそうなので、その点は注意が必要。