Google Cloud Professional Data Engineer 試験対策｜9つのベストプラクティスまとめ【GCPデータエンジニアリング】

Google Cloud Professional Data Engineer 試験を受けた際の備忘録です。

## **1. データパイプラインの設計と運用**

### **ユースケース: スケーラブルで信頼性の高いETL/ELTパイプラインの構築**

- **ベストプラクティス**:
    - **Cloud Dataflow / Apache Beam** を使用し、ストリーミング/バッチ両対応のデータ変換処理を構築。
    - **Cloud Composer (Airflow)** により、ETLの依存関係とスケジューリングを管理。
    - **BigQuery Data Transfer Service** によるSaaSからの簡易データ取り込み。
    - **Pub/Sub + Dataflow** でリアルタイム処理を構成。
    - **Dataformの活用**: BigQuery上でのSQLベースの変換・依存管理を自動化。

---

## **2. スキーマとデータ品質の管理**

### **ユースケース: データの整合性とクリーンなスキーマ運用**

- **ベストプラクティス**:
    - **BigQueryスキーマの明示的定義**とバリデーションルールの明文化。
    - **Cloud Data Loss Prevention (DLP)** によるPII検出。
    - **Dataform/SQLX** でスキーマと依存関係のコード管理。
    - **Cloud Data Catalog + Tag Templates** を活用して、スキーマドキュメントとリネージ管理。
    - **dbtとの連携**による品質チェック（断面テスト・NULLチェック）。

---

## **3. ストレージ戦略と最適化**

### **ユースケース: コスト効率と性能を両立したデータ保存の設計**

- **ベストプラクティス**:
    - **Cloud Storage**: 生データ・ファイルデータの保存、Nearline/Coldlineでコスト最適化。
    - **BigQuery**: 分析用データウェアハウスとして使用し、**パーティション/クラスタリング** による高速化。
    - **データ寿命戦略（TTL）**: BigQueryの表に有効期限を設定。
    - **マテリアライズドビュー**と **BI Engine** で高速集計を実現。
    - **Cloud Spanner / Bigtable** などユースケース別のDB選定を考慮。

---

## **4. セキュリティとガバナンス**

### **ユースケース: 分析データの安全な利用と権限制御**

- **ベストプラクティス**:
    - **Row-level security / Column-level security** によるデータ粒度の制御。
    - **IAMによるビュー/データセット単位の制限**。
    - **Cloud KMSとの連携で暗号化制御**。
    - **Data CatalogのPolicy Tag** を活用し、分類に応じたアクセス制御を実現。
    - **監査ログ + SCC** による異常検出と利用状況の可視化。

---

## **5. 機械学習との統合**

### **ユースケース: データパイプラインと機械学習の統合運用**

- **ベストプラクティス**:
    - **BigQuery ML** によるSQLベースのモデル学習・予測。
    - **Vertex AI** を活用し、スケーラブルなトレーニング・デプロイを行う。
    - **Feature Store** による特徴量の一元管理。
    - **Dataflowでの前処理 → Vertex AIへの接続**など、パイプラインとMLの統合。
    - **モデルのExplainability（SHAP, XAI）とモニタリング（Model Monitoring）** を活用。

---

## **6. BI・データ活用の促進**

### **ユースケース: ビジネスユーザー向けのデータ活用基盤の提供**

- **ベストプラクティス**:
    - **Looker / Looker Studio** による可視化とセルフサービスBI。
    - **BigQuery Authorized View** で制限付きビューを提供。
    - **BI Engine** でダッシュボード高速化。
    - **LookMLのモデル化**によって一貫性のあるメトリクス管理。
    - **Data Catalogの検索性向上**によりデータ民主化を促進。

---

## **7. モニタリング・オペレーションの最適化**

### **ユースケース: パイプライン・データ基盤の可観測性強化**

- **ベストプラクティス**:
    - **Cloud Monitoring** によるジョブ・クエリの可視化。
    - Dataformのアラート連携（Slack通知など）。
    - **クエリのスロット使用状況 / リソース消費のダッシュボード化**。
    - **Cloud Loggingでの異常検知 / デバッグ**。

---

## **8. データリネージとメタデータ管理**

### **ユースケース: データの出どころと依存関係の追跡**

- **ベストプラクティス**:
    - **Cloud Data Catalog** によるリネージ自動記録。
    - **Dataformやdbtのドキュメント生成**で依存関係を明確化。
    - **Tag Templatesによるデータ分類・責任者管理**。
    - **Custom Metadata API** を使った独自リネージの拡張も可能。

---

## **9. Infrastructure as Codeと再現性**

### **ユースケース: データ基盤の構成をコードで管理**

- **ベストプラクティス**:
    - **TerraformによるBigQueryやIAM設定のコード化**。
    - **Dataformで変換ロジックと依存関係をIaC管理**。
    - **CI/CDパイプラインでデータ検証（unit test / schema test）を導入**。
    - **Cloud BuildとGitHub Actionsによる自動デプロイ**。

---

## **まとめ：データエンジニアリングの9領域**

| 観点 | 主な対策例 |
| --- | --- |
| パイプライン構築 | Dataflow / Composer / Dataform |
| 品質とスキーマ管理 | Dataform / Data Catalog / dbt |
| ストレージ戦略 | BQクラスタ・パーティション / Storage TTL |
| セキュリティ | Row/Column Access / Policy Tag |
| ML連携 | BQML / Vertex AI / Feature Store |
| BI | Looker / BI Engine / View制御 |
| 可観測性 | Monitoring / Logging / Slack通知 |
| リネージ | Data Catalog / Tag Template / dbt |
| IaC | Terraform / Dataform / CI/CD |