書店員向け情報 HELP
出版者情報
書店注文情報
改訂新版 Google Cloudではじめる実践データエンジニアリング入門
- 書店発売日
- 2025年1月9日
- 登録日
- 2024年11月15日
- 最終更新日
- 2024年12月12日
紹介
2021年2月に刊行した「Google Cloudではじめる実践データエンジニアリング入門」の改訂版です。改訂版の刊行までにデータ基盤に求められる要件は変化し、本書ではその間に進化を続けたGoogle Cloudの各サービスの情報をまとめています。
- Google Cloudの新サービスの反映:Dataform、Dataplex、BigLake、Datastream、Vertex AI、Geminiなど
- 各種Google Cloudの新機能のアーキテクチャへの反映:BigQuery、Dataflow、Pub/Sub、Cloud Coposer、Lookerなど
また非常に広い概念を含む「データ基盤」に求められる要件を明らかにしつつ、以下のような方々を主な対象として体系だったデータ基盤についての理解を整理できるように構成してあります。
- すでにソフトウェアコードはある程度かけるが、実践的にデータエンジニアリングへの入門をしたい方
- SQL を利用した分析を行っているが、データ基盤がどういう形なのか興味がある方
- すでにGoogle Cloud をデータ基盤として利用しているが、自社の設計について体系的に理解したい方、より良くする方法を探している方
データエンジニアリングの業務について一般的な知識を整理しつつ、Google Cloud 上でどのように構築するのかを、実践経験豊富な著者陣の現場のノウハウとともに説明します。
目次
第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のアーキテクチャ
上記内容は本書刊行時のものです。