Googleが社内データ分析基盤を一般提供したサービス、GigQuery(ビッグクエリ)の基礎から応用までを学びます。
■本書について
Google BigQuery(ビッグクエリ)は、Googleが自社で保有している膨大なデータを効率的かつ高速に分析するために構築した社内データ分析基盤を一般提供したサービスです。その内部ではBorg、Colossus、Jupiter、DremelなどのGoogle独自のコアテクノロジーが活用されており、実行されたクエリはGoogleの保有する膨大なインフラリソース上で瞬時に並列・分散処理されます。
その処理速度は1000億行のデータセットに対してインタラクティブに数十秒で結果を返してしまう程です。
本書では、社内に蓄積されているビッグデータを、新人さんがBigQueryを駆使してその優れた機能に感動しながらも悪戦苦闘し、分析基盤として利用していくサンプルケースを通して、BigQueryの利用方法を具体的に解説していきます。まずは気を楽にして物語を楽しみながら、登場人物達と共にBigQueryや関連するGCPサービスについて理解を深めていただければと思います。
■執筆者紹介
・工藤 雅人(くどう まさと)、担当:前書き、後書き、第1章「人物紹介とプロジェクト概要」、会話文他。2児の父。フルスタックエンジニア(もどき)
・鈴木 達彦(すずき たつひこ)、担当:第2章「BigQueryによるデータ分析」、第3章「BigQueryの基本と特徴」、第6章「ストリーミング処理でのデータ収集」他。インフラからアプリまで幅広くやるエンジニア
・上野山 顕(うえのやま あきら)、担当:第3章「BigQueryの基本と特徴」、第4章「パフォーマンスと費用」。うさぎ好き。BigQuery信仰エンジニア
・高木 智春(たかぎ ともはる)、担当:第5章「データ収集の自動化」。犬好き。下町を愛するエンジニア
■Chapter 1 人物紹介とプロジェクト概要
1.1 ビッグデータ活用プロジェクト始動!
1.2 登場人物紹介
1.3 データ分析の要件を決める
■Chapter 2 BigQueryによるデータ分析
2.1 BigQueryを使ってみよう
2.1.1 BigQueryのコンソール画面
2.1.2 クエリ可能なデータ量の上限を設定
2.2 データの読み込み
2.2.1 データの準備
2.2.2 データセットの作成
2.2.3 テーブルの作成
2.3 データの加工
2.4 データの可視化
2.4.1 データポータルとの接続
2.4.2 Googleスプレッドシートとの接続
2.5 その他のデータの読み込み方法
2.5.1 bqコマンド
2.5.2 Google Cloud Storage
2.5.3 複数ファイルのデータ読み込み
2.5.4 Googleスプレッドシートをクエリする
■Chapter 3 BigQueryの基本と特徴
3.1 BigQueryの仕組み
3.2 BigQueryのアーキテクチャ
3.3 カラム指向ストレージ
3.4 ツリーアーキテクチャ
3.5 データ型
3.6 パーティションとクラスタ
3.6.1 パーティション分割テーブル
3.6.2 クラスタ化テーブル
3.7 ジョブ
3.8 ビュー
■Chapter 4 パフォーマンスと費用
4.1 BigQueryのチューニング
4.1.1 費用・パフォーマンスチューニング共通
4.1.2 費用チューニング
4.1.3 パフォーマンスチューニング
4.1.4 BigQuery のスロット
4.2 BigQueryをより深く知る
4.2.1 bq query コマンドのオプション
4.2.2 BigQuery の割り当て
4.2.3 BigQueryのセキュリティ
■Chapter 5 データ収集の自動化
5.1 Data Warehouseの構築
5.1.1 DWH構築の意義
5.1.2 アーキテクチャの決定
5.2 データソースとGCPの連携
5.2.1 データソースからGCSへの連携
5.2.2 GCSからBigQueryへ
5.2.3 BigQuery Data Transfer Service
5.3 BigQuery内でデータをTransformする
5.3.1 ファイルフォーマット
5.3.2 Schema
5.3.3 クエリ
5.3.4 クレンジング
5.3.5 履歴テーブル作成
5.3.6 分析目的に沿ったテーブルの作成
5.4 ワークフローのオーケストレーション
5.4.1 Cloud Composerとは?
5.4.2 簡単なサンプルを動かして理解する
5.4.3 'Operation'を実現するOperator
5.4.4 DWH構築のためのDAGを作ろう
5.4.5 モニタリング
5.4.6 Composerのチューニング
■Chapter 6 ストリーミング処理でのデータ収集
6.1 ストリーミング要件の確認
6.2 アーキテクチャの検討
6.2.1 マスタとの結合をBigQueryで行うパターン
6.2.2 マスタとの結合をDataflowで行うパターン
6.2.3 アーキテクチャの比較
6.3 ストリーミングパイプラインの実装
6.3.1 リアルタイムデータのデータ収集
6.3.2 Dataflow SQLの実装
6.3.3 結果の確認