目次
第1章 データ基盤の概要
- 1.1 データ基盤に取り組む意義
- 1.2 データ基盤とは
- 1.2.1 データ基盤に対する要求の変遷
- 1.2.2 データ基盤の全体像
- 1.3 Google Cloud上で構築するデータ基盤
- 1.3.1 クラウド環境のメリット
- 1.3.2 Google Cloud上で提供されるデータ基盤に関連したプロダクト
- 1.4 まとめ
第2章 データウェアハウスの概念とBigQueryの利用方法
- 2.1 DWHとは
- 2.2 BigQueryのコンセプト
- 2.3 DWHとしてのBigQueryの基本操作
- 2.3.1 BigQueryサンドボックスの利用
- 2.3.2 BigQueryコンソールを理解する
- 2.3.3 クエリを実行する
- 2.3.4 クエリの応用
- 2.3.5 その他BigQuery Studioの便利な機能
- 2.4 BigQueryユーザー向けのクエリの最適化
- 2.4.1 必要なカラムのみ選択する
- 2.4.2 パーティション分割・クラスタ化を利用するクエリ
- 2.4.3 LIMIT句の利用
- 2.4.4 結合のコストを抑える
- 2.4.5 クエリ結果のキャッシュと明示的なテーブル指定による永続化を利用する
- 2.4.6 クエリプランの可視化
- 2.5 BigQueryの内部アーキテクチャを理解する
- 2.5.1 BigQueryの内部構造
- 2.6 まとめ
- Column データアナリストを楽にするBigQueryの便利機能
- Column BigQueryとGoogleにおける大規模データ処理の歴史
第3章 データウェアハウスの構築
- 3.1 データウェアハウスに求められるさまざまな要件
- 3.2 BigQueryの課金モデル
- 3.2.1 BigQueryコンピューティングの料金
- 3.2.2 BigQueryストレージの課金モデル
- 3.3 BigQueryエディション
- 3.3.1 オートスケーリング
- 3.3.2 BigQueryエディションの選び方
- 3.4 高可用性,Disaster Recovery 計画
- 3.4.1 BigQuery可用性担保の仕組み
- 3.4.2 メンテナンス,クラスタアップデート
- 3.4.3 Disaster Recovery計画
- 3.5 用途別の影響隔離
- 3.5.1 スロットスケジューリングのしくみ
- 3.5.2 ワークロードの分離 - オンデマンド料金とBigQueryエディション
- 3.6 サイジング
- 3.6.1 サイジング - オンデマンド料金
- 3.6.2 サイジング - BigQueryエディション
- 3.6.3 ストレージのサイジング
- 3.7 目的環境別の影響隔離
- 3.8 テーブルを設計する
- 3.8.1 パーティション分割・クラスタ化
- 3.8.2 マテリアライズドビューの利用
- 3.8.3 検索インデックスの利用
- 3.8.4 主キーと外部キーの利用
- 3.9 テーブル設計以外のクエリ最適化
- 3.10 データの投入
- 3.10.1 バルクロード
- 3.10.2 外部データソース
- 3.11 バックアップとリストア
- 3.11.1 BigQueryにおけるデータリストア - タイムトラベル機能
- 3.11.2 BigQueryにおけるデータリストア - テーブルスナップショット
- 3.12 BigQueryにおけるトランザクションとDMLの最適化
- 3.13 DMLの最適化
- 3.14 外部接続の最適化 - Storage APIの利用とBI Engineの利用
- 3.14.1 Notebookの場合やHadoop/Sparkコネクタの場合
- 3.14.2 BIツールの場合
- 3.15 データマートジョブの設計最適化
- 3.15.1 データマート作成クエリの最適化
- 3.15.2 データマート作成ジョブの流れの最適化
- 3.16 BigQueryのモニタリング
- 3.17 環境の削除
- 3.18 まとめ
- Column データを効率的,安全に共有する
第4章 レイクハウスの構築
- 4.1 レイクハウスの概要
- 4.1.1 データウェアハウスとデータレイク
- 4.1.2 データウェアハウスとデータレイクの課題
- 4.1.3 レイクハウスの登場と利点
- 4.2 Google Cloudでのレイクハウスアーキテクチャ
- 4.2.1 ストレージ層
- 4.2.2 データ処理エンジン層
- 4.2.3 データガバナンス層
- 4.3 BigLake
- 4.3.1 BigLakeの機能概要
- 4.3.2 BigLakeテーブルの作成と利用
- 4.3.3 オブジェクトテーブル - レイクのオブジェクトをクエリする
- 4.4 Dataplex
- 4.4.1 データカタログ
- 4.4.2 ドメインに基づくデータ管理とセキュリティ
- 4.4.3 データディスカバリ(データ検知)
- 4.4.4 データリネージ
- 4.4.5 データプロファイリング
- 4.4.6 データ品質チェック
- 4.5 環境の削除
- 4.6 まとめ
- Column マルチクラウドでのクラウドデータ基盤の利用
第5章 ETL/ELT処理 175
- 5.1 ETL/ELTとは
- 5.2 ETL/ELT処理を実施するサンプルシナリオ
- 5.3 サンプルシナリオ実施用の環境の構築
- 5.4 BigQueryでのELT
- 5.4.1 BigQueryの作業用テーブルの作成とユーザー行動ログのロード
- 5.4.2 テーブルの結合,集計とその結果の挿入
- 5.4.3 作業用テーブルの削除
- 5.5 BigQueryでのETL
- 5.5.1 dauテーブルの再作成
- 5.5.2 一時テーブルの作成とデータ集計結果の挿入
- 5.6 Dataformで開発,運用するELTパイプライン
- 5.6.1 Dataformの構成要素
- 5.6.2 環境準備
- 5.6.3 依存関係の確認とSQLXファイルの実行
- 5.6.4 SQLの定期実行方法
- 5.6.5 Dataform本番環境での推奨事項
- 5.7 DataflowでのETL
- 5.7.1 dauテーブルの再作成
- 5.7.2 環境準備とプログラムの作成
- 5.7.3 Dataflowのジョブの実行
- 5.7.4 Dataflowの本番環境で考慮する点
- 5.8 サンプルシナリオ実施用の環境の破棄
- 5.9 その他のETL/ELT処理の実施方法
- 5.10 ETLとELTの各手法の使い分け
- 5.11 まとめ
- Column Apache BeamとDataflowの関係は?
- Column データの前処理を行うための機能
第6章 ワークフロー管理とデータ統合 222
- 6.1 Google Cloudのワークフロー管理とデータ統合のためのサービス
- 6.2 Cloud Composerの特徴
- 6.2.1 Cloud Composer環境と構成コンポーネント
- 6.2.2 DAGとワークフロー管理
- 6.3 Cloud Composerでのワークフロー管理
- 6.3.1 プロジェクトの設定
- 6.3.2 DAGの作成
- 6.3.3 タスクの概要
- 6.3.4 DAGの登録と実行
- 6.3.5 本番環境の勘所
- 6.4 Cloud Data Fusionの特徴
- 6.4.1 ノード
- 6.5 Cloud Data Fusionでのワークフロー管理
- 6.5.1 プロジェクトのセットアップとインスタンスの作成
- 6.5.2 パイプライン作成の準備
- 6.5.3 パイプラインの作成
- 6.5.4 パイプラインの実行
- 6.5.5 スケジュールの設定
- 6.5.6 メタデータとデータリネージの確認
- 6.6 Cloud Composer,Cloud Data Fusion,Dataformの比較と使い分けのポイント
- 6.7 まとめ
- Column Google Cloudにおけるジョブオーケストレーションの選択肢
第7章 データ分析基盤におけるセキュリティとコスト管理の設計
- 7.1 Google Cloudのセキュリティサービス
- 7.2 Google Cloudのリソース構成とエンタープライズ向けの管理機能
- 7.3 IAMを利用したBigQueryのアクセス制御
- 7.3.1 プロジェクト単位のアクセス制御
- 7.3.2 データセット単位のアクセス制御
- 7.3.3 テーブル単位のアクセス制御
- 7.3.4 テーブル行単位のアクセス制御
- 7.3.5 テーブル列単位のアクセス制御
- 7.3.6 マスキングを使ったデータの保護
- 7.3.7 IAM Conditionsによる制御
- 7.3.8 承認済みビューの活用
- 7.3.9 承認済みデータセットの活用
- 7.3.10 承認済みルーティンの活用
- 7.4 IAMとAccess Control List(ACL)を利用したCloud Storageのアクセス制御
- 7.5 VPC Service Controls を利用したアクセス制御とデータ持ち出し防止
- 7.5.1 サービス境界でのGoogle Cloudリソースの分離
- 7.5.2 承認済みのCloud VPNまたはCloud Interconnectへのサービス境界の拡張
- 7.5.3 インターネットからのGoogle Cloudリソースへのアクセス制御
- 7.6 監査
- 7.6.1 Cloud Loggingでの監査
- 7.6.2 Cloud Loggingの利用方法
- 7.6.3 Cloud Loggingのエクスポート
- 7.6.4 Cloud Loggingの集約シンクによる監査対応
- 7.6.5 INFORMATION_SCHEMAでの監査
- 7.6.6 Cloud Asset Inventoryを利用したアセットの監査
- 7.7 Security Command Centerを利用したデータリスクの検知と自動修復
- 7.8 組織のポリシーサービスの適用
- 7.9 アクセス管理とコスト管理の設計
- 7.9.1 プロジェクト分割のベストプラクティス
- 7.9.2 BigQueryオンデマンド料金を使用した際のコスト制限
- 7.9.3 BigQueryエディションを使用した際のコスト制限
- 7.10 まとめ
- Column データ暗号化とデータ損失防止
第8章 BigQueryへのデータ集約
- 8.1 BigQueryへデータ集約を行うメリット
- 8.2 BigQueryへのデータ集約の方法
- 8.3 BigQuery Data Transfer Service(BigQuery DTS)
- 8.3.1 BigQuery DTSが対応しているデータソース
- 8.3.2 Amazon S3からBigQueryへのデータ転送
- 8.3.3 転送に利用するデータの配置
- 8.3.4 AWS上の設定
- 8.3.5 BigQuery DTSの設定
- 8.3.6 BigQuery DTSを利用するうえでのポイントや注意
- 8.3.7 転送設定の削除
- 8.4 CDCを利用したデータレプリケーション(Datastream for BigQuery)
- 8.4.1 PostgreSQLからBigQueryへのデータ転送
- 8.4.2 Datastream for BigQueryの設定
- 8.4.3 Datastream for BigQueryの開始
- 8.4.4 Datastreamの削除
- 8.5 BigQueryへのデータパイプライン構築
- 8.5.1 簡易データパイプラインの課題
- 8.5.2 データパイプライン構築のためのGoogle Cloud上のソリューション
- 8.6 サービス間連携によるBigQueryへのデータ連携
- 8.6.1 Googleアナリティクス 4からBigQueryへのデータエクスポート
- 8.6.2 FirebaseからBigQueryへのデータエクスポート
- 8.7 まとめ
- Column Firebaseを用いたデータ分析の活用方法
第9章 ビジネスインテリジェンス
- 9.1 BIとBIツール
- 9.1.1 BIとは
- 9.1.2 BIツールに求められる要件
- 9.1.3 Google Cloudで利用できるおもなBIツール
- 9.2 コネクテッドシート
- 9.2.1 データへのアクセス
- 9.2.2 ピボットテーブルでの分析
- 9.2.3 グラフの作成とダッシュボードとしての活用
- 9.2.4 データの更新
- 9.3 Looker Studio/Looker Studio Pro
- 9.3.1 データへのアクセス
- 9.3.2 グラフの作成
- 9.3.3 ダッシュボード
- 9.4 Looker
- 9.4.1 Looker(Google Cloudコア)
- 9.4.2 Lookerの機能概要
- 9.4.3 データへの接続設定
- 9.4.4 ビューとモデルの定義
- 9.4.5 Gitに変更をPush
- 9.4.6 Exploreとグラフの作成
- 9.4.7 ダッシュボードの作成
- 9.4.8 アクセス制御
- 9.4.9 アクションへつなげるLookerの機能
- 9.5 BIツールと親和性の高いBigQueryの機能
- 9.5.1 BigQuery BI Engine
- 9.5.2 マテリアライズドビュー
- 9.6 Gemini in Looker
- 9.7 まとめ
- Column リモート関数による拡張
第10章 リアルタイム分析
- 10.1 リアルタイム分析とユースケース
- 10.2 リアルタイム分析基盤に求められるもの
- 10.3 Google Cloudを利用したリアルタイム分析基盤のアーキテクチャ
- 10.4 Pub/Sub
- 10.4.1 Pub/Subとは
- 10.4.2 スキーマの適用
- 10.4.3 メッセージの重複と順序
- 10.4.4 エクスポートサブスクリプション
- 10.5 Dataflow
- 10.5.1 パイプライン
- 10.5.2 Dataflowにおけるストリーミング処理
- 10.5.3 テンプレート
- 10.5.4 Dataflow Prime
- 10.6 BigQueryのリアルタイム分析機能
- 10.6.1 BigQueryへのリアルタイムデータ取り込み
- 10.6.2 マテリアライズドビューとBI Engine
- 10.7 リアルタイムタクシーデータを用いたリアルタイム分析基盤の構築
- 10.7.1 タクシーのリアルタイム位置情報の取得用サブスクリプションの作成
- 10.7.2 Dataflowで1分集計値をリアルタイムにBigQueryに格納
- 10.7.3 セッションウィンドウを使った処理
- 10.7.4 Pub/SubのBigQueryサブスクリプションでBigQueryに簡単に出力
- 10.7.5 Lookerでリアルタイム集計値を可視化
- 10.7.6 環境の削除
- 10.8 まとめ
- Column Dataflowのアーキテクチャと分散処理におけるコンピュート,ストレージ,メモリの分離
第11章 発展的な分析 - 地理情報分析と機械学習,非構造データ分析
- 11.1 Google Cloudによる発展的な分析
- 11.2 BigQueryによる地理情報分析
- 11.2.1 地理情報分析とは
- 11.2.2 BigQuery GISによる地理情報分析の基本
- 11.2.3 BigQuery GISによる位置情報の集計処理
- 11.2.4 BigQuery GISの活用のまとめ
- 11.3 Google Cloud上での機械学習
- 11.3.1 Google Cloud上での機械学習
- 11.3.2 BigQuery MLとVertexAIの関係性
- 11.3.3 機械学習のプロセスとBigQuery MLのメリッ
- 11.3.4 BigQuery MLで実現する機械学習
- 11.3.5 BigQuery MLでの構造化データに対する機械学習
- 11.3.6 2項ロジスティック回帰による分類
- 11.3.7 AutoML
- 11.3.8 構造化データに対するAutoMLの利用の流れ
- 11.3.9 学習済みモデルを利用した非構造化データに対する機械学習
- 11.3.10 Natural Language APIを利用した自然言語処理
- 11.3.11 VisionAPIによる画像のタグ付け
- 11.3.12 BigQuery MLからのGeminiの利用
- 11.3.13 BigQuery MLの実践的な使い方
- 11.4 まとめ
- Column Pub/Subのアーキテクチャ