書籍概要

改訂新版 Google Cloudではじめる実践データエンジニアリング入門

著者
発売日
更新日

概要

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 上でどのように構築するのかを,実践経験豊富な著者陣の現場のノウハウとともに説明します。

こんな方におすすめ

  • データ基盤の構築に関わる可能性があるエンジニア
  • 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のアーキテクチャ

サポート

現在サポート情報はありません。

商品一覧