radioc@?

レディオキャットハテナ

【勉強会メモ】GCPUG in Osaka #4【GCP】~ BigQuery編 ~

gcpug-osaka.connpass.com

日時:2017/09/23(土) 13:00 〜 17:0

場所:Aiming 大阪スタジオ

BigQuery ハンズオン ~ 実際に動かしてみよう!~

www.slideshare.net

BigQueryの仕組み

medium.com

サーバレスサービスモデル

  • VM、CUP、メモリディスクサイズなどの設定不要
  • データを入れる出すだけで他に気にする必要がない

Colossus

Capacitor

  • カラムナーストレージフォーマット
  • データを行ではなく列で持つ

Poseidon

  • 様々なファイルフォーマット…CSVJSON、Avro、DataStore
  • クエリのインポート/エクスポートの分離

Dremel

  • クエリエンジン
  • Standard-SQLに対応(今後はStandard-SQLを利用)
  • シャッフルやソートはインメモリで実施
  • いつも元気にフルスキャン

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 チェックを外す
  • UPPERCOUNT などは無課金
  • WHERE 句を指定する新たな列をスキャンするためむしろ課金対象のデータ量が増える
  • クエリ結果に影響のない絡むはクエリオプティマイザによって自動的にスキャン範囲から除外されることもある
  • UNIONの代わりにテーブルワイルドカードTABLE_NAME_* のような指定が可能
  • JOINのスキャン範囲は基本的に足し算

補足

  • 来年の春頃BigQueryのコンソールが変わる予定

Data Studio

  • 簡易的なBIツール
  • PPTのようなスライドに数値やレポートを埋め込める
  • Google Analyticsのチームが開発しているのでAnalytics系のデータソースが多い
  • 無料で使える(BigQuery分は課金)
  • 共有できる
    • Webページに埋め込み可能(iframeに対応)

ハンズオン

  • BigQuery > カスタムクエリでStandard-SQLの結果をレポートに追加できる
  • 挿入 > フィルタオプション
    • スタイル > エキスパンドのチェックを外す
  • 挿入 > 期間
    • デフォルトの期間を「過去30日間」などにできる
  • 別のデータソースのグラフを追加できる
    • 例)[Sample]Google Analytics Data
    • フィルタは別々のグラフを同時に期間指定でフィルタリングできる

f:id:radiocat:20170923160608p:plain

f:id:radiocat:20170923160324p:plain

Dataprepベータ版

想定される使い方は、機械学習などにデータを食わせる前にBigQueryのデータを学習させやすくするために加工するような用途。

  • できること
    • フォーマット変換
    • カラムの結合、分割
    • CSVJSON
    • 計算させたカラムの作成
    • 編集してBigQueryに入れる
  • 仕組み
    • 裏はDataflowがうごいている
      • Dataflowのプログラムをかかなくてもいい
    • 課金はDataflowとGCSだけ

qiita.com

LTセッション

BigQueryで遊ぼうとしてつまづいた話

発表者: YukiNakata さん

自社でBigQueryを使ってPoCサービスを作ったが一番大変だったのはDB素材を集めることだったという話。

オープンデータの活用

大阪府のオープンデータ

大阪府/大阪府オープンデータサイト

  • 水道の普及状況
  • 道の駅一覧
  • 姉妹都市
  • 府立高校受験結果

問題点

  • フォーマットがバラバラ…
  • JSONXMLどころかCSVですらない

アメリカのオープンデータ

Datasets - Data.gov

⇒実用的な形式でデータが揃っている

データの収集

様々なデータを取得しBigQueryへ投入

かけた時間

  • データを探す…55%
  • データ加工…27%
  • BQにロード…9%
  • BQの学習…残り

⇒結局JSONCSVに時間がかかる

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のようなデータを扱う周辺サービスが充実してくると他の用途での利用も拡大しそうだ。ペタバイトクラスの大量データでも数秒で集計して取得できたりするので、今後はその大量データをいかに簡単に出し入れできるかが大事になってくるだろう。スキャンしたデータ量で課金されるので手軽とはいえ適当にクエリを使っていると恐ろしい額の請求が発生しそうなので、その点は注意が必要。