13 チャプター
91 課題

コース概要

Google Cloud データ基盤コースでは、BigQuery を中心とした商用レベルのAI-Readyなデータ基盤を、メダリオンアーキテクチャに沿って一気通貫で構築していきます。

メガベンチャーのデータエンジニアを監修に迎え、丸5ヶ月の制作期間を経て完成した最高傑作となっています。

舞台は本格的なECサイト。学習用のサンプルデータではなく、実務を想定した超リアルな素材データを用意しました。

  • テーブル数21個
  • 主要テーブルは100万レコード越え
  • 限りなく実務を再現すべく、日次で最新データが増えていく仕組みを構築

と、データ基盤の素材データとして一切の妥協を許さないクオリティに仕上げています。

S3 → GCS へのデータ取り込みから始まり、Cloud Run functions によるイベント駆動の変換処理、Lakehouseによる外部テーブル参照、dbt を用いた Silver / Gold 層のモデリング、IAM とポリシータグによる列レベルセキュリティ、BigQuery Sharing による部署別のデータ配布、データポータルでのBIダッシュボード構築、Cloud Workflows によるパイプラインオーケストレーションと Cloud Monitoring による監視まで、実務においてデータ基盤エンジニアが担う一連の設計・構築・運用を一気通貫で習得できるコースとなっています。

さらに、ただ構築するだけでなく、BigQueryのコスト最適化まで注力し、『一円でも安く・パフォーマンスも高い』データ基盤を運用できるように、大量のTipsも詰め込みました。

このコースをクリアすれば、「データ基盤の構築・運用は任せてください!」と自信を持って言える状態を目指せるはずです。

メダリオンアーキテクチャに沿ったデータ基盤設計

ETL から ELT への歴史的な変遷を辿りながら、なぜ現代のデータ基盤がメダリオンアーキテクチャ (Bronze / Silver / Gold) を採用するのか、その設計思想を丁寧に解説していきます。実務で頻出するデータ基盤の手札を整理し、本コースで構築する全体像とECサイトを題材にした具体的なユースケースを最初にインストールしていきます。

S3 → GCS へのデータ取り込み層構築

Storage Transfer Service を用いて S3 から GCS へデータを転送する取り込み層を構築します。オンデマンドでの全データ転送に加え、定期実行による差分データ転送も実装し、S3 → GCS 間の認証・認可設計もあわせて習得します。
S3 → GCS データ転送構成

Cloud Run functions によるHiveパーティション自動変換

Eventarc + Cloud Run functions によるイベント駆動アーキテクチャで、GCS に到着したファイルを Hive パーティション形式へ自動変換していきます。

ただ動かすだけでなく、大量ファイル転送を想定した本格的な Cloud Run functions の設計にも踏み込んで解説していきます。データ取り込み層全体 (S3 → GCS → Cloud Run functions → GCS) を通した最終動作確認までを行うチャプターです。

Cloud Run functions によるHiveパーティション自動変換

Bronze層 - Lakehouse による外部テーブル参照

ここでは BigQuery の Lakehouse 機能を用いて、GCS 上の Parquet データに対して外部テーブルとして参照をかけます。

これによって、ファイルとして GCS に置かれているデータを、あたかも BigQuery のテーブルのように SQL でクエリできる状態が出来上がります。

これが、後続の dbt による変換工程の起点となる Bronze 層になります。

Lakehouse による外部テーブル参照

dbt 入門 → 実践 (ECプロジェクト)

dbt を初めて触るエンジニアでも安心して進められるように、まずはチュートリアルベースの入門編で dbt の基本 (sources / staging / materialization / incremental / snapshot / tests / macro / docs) を体系的に習得していきます。

その後、実践編としてECサイトを題材にした本格的な dbt プロジェクトを、Silver 層のモデリング、BigQuery のパーティションとクラスタリング設計、Snapshot 層、Intermediate 層、スタースキーマの Dimension / Fact テーブル、BigQuery UDF、コスト最適化まで、実務レベルで実装していきます。

合計 34 課題ものボリュームで、dbt を「なんとなく触ったことがある」レベルから「実務で設計・実装をリードできる」レベルまで押し上げていきます。

データ基盤のセキュリティ設計

IAM によるデータセット単位の閲覧制御、Authorized View を活用したクロスデータセット参照、BigQuery ポリシータグによる列レベルセキュリティまで、役割ごとに「見える範囲」を厳密に制御する設計を実装していきます。
IAM + 列レベルセキュリティ

さらに BigQuery Sharing を用いて、営業部門など部署ごとに独立したデータ分析環境を安全に届ける手法まで扱っていきます。「単一のデータセットでマートを管理するのはつらい」という実務で頻出する悩みへの現実解を、手を動かしながら習得できます。

BigQuery Sharing による部署別データ分析環境

データポータル (Looker Studio) によるダッシュボード構築

BigQuery のデータを可視化する定番ツールであるデータポータルを使い、

  • 商品別売上高 (棒グラフ)
  • カテゴリー別売上比率 (円グラフ)
  • 月次売上推移 (複合グラフ)
  • 月次F2転換率推移 (折れ線グラフ)
  • スコアカード
など、EC サイトの分析に頻出のダッシュボードを実装していきます。
データポータルで作成するECダッシュボード

データポータル → BigQuery の認証まわりも深掘りするため、実務でダッシュボードを配布する際の権限設計にも自信が持てるようになります。

データパイプラインの構築と監視

Cloud Workflows + Cloud Run Jobs で dbt を実行するデータパイプラインを設計し、Cloud Scheduler で定期実行していきます。staging / snapshot、intermediate / mart など、レイヤーごとの Workflow 分割戦略も丁寧に解説していきます。
データパイプライン構成

最後に Cloud Monitoring + Cloud Logging により、Cloud Run ジョブや Cloud Run functions の失敗を Slack へ通知するアラート基盤まで構築し、ラップアップとして全構成の Terraform 化も行います。

学習ポイント

  • ETL → ELT の変遷とメダリオンアーキテクチャの設計思想
  • Storage Transfer Service による S3 → GCS の定期差分データ転送
  • Eventarc + Cloud Run functions によるイベント駆動アーキテクチャ
  • Lakehouse (旧 BigLake) による GCS 上の外部テーブル構築
  • dbt によるモデリング (sources / staging / snapshot / intermediate / mart)
  • BigQuery のパーティション・クラスタリング設計とコスト最適化
  • スタースキーマ (Dimension / Fact) をベースとしたMart層の実装
  • dbtマクロ、BigQuery UDFによる共通処理の関数化
  • IAMによるデータセット単位でのアクセス制御
  • BigQueryポリシータグによる列レベルセキュリティ
  • BigQuery Sharing による部署別データ分析環境の配布
  • データポータル (Looker Studio) によるダッシュボード構築
  • Cloud Workflows × Cloud Run Jobs によるデータパイプラインオーケストレーション
  • Cloud Monitoring、アラートポリシーによる監視と Slack 通知
  • データ基盤全体の Terraform 化

構成図

Google Cloud データ基盤コース 構成図
Ch.01 Google Cloud データ基盤コースのオンボーディング
01 Google Cloud データ基盤コースへようこそ!
02 生成AI時代にデータ基盤の価値がますます高くなっていくという話
Ch.02 データ基盤の設計思想をインストールする
01 ETL → ELT への歴史の変遷を辿る
02 メダリオンアーキテクチャについて理解する
03 【完全版】実務頻出のデータ基盤構築の手札を知る
04 Google Cloud データ基盤コースで構築する全体像を把握する
05 データ基盤コースの舞台となるECサイトについて理解する
Ch.03 【データ取り込み層】S3 → GCS へデータを転送する
01 データ取り込み層の全体像を把握する
02 Storage Transfer Serviceとは?
03 データを取り込むGCSバケットを作成する
04 S3 → GCSへデータを転送ために認証・認可の設定を行う
05 Storage Transfer Serviceにより、オンデマンドで全データを転送する
06 Storage Transfer Serviceにより定期実行で差分データを転送する
Ch.04 【データ取り込み層】Cloud Run functionsによりHiveパーティションへ自動変換する
01 Hiveパーティションへ自動変換する全体像を把握する
02 Eventarc + Cloud Run functions によるイベント駆動アーキテクチャを理解する
03 Hiveパーティション変換に必要なサービスアカウントを作成する
04 Hiveパーティション変換を行う Cloud Run functions を作成する
05 Cloud Run functions によりHiveパーティション変換の動作確認を行う
06 データ取り込み層 (S3 → GCS → Cloud Run functions → GCS) の最終動作確認を行う
07 【深掘り】大量ファイル転送を想定した本格的なCloud Run functions 設計
Ch.05 【Bronze層】 Lakehouseにより外部テーブルを構築する
01 Bronze層の責務を理解する
02 Bronze層のデータをどこに置くか? BigQuery vs GCS
03 BigQuery 入門
04 Google Cloud Lakehouse (旧: BigLake) とは?
05 Lakehouse 接続を作成する
06 Lakehouse 関連の権限設定を行う
07 Lakehouse 外部テーブルを作成する
Ch.06 【dbt入門】チュートリアルを通してdbtに慣れる
01 dbt入門の全体像を把握する
02 dbtとは?
03 dbt_project.ymlを最小構成で作成する
04 dbtの環境構築を行う
05 実務でよく使うdbtコマンドをインプットする
06 チュートリアル用のseed データをBigQueryに流し込む
07 sources.ymlでraw層を宣言する
08 Jinja入門
09 マテリアライゼーション = view でstagingモデルを作成する
10 マテリアライゼーション = incremental によりテーブルを差分更新する
11 【深掘り】incrementalの内部の動きを完全に理解する
12 【深掘り】--full-refresh オプションについて完全に理解する
13 stagingに依存したmartモデルをviewで作成する
14 snapshotによりマスターデータの変更履歴を残せるようにする
15 dbt docs によりドキュメントを作成する
16 dbt test によりデータ品質を担保する (dbt build)
17 マクロにより繰り返し使うSQLを関数として切り出す
18 dbt 入門の総まとめ
Ch.07 【dbt応用】ECプロジェクトを実装する
01 dbt ECプロジェクトの全体像を把握する
02 dbt ECプロジェクトの環境構築を行う
03 sources.yml でECプロジェクトのBronze層を宣言する
04 Silver層の設計について理解する
05 BigQueryのパーティションとクラスタリングについて完全に理解する
06 マスタ系の staging モデルを実装する
07 トランザクション系の staging モデルを実装する
08 カスタムスキーマ、エイリアスによりデータセット名やテーブル名を整える
09 Snapshot層を実装する
10 Intermediate層を実装する
11 Gold層の責務とスタースキーマ設計について理解する
12 スタースキーマのDimensionテーブルを実装する
13 スタースキーマのFactテーブルを実装する
14 BigQueryのUDF (ユーザー定義関数) を実装する
15 【深掘り】データ基盤のコストを最適化する
16 dbt ECプロジェクトの総まとめ
Ch.08 IAM + 列レベルセキュリティで役割ごとに見える範囲を制限する
01 データ基盤のセキュリティ設計の全体像を把握する
02 IAMによりデータセット単位の閲覧制御を行う
03 Authorized View によりクロスデータセット参照を実現する
04 BigQuery ポリシータグにより列レベルの閲覧制御を行う
Ch.09 BigQuery Sharing で部署ごとに独立したデータ分析環境を届ける
01 単一のデータセットでマートを管理するのはつらい
02 BigQuery Sharingとは
03 BigQuery Sharingにより営業部門用の分析環境を配布する
Ch.10 データポータルによりダッシュボードを作成する
01 データポータルとは?
02 データポータルでECダッシュボード作成を始める
03 データポータルで商品別売上高 (棒グラフ)、カテゴリー別売上比率 (円グラフ) を作成する
04 データポータルで月次売上推移 (複合グラフ)、月次F2転換率推移 (折れ線グラフ) を作成する
05 データポータルで総売上、注文数、客単価をスコアカードで作成する
06 【深掘り】データポータルからBigQueryへ接続する認証について完全に理解する
Ch.11 Cloud Workflows + Cloud Run Jobs によりデータパイプラインを構築する
01 dbt データパイプラインの全体像を把握する
02 dbt用のDockerイメージをArtifact Registryへpushする
03 dbtを実行するCloud Runジョブを作成する
04 Cloud Runジョブ単体でdbtを実行する
05 Cloud Workflows入門
06 dbtデータパイプラインを設計する
07 Cloud Runジョブを単発実行するCloud Workflowsを作成する
08 intermediate / mart 用のCloud Workflowsを作成する
09 staging / snapshot用のCloud Workflowsを作成する
10 Cloud SchedulerよりCloud Workflowsを実行する
Ch.12 Cloud Monitoring + Cloud Logging によりデータパイプライン監視を行う
01 データパイプライン監視の全体像を把握する
02 Cloud Monitoring入門
03 Cloud Monitoring の通知チャネルを作成し、Slackと連携する
04 Cloud Runジョブの失敗を検知するアラートポリシーを作成する
05 Cloud Run functionsの失敗を検知するアラートポリシーを作成する
Ch.13 Google Cloud データ基盤コース ラップアップ編
01 Google Cloud データ基盤コースで登場したリソースをTerraform化する
02 Google Cloud データ基盤コースの最終課題を提出する

コース突破者の声

K.J さん 受講完了

最高でした!そもそも学習リソースがまだ少ないデータ基盤という分野について、ここまで実務に即した解説と演習が用意されている講座は、Cloud Praticaくらいではないでしょうか。