【GoogleCloud 認定資格】Professional Data Engineer 取得の攻略法

# これは何？

以前に取得したGoogleCloud認定資格のProfessional Data Engineerが有効期限切れになってしまったので、再度資格を取得しました。
そのときの勉強法などをまとめています。

これから資格の取得を考えている方に、少しでも役に立つところがあればと思いまとめてみました。

今回、Professional Data Engineer（PDE）の資格と共に、Professional Cloud Architect（PCA）、および、Professional Cloud Developer（PCD）の資格も取得したので、そちらに合わせても書いています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10525/0f057de6-d316-ddaa-5633-d4073c6c55e5.png)


下記は以前に書いた記事です。こちらは内容が古いのでご留意ください。
* [Google Cloud 認定資格の攻略法 #GoogleCloud - Qiita](https://qiita.com/redpanda/items/ea29dea70bfb04e66618)
* [【GoogleCloud 認定資格】Professional Data Engineer の取得 #試験 - Qiita](https://qiita.com/redpanda/items/85aef435d23bfa320a0c)

* [【GoogleCloud 認定資格】Associate Cloud Engineer の取得 #試験 - Qiita](https://qiita.com/redpanda/items/a238840e26db0e104d67)



# Google Cloud 認定資格について

くわしくは [こちら](https://cloud.google.com/learn/certification?hl=ja)をご確認ください。

* [Professional Cloud Database Engineer 認定資格](https://cloud.google.com/learn/certification/cloud-database-engineer?hl=ja)
* [Professional Cloud Architect 認定資格](https://cloud.google.com/learn/certification/cloud-architect?hl=ja)
* [Professional Cloud Developer 認定資格](https://cloud.google.com/learn/certification/cloud-developer?hl=ja)




# やったこと

- [Associate Cloud Engineer 認定資格](https://cloud.google.com/learn/certification/cloud-engineer?hl=ja) で問われる内容の復習
- Skills Boostのプログラム
    - コース
    - ラボ
- 公式のドキュメントを読む
- 模擬試験

次にそれぞれについて書いてみます。


## Associate Cloud Engineer 認定資格 で問われる内容の復習

「プロフェッショナル認定資格」は、[Associate Cloud Engineer 認定資格](https://cloud.google.com/learn/certification/cloud-engineer?hl=ja) を前提としていると考えて良いです。
その知識を当たり前とした問題が出てきます。ですので、この内容を把握しておく必要があります。



私は下記の本を読んで復習しました。
[徹底攻略 Google Cloud認定資格 Associate Cloud Engineer](https://www.amazon.co.jp/Google-Cloud%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC-Associate-Engineer%E6%95%99%E7%A7%91%E6%9B%B8-%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ebook/dp/B0CF587QYK/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=SHXRT62ESXJG&dib=eyJ2IjoiMSJ9.mkb6Mb7ML_ZY62xDIMXfYT1hXnNRcOXcNh9jsXQgnybGihQ4otUz-nuAhiEuUdw04Y4HmeqzJpbeCnu_S8mkwrjMsSHc7uibNZ6XRQPZLMJttCUKREz0TbtY35acJB3ApWhqngRrQbex4kArWhATvsNaeeD8Zail_1bBskQwL4GGK5nzPwp25wmBGf6gh6iwQJv2JkRUuXtmwAVFI1iMt8SeJix4sUlUlqDj9RZ4CQdg5YJ8WAetr78PuDHZccyaFDgZNG_dkT_Hv4K9lOX1UpV8b33xRobFqrCFGiQdpp0.wtZTK2qmaYtbuzx4ne0oukNoCzJI0MpkPFksFHxpADk&dib_tag=se&keywords=associate+cloud+engineer&qid=1729581047&sprefix=associate+cloud+enginee%2Caps%2C165&sr=8-1)

なぜ、この本を選んだか？ですが、それは現時点で「新しいもの」だからです。
Google Cloudのプロダクトは移り変わりが激しいので、情報がどんどん古くなってしまいます。
ですので、なるべく最新の情報に触れる必要があります。

最新のものといえば「公式ドキュメント」が最も役に立つのですが、膨大すぎてすべてに目を通すのはさすがに大変です。こういった資格試験向けの本は情報が体系的にまとめられていて読みやすいです。


## Skills Boostのプログラム

### コース

下記に資格試験ごとにまとまったコースがあります。
* [Data Engineer Learning Path](https://www.cloudskillsboost.google/paths/16?catalog_rank=%7B%22rank%22%3A6%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&search_id=36088418)
* [Cloud Architect Learning Path](https://www.cloudskillsboost.google/paths/12)
* [Cloud Developer Learning Path](https://www.cloudskillsboost.google/paths/19)

ビデオによる説明とハンズオンが含まれます。ビデオでは各種関連するプロダクトの説明、ベストプラクティスなどの講義が受けられます。
講義の中には「模擬試験」も含まれており、これも抑えておいた方が良いです。

PCDのコースだけ日本語版がなかったので少しつらかったですが、ビデオは翻訳が利用できます。


### ラボ

コースには紐づくラボが含まれていますが、それ以外にもラボはたくさんあります。
それらをできるだけ受講しておくことをおすすめします。

Google Cloudの各種試験はぶっちゃけ「座学のみ」で取得できると思ってます。
ですが、ラボで手を動かして実際に使ってみないと座学のみでプロダクトを触れないエンジニアになってしまうこと、また、手を動かしながら覚えたことは忘れづらいと思うので、個人的にはできるだけラボに取り組むようにしています。

### 公式のドキュメントを読む

試験に関連するGoogleプロダクトはたくさんあり、そしてドキュメントは膨大です。さすがに全部目を通すわけにはいきません。
そこで、**最低限として目を通しておくべきもの**は各関連プロダクトの下記のカテゴリです。

- 概要、および、コンセプト
- ベストプラクティス
- トラブルシューティング

これは、試験問題で最適なソリューションの選択とベストプラクティス、トラブルシューティングを問われる傾向が高いためです。
後は、模擬試験を進めながら各プロダクトの細かい部分を理解するために公式ドキュメントを読み進めます。

### 模擬試験

模擬試験はできるだけたくさんやったほうが良いと思っています。

入手先は

- Google公式の模擬試験
- SkillsBoostのコースに含まれる確認問題
- Udemy
- その他のサイドベンダーや野良サイトのもの
    - [試験一覧 | Azure, GCP, CompTIA試験に合格するなら IT Concepts Japan](https://it-concepts-japan.com/all-exams)
    - [無料Google認定試験問題集 - インスタントオンラインアクセスGoogle学習資料](https://www.jpnshiken.com/certification/Google.html)

みたいな感じです。

いずれも過去問、過去問をもじったもの、想定の試験問題などがありますが、巷にはどのサイトも同じような問題が出回っています。
また、同じような問題が出回っている故に「同じ問題に対して回答がサイトで異なる」みたいなこともたまにあります。それらは公式のドキュメントやChatGPTを使って（後述）で確認します。
「回答の解説がない問題集」もChatGPTで解決できます。

ちなみに、個人的に下記の問題集はあまりおすすめしません。
* [無料Google認定試験問題集 - インスタントオンラインアクセスGoogle学習資料](https://www.jpnshiken.com/certification/Google.html)

無料でたくさんあるのですが、誤回答と思われるものがちらほらありました。
こちらを利用する場合は注意してください。（「あれ？これ回答おかしくない？」と思ったら、ChatGPTを利用して回答を推測させてみたり、公式ドキュメントで確認してみてください。）
また、Udemyや他の問題集も完璧なものではないと思うので、やはりおかしいなと思ったら調べることをおすすめします。

# 学習の進め方

ながれは下記のとおりです。

- [おすすめ] Google Cloudの基本的な内容を抑えておく。（Associate Cloud Engineer 認定資格 で問われること）
- [できるだけ] Skills Boostのコースを受講し、ラボ（ハンズオン）も交えながら基本的なことを勉強する。
- [できるだけ] コース内でサポートされなかった関連プロダクトのラボもできるだけ実践する。
- [おすすめ] 最低限の公式ドキュメントを読む。
- [必須] 模擬試験をできるだけたくさんこなし繰り返す。また、その問題に紐づく形で公式ドキュメントの関連細部を読み進める。

問題の正解はほぼ公式ドキュメントに記載されているかと思いますが、正直それらを全部読んで理解するのは大変です。

私は過去にGoogleはもとよりAWS、MicrosoftやOracleなんかのIT試験を受けたことがありますが、いずれもだいたい同じ流れでやって資格取得していました。今回も同じやり方で試験に合格できました。

上述の [必須] だけでも試験に合格することは可能かもしれませんが、試験でハズレを引くと過去問に似たものがあんまり出ない場合があるので（私の今回のPCD試験がそれだった）、落とすリスクが高くはなりそうです。

また、今回は試験勉強を進める上で「ChatGPT」がかなり使えました。こちらは後述します。

# 問題を解く上でのポイント

### 「なぜその選択肢が間違っているのか」を理解しておく

問題は選択式です。最低4つくらいの選択肢から正しい選択肢を1つないし複数を選ぶ形式です。

問題を解く上でのポイントは「なぜその選択肢が間違っているのか」を理解しておくことかなと思っています。誤った選択を選択肢から消去していき答えを見つける感じです。正解だけ覚えておくと迷ってしまうことが多々あります。

### 要件を意識して問題を読む

問題では各種要件に対してどのようなソリューションで解決するかが問われます。

特に、下記についてを注視して読みます。これがプロダクト選定（回答）の指針になります。

- リアルタイムか定期（バッチ処理）でも良いのかか
- ストリーミングか非ストリーミングか
- コスト重視か
- 開発者（技術者）か非開発者（非技術者）か
- 開発リソースが限らられているのか
- グローバルか非グローバルか
- トランザクションか非トランザクションか
- 分析向けか否か
- 可用性を重視か
- 時系列データか
- オンプレミスからの移行か
- サーバレスか非サーバレスか
- 更新処理が発生するか
- SQLでのアクセスが必要か
- GUIインターフェースが必要か
- 求められているは「調査方法」なのか「解決方法」なのか

### お決まりのパターンがある

テクニックというか、「こう聞かれたら答えはこれ」みたいなのがあります。
これは、各カテゴリの模擬試験問題をやってると自然にわかってくると思います。

例えば、下記はPDAの例です。

| 〜と言えば | プロダクト |
| --- | --- |
| メッセージング | Pub/Sub |
| ETLの黄金パターン | Pub/Sub → Dataflow → BigQuery |
| 大規模なデータの高速な読み書き | Bigtable |
| 遅延データの処理 | Dataflowでウォーターマークとタイムスタンプ |
| 大量データをGoogle Storageへ移行 | Transfer Appliance、Interconnect |
| オーケストラレーション | Composer |
| GEO（地理空間）データ | BigQuery |
| 水平方向スケーリングするトランザクション、グローバル |  Spanner |
| ストリーミング | Pub/Sub、Dataflow、Datastream |
| Apache Kafkaの移行 | Pub/Sub |
| Apache Beam | Dataflow |
| Apache Airflow | Composer |
| Hadoop環境の移行 | Dataproc |
| HadoopのHDFSの移行 | Cloud Storage |
| BigQueryのチューニングの基本 | パーティショニングとクラスタリング、マテリアライズド・ビュー |
| トランザクションが必要なDB | Cloud SQL、Spanner |
| 時系列データ | Bigtable |
| コスト削減 | Cloud Storage、プリエンプティブル VM |
| 非エンジニア向けのデータ加工 |  Dataprep、Data Fusion |
| 他システムからのデータ取り込み | Datastream、BigQuery Omni |
| 他組織とのデータの共有 | AnalyticsHub、承認済みデータセット |

など

# 今回から学習に取り入れたこと（ChatGPT）

以前は利用することができませんでしたが、今回はかなり活躍してくれました。

具体的には、

- プロダクトや機能説明
- 回答の推測
- 試験問題の作成

で利用しました。

## プロダクトや機能説明

公式のドキュメントは膨大なので、各プロダクトの概要やメリットなどをまとめてもらいます。

プロンプトの一例

```
「Dataplex」に関する概要、知っておくべきことをまとめて。
```

## 回答の推測

問題と選択肢から回答を推測してもらいます。

これは、

- 回答の説明がなく、答えしか記載されていない模擬試験問題
- 模擬試験問題の回答が納得いかない場合
- 同じような問題で回答が異なる

といったケースで役立ちます。
期待した回答と違う結果の場合、「正解は4らしいけど？」といった感じで返すと、それを踏まえてもう一度推測してくれます。

プロンプトの一例

```
次の問題に対する回答を選択肢から推測してください。正解または不正解と、それぞれの回答にはその理由を含めてください。

問題：
多数のファイルを含む Cloud Storage バケットにある Apache Hive パーティション分割データの外部テーブルを作成しました。このテーブルに対するクエリが遅いことに気付きました。これらのクエリのパフォーマンスを改善したいと考えています。何をすべきでしょうか?

回答の選択肢：
1. 共通のテーブル名プレフィックスを使用して、Hive パーティションごとに個別の外部テーブルを作成します。ワイルドカード テーブル クエリを使用して、パーティション分割データを参照します。
2. Hive パーティション分割データ オブジェクトをマルチリージョン Cloud Storage バケットに移行します。
3. Hive パーティション分割データ オブジェクトのストレージ クラスを Coldline から Standard に変更します。
4. 外部テーブルを BigLake テーブルにアップグレードします。テーブルのメタデータ キャッシュを有効にします

```

## 回答の推測（英語版）

こちらは問題が英語の場合に使えます。
PCDのコースに含まれる確認問題は英語なので、そのときに利用しました。

```
次の問題はGoogle Cloudのプロダクトに関する問題です。
正解を推測してください。そして、「問われている内容」「各選択肢」「選択肢の正誤」を、それぞれ「日本語」で解説をお願いします。

問題：
・・・・・

回答の選択肢：
1. ・・・・・・
2. ・・・・
3. ・・・・・・・・・

```


## 試験問題の作成

PDEは試験範囲に変更が入りましたが、まだそれらに対する模擬試験問題があまり出回っていません。
なので、それらの新しいプロダクトに関する問題を作らせて解いてみるようにしました。

プロンプトの一例

```
GoogleのProfessional Data Engineer資格試験対策として、試験を想定した試験問題を5つ作ってください。
```

```
GoogleのProfessional Data Engineer資格試験対策として、「Dataplex」に関する試験問題を5つ作ってください。
```

## 小学生でも分かるように

難しいワードなんかはこれも使えると思います。

```
「KMS」「CMEK」「EKM」の違いを、小学生でも分かるように簡単に説明して。
```

# PDEにおける、2024年での試験範囲変更について

PDEは2024年に入ってから、試験の範囲に変更が入っています。
主な変更点は下記のようです。

## 削除された部分

- 機械学習関連の部分
    - ML関連のAPI (Vision API、Speech API、AutoML)
    - 機械学習モデルの再トレーニング（AI Platform Prediction、AI Platform Training、BigQuery ML、Kubeflow、Spark ML）

## 追加された部分

- 最近追加されたデータ分析サービス
    - Dataplex
    - Data Catalog
    - Datastream
    - Dataform
    - Workflows
    - Analytics Hub
    - BigQuery Omni
    - BigLake
    - AlloDB for PostgreSQL

## 今回の試験でどうだったか

### 機械学習に関すること

出題されませんでした。

試験範囲の変更により出題されませんでした。以前は試験問題として「ML関連のソリューション」や「データセットのトレーニング」、「線形回帰」みたいなワードが入ってくる問題が出題されていましたが、今回はそういった問題をみませんでした。

過去の模擬試験問題なんかを見ているとそういった問題が多く出てきますが、今後、PDEを受験する上でそれらはノーマークで良いんじゃないかな・・と思っていましたが、機械学習まわりについて出題されたという報告があるので、多少の対策は必要なのかもしれないです。

### Dataplex

出題されました。
主にデータメッシュ（Lake、Zone、Asset）についてが出題されました。
Dataplexはその他にデータカタログやDLPなどが絡んできますが、このあたりも抑えておいたほうが良いと思います。

### BigLake

出題されました。
外部テーブル扱ったソリューションとして。BigLakeの特徴を抑えておく必要があります。

### Datastream

出題されました。
他のシステムのデータをBigQueryで統合するといったシチュエーションでの問題でした。

### Dataform

出題されませんでした。

### Workflows

出題されました。
Workflowを使っていて、その機能では解決できない問題をどう解決するかみたいな問題でした。

### Analytics Hub

出題されました。
このプロダクトは何回か出てきました。ただパターンが決まっているので楽勝だと思います。

### BigQuery Omni

出題されませんでした。
しかし、Datastreamと並んで今後出題されるケースが出てくると予想しています。

### AlloyDB for PostgreSQL

出題されました。
機能的なものではなく、CloudSQLの置き換えソリューションとしてみたいな内容でしたので、今回のケースでは容易な問題でした。
CloudSQLとSpannerの中間に存在するプロダクトだと思うので、今後狙われそうな気がします。

# 所感

下記は各試験の所感です。

## PDE

PDEは2年前に受験しましたが、今回はやはり試験範囲変更による変更点が一番気になりました。
結論、追加になった試験範囲はそれらのプロダクトの基本的なことを抑えておけば問題ありませんでした。また、プロダクト単体での試験問題はなく、他のプロダクトと交えたソリューションとして出題されました。ラボが用意されているのでひと通りこなしておくと感触が掴めて良いかと思います。

## PCA

今回が初チャレンジでした。出題に恵まれたのか、過去問に近い問題が比較的多く出たので解答を拾いやすかった印象です。
ただ、試験の内容を理解するといった部分において、出題範囲がとても広いこととPCAのキモとなる「ネットワーク」「セキュリティ」まわりに難しさを感じました。（この辺りをきちっと理解しているインフラエンジニアはやっぱりすごい）
Google Cloud資格の受験がはじめてでいくつか取得するつもりであれば、ACE（Associate Cloud Engineer）の次にこのPCAを取得することをおすすめします。それらの知識がPDE、PCDに活かせる部分があるためです。

## PCD

今回が初チャレンジでした。こちらは逆に出題に恵まれず、過去問があまり役に立たず正直だめかと思いました。（笑
ApigeeやAlloyDB、Workflowsなど現行の試験問題集にはない出題もけっこうありました。
また、PCAっぽい出題もちらほらあり、先にPCAの勉強をしていたのが功を奏したかもしれません。
PDEとPCAは20分くらいで終わったけど、PDEは時間ギリギリまで考えて見直して、めっちゃ疲れました・・・。

# おわりに

これから試験を受ける方に少しでも役に立つとうれしいです。
あと、やっぱりChatGPT先生が偉大すぎました。