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

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

紙版発売

B5変形判/528ページ

定価3,960円(本体3,600円+税10%)

ISBN 978-4-297-14661-0

電子版
  • 電子化の予定があります

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

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のアーキテクチャ

著者プロフィール

饗庭秀一郎(あいばしゅういちろう)

Google CloudのCustomer Engineer。モビリティ系ベンチャー企業でBigQueryを用いた分析基盤の構築と運用や分析業務に携わった後,2020年より現職。自分の興味が技術の仕組みや中身からいかにビジネスに活かすかに移るにつれ,キャリアも研究開発からシステム開発,データ分析,プリセールス技術支援へと変わってきました。現在は,特にデータ分析の領域に特化してお客様のビジネスを加速するクラウド活用のお手伝いをしています。BigQuery以外で好きなGoogle Cloudのサービスは,Cloud Shellです。ユーザとして,Google Cloudに出会ったときからこの便利さに常に魅了されてきました。


下田倫大(しもだのりひろ)

Google CloudのAI/ML事業開発担当。Web系企業の研究開発職,データ分析企業のエンジニアマネジャーを経て2017年よりGoogle Cloudに参画。テクノロジーを活用したデータの価値創出に興味があり,興味の赴くままに仕事をしていると,気づいたらクラウドプラットフォーマーに所属していた。現在は,Vertex AIを中心としたGoogle CloudのAI/ML領域の事業開発を担当していて,生成AIの荒波に飲み込まれないように日々悪戦苦闘している。


西村哲徳(にしむらてつのり)

Google CloudのCustomer Engineer。外資系ソフトウェアベンダーでデータベース関連の技術営業としてソリューション開発,国内大手企業のDB移行プロジェクト,パフォーマンスベンチーマーク専門のチームでのPoCなどに従事。また,国内SIerでのDWHプロジェクトやCDPベンダーでのマーケティング領域におけるデータ活用の提案など,製品からデータ活用までの様々な領域を経験。Google CloudではData Analytics Specialistを経て,現在はより守備範囲の広いCustomer Engineerとして日々お客様のビジネスに貢献できるよう活動しています。


寳野雄太(ほうのゆうた)

Google Cloud の統括技術本部長。日系通信会社でPdMとして意思決定のためのデータ基盤を作ったり,エンジニアとしてさまざまなサービスのマイグレーションをしているうち,データ活用の魅力に惹かれ入社。東京リージョン立ち上げからさまざまなお客様のデータ基盤構築立案,構築支援,BigQuery東京リージョンのローンチなどに携わる。2019年より現職。管理職となった現在も毎日適当なタテヨコデカテーブルを作っても淡々と結果が返ってくるBigQueryに助けられながら奮闘中。


山田雄(やまだゆう)

Google CloudのCustomer Engineer Data Analytics Specialist。国内大手企業にてHadoopやBigQueryを使ったデータ基盤の開発/運用に従事したのち,BigQueryの魅力に惹かれ2022年GoogleCloudに参画。データの価値をいかに効率よく上げられるかを日々考えている。好きなプロダクトはBigQueryとDataplex。データマネジメントとデータガバナンスの話が大好き。生成AI活用のためにも,さらにDataplexの活用を広げていきたいと思っている。