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.

BigQuery ハンズオン

1,066 views

Published on

ハンズオンで使った資料っす。

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

BigQuery ハンズオン

  1. 1. BigQuery ハンズオン なかむら さとる
  2. 2. 自己紹介 ● 名前: なかむら さとる ● 経歴: (元?現?)某小売系のインフラ・システム運用エンジニア ● その他: Google Developers Experts(Cloud)
  3. 3. Agenda ● BigQueryの仕組み ○ サーバレス・サービスモデル ○ 独自のストレージエンジン ○ Dremelというクエリエンジン ○ 独立したストレージとネットワーク ○ 費用について ○ IAMと認証、監査ログ
  4. 4. BigQueryの仕組み ■The 12 Components of Google BigQuery https://medium.com/google-cloud/the-12- components-of-google-bigquery- c2b49829a7c7 ■重要なコンポーネント ・Dremel(クエリエンジン) ・Colossus(ストレージエンジン) ・Jupiter(ネットワーク) ・Borg(大規模コンテナ・クラスタ管理)
  5. 5. サーバレス・サービスモデル ● 完全なサーバレスモデルである ○ ハードウェア、機能アップデートの管理はすべてGoogleが行う ○ VMやCPU、メモリ、ディスクサイズなどの設定も不要 ○ 数秒で数十万コアを利用することが出来る ○ 利用者はデータを入れること、抽出することだけを考える
  6. 6. 独自のストレージエンジン ● Colossus ○ GFS(Google File System)の後継 ○ データセンター規模でのファイルシステム ○ GmailやDocsなどと同じインフラ ○ 同じデータを3箇所のデータセンターにレプリケーション ○ データのシャーディング ○ 暗号化 ● Capacitor
  7. 7. Dremelというクエリエンジン ● 2015年にアップデート ● 最初はBigQuery独自のSQLだけでしたが、Standard-SQLにも対応 (※今後はStandard-SQLを利用、オプティマイザを実装) ● シャッフルやソートはインメモリで実施 ● Borgで管理 ● いつでも元気にフルスキャン
  8. 8. 独立したストレージとネットワーク ● Jupiterネットワーク ○ Googleが独自に開発したネットワーク(H/W,S/Wともに) ○ 1Pb/secの帯域 ○ 謎技術。。。。。(SDNであることは間違いない) ○ ストレージはネットワークで接続
  9. 9. 費用について ● クエリ課金 ○ クエリ毎に利用したカラムに対するデータ容量で課金 ○ 月額固定料金 ● ストレージ課金 ○ データ容量に対して課金 ○ 90日以上変更の無いテーブルはデータ容量に対しての課金が半額 ● ストリーミングインサート ○ バッチでInsertするのではなく、1行ずつ個別にいれるデータ量にたいして
  10. 10. IAMと認証、監査ログ ● Google CloudのIAMと権限の連携(Read/Write/Admin) ● DataSet単位での権限付け ● 認証はO-Authとサービスアカウント ● すべての操作を監査ログで保存し、BigQueryへExportも可能
  11. 11. 制限事項 ● https://cloud.google.com/bigquery/quota-policy?hl=ja
  12. 12. BigQueryハンズオン https://cloud.google.com/bigquery/quickstart- web-ui?hl=ja https://goo.gl/dYPH6u
  13. 13. クエリ解説 ● https://goo.gl/9Mm8rt
  14. 14. 解説:クエリその1 ● クエリの結果データが多い場合はエラーとなります。 →結果データをテーブルに保存することで回避出来ます。 →エクスポートしたい場合は、そのテーブルをGCSに書き出すことが出来 ます。 ● 大量のクエリ結果に対するORDER BYは避ける
  15. 15. 解説:クエリその2 ● 文字が大文字、小文字が混ざっているのがわかります。 これをすべて大文字に変換してGROUP BYしてみましょう。 また、ここでスキャンしたデータ量もメモしておいてください。
  16. 16. 解説:クエリその3 ● CPUを使用する小文字→大文字に変換するような処理も無課金 ● COUNT(*)などは課金対象外
  17. 17. 解説:クエリその4 ● WHERE句でデータの範囲を絞っているように見えるが、むしろ新たな列をス キャンすることになった。 →データの範囲を絞るのではなく、一度取ってきたデータをフィルタする役割 になっている。
  18. 18. 解説:クエリその5 ● サブクエリ内にクエリ結果に影響のないカラムが含まれているが、クエリオプ ティマイザによって、自動的にスキャン範囲から除外される。 ● また、スキャン範囲から除外させることによって、課金もされない。
  19. 19. 解説:クエリその6 ● テーブルパーティションとテーブルワイルドカードを利用することで、UNION と同じ状態を作ることが出来る。 ● テーブルを日付毎に作成し、クエリの範囲を狭めることが出来る。
  20. 20. 解説:クエリその7 ● JOINをする場合は、基本的にスキャンの範囲は足し算となる。
  21. 21. DataStudioハンズオン ● https://datastudio.google.com
  22. 22. DataStudioとは ● 簡単に言うと、スライドに数値を埋め込むことが出来るツール ● リアルタイムにデータを取得することが出来たり、『ある程度』利用者が 自由にデータを出すことが出来る ● BIツールの超簡易版
  23. 23. おわり じゃない。 わんもあしんぐ
  24. 24. Dataprepベータ開始!(おめでと) ● Dataprepとは? ○ 使いたいデータを準備するGUIツール(ここ重要) ■ フォーマット変換したり ■ カラムを結合、分割したり ■ CSV→JSONにしたり ■ 計算させたカラムを作ったり ■ ぐりぐりしたデータをBigQueryに入れたり
  25. 25. やってみよう! 資料がおいついていない。。。。。

×