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




ランキングも確認する
出典:出版社HP

業務で使えるデータ基盤構築

【2021最新 -Google Cloud Platformおすすめ本 – 独学での勉強にも!】も確認する

はじめに

2012年頃に「データサイエンティスト」というワードが華々しく登場し、あわせて 「ビッグデータ」という言葉にも注目が集まり早10年が過ぎようとしています。さらに IoT (Internet of Things:モノのインターネット)やAI(Artificial Intelligence:人工知能)の台頭により、これからのビジネスにデータ活用は不可欠であるという共通認識も形成され始めていると感じます。データがますます重要になっていく一方で、データ活用を支える「インフラ」であるデータ基盤に注目が集まる機会は多くありません。多くの場合、データの保管能力や処理能力にのみ焦点が当たりがちですが、データの重要性が認識されるに従い、データ基盤に求められる要件も増加の一途をたどっています。たとえば、データの管理やセキュリティ、より高度な分析である機械学習に関する要件といったものが挙げられます。すべての要件に関する知識を押さえることは難しく、体系だったデータ基盤に関する説明を目にする機会もあまりありません。

本書は、非常に広い概念を含む「データ基盤」を、Googleが提供するクラウドインフラのサービスであるGoogle Cloud上でどのように構築するのか説明していきます。Google Cloudで構築するデータ基盤の最も大きな特徴は、マネージドサービスとして提供されておりスケーラブルであることです。マネージドサービスであるため、データ基盤の運用における負荷は削減され、本来の目的であるデータ活用に対してより多くの時間を割くことができます。また、スケーラブルであるため、データ基盤の規模が小さいときから拡大していっても同じような構成をとり続けることができます。これらの特徴から、Google Cloudによるデータ基盤はその立ち上げから、大規模な実運用までを一貫してカバーできます。また、データ活用に対するエコシステムも整っているため、データ基盤上に蓄えられたデータの活用までもカバーできます。

本書の構成

本書は全部で11章から構成されています。
それぞれの章は独立しており、各章を自身の好きな順番で読み進めることができます。1章では、データ基盤の全体像とGoogle Cloudで提供されているサービスとデータ基盤のコンポーネントとの関係性を説明しています。多くの方はまず1章を一読されたあとに、興味のある章を読み進めていくことをお勧めします。
続いて、以下で示すデータ基盤における一般的な概念や要求、課題について説明し、それらをカバーするGoogle Cloud上のプロダクトやソリューションについて説明するという流れをとっています。

●データウェアハウス(2章、3章)
●データレイク (4章) ETL処理(5章)
●データパイプライン(6章)
●セキュリティ(7章)
●データ集約(8章)
●ビジネスインテリジェンス(9章)
●リアルタイム分析(10章)
●発展的な分析(11章)

本書全般を通じた注意事項
本書はGoogle Cloudの基礎的な説明については割愛しています。本書で説明している内容を追随するには、Google Cloudのアカウントを用意する必要があります。本書を通じて、以下のような事前設定や知識、作業環境が必要となります。
●Googleアカウントの取得
●Google Cloudプロジェクトの作成-注1
●Google Cloud上の請求アカウントの設定-注2
●Cloud Shell-注3もしくはgcloud コマンドラインツール-注4設定済みのローカル環境

Google Cloudには、毎月一定の使用量が無料になるAlways Free (特定のプロダクト のみ)や新規アカウント作成者に$300分の無料クレジットの付与-注5といったプログラムが提供されています。本書で提供するサンプルの多くはAlways Freeの無料枠に収まるものですが、Always Freeでカバーされていないプロダクトも一部含まれています。
予期せぬコストの発生を回避するためにも、サンプルを実行する前には、各プロダクトの価格やAlways Freeの適用範囲を確認することをお勧めします。また、サンプルの実行後には速やかに環境を削除することも忘れないようにしてください。
データ基盤を構築、管理する技術領域全般をデータエンジニアリングと呼びます。データエンジニアリングを駆使し、ビジネスに価値をもたらすのがデータエンジニアと呼ばれる比較的新しい専門職です。データ活用を進めるという観点では、データ基盤が重要であるのと同じくらい、データエンジニアの存在も重要となります。データ基盤やデータエンジニアの存在により、データサイエンティストやアナリストは、信頼性のあるデータに対して、効率的な分析を行うことができるようになります。
本書に掲載しているスクリーンショットはすべて執筆時点のものです。Google Cloud は、ユーザーの利便性を向上させるため次々と新しい機能を追加しています。そのため、掲載しているGoogle Cloudの各サービスの画面のスクリーンショットと実際の画面に差異が生じている場合もありますのでご注意ください。

サンプルコード

本書では、Pythonのプログラム、シェル上のコマンド、SQLなどがサンプルコードとして登場します。サンプルコード
はhttps://github.com/ghmagazine/gcpdataplatformbook上に公開しています。必要に応じてダウンロードして利用してください。

注1 https://cloud.google.com/resource-manager/docs/creating-managing-projects?hl=ja
(本文に戻る)
注2 https://cloud.google.com/billing/docs/how-to/modify-project?hl=ja
(本文に戻る)
注3 https://cloud.google.com/shell?hl=ja
(本文に戻る)
注4 https://cloud.google.com/sdk/gcloud?hl=ja
(本文に戻る)
注5 https://cloud.google.com/free?hl=ja
(本文に戻る)

ランキングも確認する
出典:出版社HP

目次

はじめに
第1章 データ基盤の概要
1.1 データ基盤に取り組む意義
1.2 データ基盤とは
1.2.1 データ基盤に対する要求の変遷
1.2.2 データ基盤の全体像
1.3 Google Cloud上で構築するデータ基盤
1.3.1 クラウド環境のメリット
1.3.2 GCP上で提供されるデータ基盤に関連したプロダクト
1.4 まとめ

第2章 BigQueryのコンセプトと利用方法
2.1 DWHとは
2.2 Googleのデータ処理を支える技術
2.2.1 オープンソースデータ処理技術とGoogleの技術
2.2.2 BigQuery – Google社内で使われてきたデータウェアハウス/データレイク
2.3 BigQueryの内部アーキテクチャを理解する
2.3.1 BigQueryの内部構造
2.4 DWHとしてのBigQueryの基本操作
2.4.1 BigQueryサンドボックスの利用
2.4.2 クエリを実行する。
2.4.3 クエリの応用
2.5 BigQueryユーザー向けのクエリの最適化
2.5.1 必要なカラムのみ選択する
2.5.2 パーティション分割・クラスタ化を利用するクエリ
2.5.3 クエリ結果のキャッシュと明示的なテーブル指定による永続化を利用する
2.5.4 クエリプランの可視化
2.6 まとめ

第3章 データウェアハウスの構築
3.1 データウェアハウスに求められるさまざまな要件
3.2 高可用性、Disaster Recovery計画
3.2.1 可用性のしくみ
3.2.2 メンテナンス、クラスタアップデート
3.2.3 Disaster Recovery計画
3.3 用途別の影響隔離
3.3.1 スロットスケジューリングのしくみ
3.3.2 課金体系の選択 – オンデマンド課金とBigQuery Reservations
3.4 サイジング
3.4.1 サイジング – オンデマンド課金の場合
3.4.2 サイジング – BigQuery Reservationsの場合
3.4.3 ストレージのサイジング
3.5 目的環境別の影響隔離
3.6 テーブルを設計する。
3.6.1 パーティション分割・クラスタ化
3.6.2 マテリアライズドビューの利用
3.7 データの投入
3.8 バックアップとリストア
3.8.1 BigQueryにおけるデータリストア – タイムトラベル機能
3.9 BigQueryにおけるトランザクションとパーティションを用いたDMLの 最適化
3.10 DMLをまとめる/パーティションの利用
3.11 外部接続の最適化 – Storage APIの利用とBI Engineの利用
3.11.1 Notebookの場合やHadoop/Sparkコネクタの場合
3.11.2 BIツールの場合
3.12 データマートジョブの設計最適化
3.12.1 データマート作成クエリの最適化
3.12.2 データマート作成ジョブの流れの最適化
3.13 まとめ Column マルチクラウドでのクラウドデータ基盤の利用

第4章 データレイクの構築
4.1 データレイクとは
4.2 Hadoopとは
4.3 Google Cloudで構築するデータレイク

4.4 Google Cloudのおもなデータレイク関連のサービス
4.4.1 Cloud Storage(データレイク)
4.4.2 Dataproc(データ処理)
4.4.3 BigQuery (DWH/データレイク)
4.4.4 Dataproc Hub(機械学習)
4.4.5 Data Catalog(メタデータ管理)
4.5 Google Cloudでデータレイクを中心としたデータ分析基盤を構築する ことのメリット
4.5.1 インフラコストの最適化
4.5.2 運用コストの削減
4.5.3 スケーラビリティとアジリティの獲得
4.5.4 安定したクエリ実行環境の獲得
4.5.5 フルマネージドなデータ分析環境を使用した、全社でのデータ利活用の促進
4.6 オンプレミス環境からGoogle Cloudへのデータレイクの移行
4.7 まとめ

第5章 ETL/ELT処理
5.1 ETL/ELTとは、
5.2 ETL/ELT処理を実施するサンプルシナリオ
5.3 サンプルシナリオ実施用の環境の構築
5.4 Big Query TOELT
5.4.1 BigQueryの作業用テーブルの作成とユーザー行動ログのロード
5.4.2 テーブルの結合、集計とその結果の挿入
5.4.3 作業用テーブルの削除
5.5 BigQuery TDETL
5.5.1 dauテーブルの再作成
5.5.2 一時テーブルの作成とデータ集計結果の挿入
5.6 Dataflow TOETL
5.6.1 dauテーブルの再作成
5.6.2 環境準備とプログラムの作成
5.6.3 Dataflowのジョブの実行
5.6.4 Dataflowの本番環境で考慮する点
5.7 Dataproc TOETL
5.7.1 dauテーブルの再作成
5.7.2 環境準備とプログラムの作成
5.7.3 Dataprocワークフローテンプレートの作成と実行
5.7.4 Dataprocの本番環境で考慮する点
5.8 サンプルシナリオ実施用の環境の破棄
5.9 その他のETL/ELT処理の実施方法
5.10 ETLとELTの各手法の使い分け
5.11 まとめ
Column Apache BeamとDataflowの関係は?

第6章 ワークフロー管理とデータ統合
6.1 Google Cloudのワークフロー管理とデータ統合のためのサービス
6.2 Cloud Composerの特徴
6.2.1 コンポーネント
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の比較と使い分けのポイント
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.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 コストの制限
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 BigQueryへのデータパイプライン構築
8.4.1 簡易データパイプラインの課題
8.4.2 データパイプライン構築のためのGoogle Cloud上のソリューション
8.5 サービス間連携によるBigQueryへのデータ連携
8.5.1 Google アナリティクス 360からBigQueryへのデータエクスポート
8.5.2 FirebaseからBigQueryへのデータエクスポート
8.6 まとめ
Column BigQueryのデータ取り込み方法の使い分け
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.3 データポータル
9.3.1 データへのアクセス
9.3.2 グラフの作成
9.3.3 ダッシュボード
9.4 Looker
9.4.1 Lookerの機能概要
9.4.2 ダッシュボード構築の基本的な流れ
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 まとめ

第10章 リアルタイム分析
10.1 リアルタイム分析とユースケース
10.2 リアルタイム分析基盤に求められるもの
10.3 Google Cloudを利用したリアルタイム分析基盤のアーキテクチャ
10.4 Pub/Sub
10.4.1 Pub/Subとは
10.4.2 メッセージの重複と順序
10.4.3 Pub/Sub Lite
10.5 Dataflow
10.5.1 パイプライン
10.5.2 Dataflowにおけるストリーミング処理
10.5.3 テンプレート
10.5.4 Dataflow SQL
10.5.5 Apache Beamノートブック
10.6 BigQuery
10.6.1 ストリーミング挿入
10.6.2 マテリアライズドビューとBI Engine
10.7 リアルタイムタクシーデータを用いたリアルタイム分析基盤の構築
10.7.1 タクシーのリアルタイム位置情報の取得用サブスクリプションの作
10.7.2 Dataflowで1分集計値をリアルタイムにBigQueryに格納
10.7.3 セッションウィンドウを使った処理
10.7.4 Lookerでリアルタイム集計値を可視化
10.7.5 環境の削除
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 BigQuery上での機械学習
11.3.1 Google Cloudで提供される機械学習系サービス
11.3.2 BigQuery ML
11.3.3 BigQuery MLで実現できる機械学習
11.3.4 2項ロジスティック回帰による分類
11.4 AutoML Tables
11.4.1 AutoML Tablesの利用の流れ
11.4.2 モデルのエクスポート
11.4.3 AutoML Tablesのモデルの詳細
11.4.4 BigQuery MLD 50 AutoML Tables OFIJA
11.4.5 BigQuery MLを使うべきかAutoML Tablesを使うべきか
11.5 Al Platformを活用したデータサイエンスと機械学習
11.5.1 AI Platform Notebooksを用いた分析イテレーション
11.6 まとめ
Column Pub/Subのアーキテクチャ
索引
著者紹介

データ基盤の概要
データ基盤は、データ活用のためのインフラストラクチャと言えます。データ基盤を正しく取り扱えるようになるために、データ基盤への要求の変遷(とコンポーネント)を正しく理解する必要があります。本章では、データ基盤に対する要求を整理し、データ基盤とは何か、どのようなコンポーネントが含まれているのかといったことを説明します。本章を読むことで、データ基盤の全体像を理解し、続く章での説明をより深く理解することができます。

ランキングも確認する
出典:出版社HP