GCP Professional Data Engineer 認定資格の勉強法

# はじめに
[Google Cloud Certified Professional Data Engineer](https://cloud.google.com/certification/data-engineer?hl=ja) を 2020 年 8 月に受験したので、その際に調査した試験内容や実施した勉強方法についてご紹介します。

自身も他の方の記事を参考にさせていただき、無事に合格することができました。自身の備忘録も兼ねて現時点で最新の情報を共有します。こういったクラウドの認定資格は初めて受験したのですが、想像よりもしっかり難しかったので隅々まで勉強しておくことをおすすめします。

![logo_lockup_cloud_rgb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244338/c0a623b3-9b53-1098-7cdb-79d94b0b69f0.png)

# 試験内容
Professional Data Engineer は、Google Cloud のデータエンジニアリングに特化した認定資格です。この資格を保有すると、**「データ処理システムの設計」「データ処理システムの構築と運用化」「機械学習モデルの運用化」「ソリューションの品質の確保」**に関する能力が評価されます。

Google Cloud のすべての認定資格の有効期間は**認定を受けた日から 2 年間**です。認定資格を維持するには、再認定を受ける必要があります。

## 受験方法
受験するには、[こちら](https://www.webassessor.com/googlecloudjp/)から Google Cloud Webassessor アカウントを作成・ログインし、受験日時等を選択して予約します。以下の２種類の方法から選択し、受験することができます。自分の場合は遠隔監視オンラインの受験要件を満たすのが面倒だったので、テストセンターで受験しました。

- 遠隔監視オンライン（リモート監査のもと家で受験）
    - [受験要件](https://www.webassessor.com/wa.do?page=certInfo&branding=GOOGLECLOUD&tabs=13)を満たす必要がある
- テストセンター（指定のテストセンターを予約して受験）

問題の形式を英語と日本語から選択することができ、試験時間は2時間で、全50問になります。受験の際には身分証明書 2 つ（運転免許証 / 健康保険証）と受験者承認コードが必要なのでご注意ください。

## 受験日時
Google Cloud Webassessor から好きな日時を選択することができます。受験のキャンセルまたは日時の変更は、**テスト開始時刻の 72 時間前まで**なら無料で可能です。

## 受験料金
受験料金は **$ 200 (税別)** と安くはないので、会社に所属している場合は補助がでないか一応確認した方が良いです。試験に不合格となった場合、最初は 14 日を過ぎると再度受験できるようになり、2 度目は 60 日間、3 度目は 1 年間経過後に再受験が可能となりますが、**受験料金は毎回支払わなければなりません。**

# 勉強方法
自身がおすすめの勉強方法を順番にご紹介します。もちろん勉強方法は人それぞれですし、前提知識も様々かと思いますので、あくまで参考程度に思ってください。

## １. 試験範囲の把握
試験範囲は[こちら](https://cloud.google.com/certification/guides/data-engineer?hl=ja)から確認することができます。かなり満遍なく出題されます。公式記載のほぼすべての項目において出題があったと記憶していますので、少なくとも1度は公式のドキュメント等で目を通しておく必要があります。

## ２. Coursera の受講
Coursera というオンラインのプラットフォームで Google Cloud が専門講座を提供してくれています。[Data Engineering, Big Data and ML on Google Cloud](https://www.coursera.org/specializations/gcp-data-machine-learning-jp) は、日本語版（日本語字幕）のコースも存在するので安心して受講することができます。

こちらのコースで、**試験範囲の GCP サービスを一通り学習することができます。**また、公式記載の出題範囲において、**設計や考察などのドキュメントではなかなか学習しにくい部分についての説明を受けることができる**ので受講は必須かと思います。

すべて受講するとなると結構な時間が必要で根気がいると思うので、修了証の取得は無視して自分に必要なところだけ学習するなどの工夫があった方が良いと思います。

## ３. 模擬試験の受験
[こちら](https://cloud.google.com/certification/practice-exam/data-engineer?hl=ja)から模擬試験を受講することができます。**出題される問題は毎回同じ**です。ある程度学習してからの方が良いため Coursera 受講の後をおすすめします。模擬試験の日本語が結構わかりずらかったので心配していたのですが、本番の試験では概ね問題ない程度の日本語での出題でした。

追加で模擬試験の問題を解きたい場合は、英語ですが [ExamTopics](https://www.examtopics.com/exams/google/professional-data-engineer/view/) というサイトで解くことができます。自分が探した限りでは、ここ以外に良いサイトはあまり見つかりませんでした。

また、ここではあくまで出題形式に慣れることと苦手箇所を把握することが重要なので、これらの慣れや理解が済んだら必要以上に問題を解く必要はないと思います。

## ４. ドキュメントの閲覧
試験範囲の GCP サービスの公式ドキュメントは、業務で利用している等で自信のあるサービス以外は**すべてある程度目を通しておく必要があります。**具体的には以下のドキュメントは MUST で必要かと思います。

以下は ★ の数が多いほど出題される回数が多いもしくは問題を解く上で必要な知識になりやすいサービスという自分の主観です。満遍なく出題されるため、★ の数が少なくても 1 問は出題される可能性が高いです。

**★★★★★**

- ストレージ系のサービス - 各ストレージの特徴、スキーマ設計、ホットスポット化
    - [Cloud BigQuery](https://cloud.google.com/bigquery/docs?hl=ja)
    - [Cloud Bigtable](https://cloud.google.com/bigtable/docs?hl=ja)
    - [Cloud Spanner](https://cloud.google.com/spanner/docs?hl=ja)
    - [Cloud SQL](https://cloud.google.com/sql/docs?hl=ja)
    - [Cloud Datastore](https://cloud.google.com/datastore/docs?hl=ja)
    - [Cloud Storage](https://cloud.google.com/storage/docs?hl=ja)
- データパイプライン / ストリーミング系のサービス - システム設計
    - [Cloud Dataflow](https://cloud.google.com/dataflow/docs?hl=ja)
    - [Cloud Dataproc](https://cloud.google.com/dataproc/docs?hl=ja)
    - [Cloud Composer](https://cloud.google.com/composer/docs?hl=ja)
    - [Cloud Pub/Sub](https://cloud.google.com/pubsub/docs?hl=ja)
- オンプレ環境のテクノロジ - GCPで代替可能なサービスの把握
    - Apache Spark / Hadoop エコシステム
    - Apache Kafka

**★★★★**

- アクセス制御 / 監査系のサービス - プロジェクトマネジメント
    - [Cloud IAM](https://cloud.google.com/iam/docs/overview?hl=ja)
    - [Cloud Audit Logs](https://cloud.google.com/logging/docs/audit?hl=ja)
- データ移行系のサービス - 適切なデータ移行サービスの選択
    - [Transfer Appliance](https://cloud.google.com/transfer-appliance/docs/2.2?hl=ja)
    - [Transfer Service](https://cloud.google.com/storage-transfer/docs/overview?hl=ja)
- セキュリティ系のサービス - CSEK や CMEK の違い、個人情報の保護
    - [Cloud KMS](https://cloud.google.com/kms/docs?hl=ja)
    - [Cloud Data Loss Prevention API](https://cloud.google.com/dlp/docs)
- IoT / ストリーミング系のサービス - Pub/Sub と Dataflow との連携
    - [Cloud IoT Core](https://cloud.google.com/iot/docs?hl=ja)

**★★★**

- 機械学習系のサービス (学習済みモデル) - AutoML との棲み分け
    - [Cloud Vision API](https://cloud.google.com/vision/docs/?hl=ja)
    - [Cloud Video Intelligence API](https://cloud.google.com/video-intelligence/docs?hl=ja)
    - [Cloud Natural Language API](https://cloud.google.com/natural-language/docs?hl=ja)
    - [Cloud Translation API](https://cloud.google.com/translate/docs?hl=ja)
    - [Cloud Text-to-Speech API](https://cloud.google.com/text-to-speech/docs?hl=ja)
    - [Cloud Speech-to-Text API](https://cloud.google.com/speech-to-text/docs?hl=ja)
    - [Dialogflow](https://cloud.google.com/dialogflow/docs?hl=ja)
- 機械学習系のサービス (AutoML) - 学習済みモデルとの棲み分け
    - [AutoML Vision](https://cloud.google.com/vision/automl/docs?hl=ja)
    - [AutoML Video Intelligence](https://cloud.google.com/video-intelligence/automl/docs/beginners-guide?hl=ja)
    - [AutoML Natural Language](https://cloud.google.com/natural-language/automl/docs?hl=ja)
    - [AutoML Translation](https://cloud.google.com/translate/automl/docs?hl=ja)
    - [AutoML Tables](https://cloud.google.com/automl-tables/docs?hl=ja)

**★★**

- データパイプライン (NoCode) / データ検証系のサービス - 関連技術に精通する人がいない場合
    - [Cloud Dataprep](https://cloud.google.com/dataprep/docs?hl=ja)
    - [Cloud Data Fusion](https://cloud.google.com/data-fusion/docs/concepts/overview?hl=ja)
- 機械学習モデル運用系のサービス - マネージドなモデルの運用
    - [AI Platform](https://cloud.google.com/ai-platform/docs?hl=ja)
    - [Kubeflow](https://www.kubeflow.org/docs/gke/)


**★**

- データカタログ系のサービス - データセットの検索
    - [Data Catalog](https://cloud.google.com/data-catalog/docs/concepts/overview?hl=ja)
- コンプライアンス - 法令遵守
    - 医療保険の相互運用性と説明責任に関する法律（HIPAA）、児童オンライン プライバシー保護法（COPPA）、FedRAMP、一般データ保護規則（GDPR）など

出題範囲はこれら以外にもあると思いますが、概ね上記あたりから出題されると思います。

## ５. GCP 書籍の閲覧
金銭と時間に余裕があれば [Google Cloud Platform 実践 機械学習基礎開発 MachineLearning / データ分析](https://www.amazon.co.jp/Google-Cloud-Platform-%E3%83%93%E3%83%83%E3%82%B0%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E5%9F%BA%E7%9B%A4%E9%96%8B%E7%99%BA%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AA%E3%83%BC%E3%81%A7%E5%AD%A6%E3%81%B6Google-BigQuery-ebook/dp/B0824F8ZZD/ref=sr_1_1?dchild=1&qid=1598273075&refinements=p_27%3A%E3%83%88%E3%83%83%E3%83%97%E3%82%B2%E3%83%BC%E3%83%88&s=books&sr=1-1&text=%E3%83%88%E3%83%83%E3%83%97%E3%82%B2%E3%83%BC%E3%83%88) は読んだ方が良いです。

機械学習の基礎（気持ち程度の記載ですが、これくらいの知識で本試験では十分かなと思いました）や **BigQuery ML**, **AI Platform** 等の機械学習関連のサービスの理解があやふやな方、**Dataflow (Apache Beam)** の実装経験がない方には特におすすめします。

Apache Beam の実装については以前僕が投稿した[こちらの記事](https://qiita.com/esakik/items/3c5c18d4a645db7a8634)でも学習はできますが、**Window** や **Trigger** などストリーミング処理で利用する機能についての説明はありません。Dataflow のストリーミング処理は出題される可能性がかなり高いため、こちらの書籍等でしっかり押さえておいた方が良いです。

# 受験後
Google Cloud 認定資格の合格基準は公表されていないのでわかりません。また、受験後のフィードバック等もありません。

>Google 認定資格試験の目的は、各受験者が合格基準を満たしているか否かを判定することにあります。受験者の「能力」を診断またはランク付けすることではありません。そのため、試験のスコアが受験者にとって大きな意味を持つことはなく、かえって誤って解釈される可能性があります。

受験が終了すると、合格か不合格か画面にすぐ表示されるみたいなのですが、自分の場合は見逃してしまったのか確認できませんでした。しかし、予約を行った Google Cloud Webassessor からもすぐに合否を確認することができました。

受験後から数日経つと、Google Cloud から正式に合否の通知がきます。メールに記載のクーポンコードを利用すると、[Google Cloud Certification Perks Webstore](https://shop.googlemerchandisestore.com/certificationperks/) からパーカー（もしくはリュックサック）と Google Cloud のステッカーを注文することができます。

![スクリーンショット 2020-08-25 8.07.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244338/24afd866-459c-1bce-2d93-6c49245576a0.png)

# まとめ
Professional Data Engineer の試験内容や勉強方法についてご紹介しました。少しでも参考になるところがあれば幸いです。

他の Google Cloud の認定資格（Professional Cloud Architect）も受験しようかと思っていたのですが、有効期間と再認定のことも考えると結構大変かもしれないですね。。