本記事では、Google 認定資格の 1 つである Professional Data Engineer に一発合格するためにやるべきことをまとめています。Google 公認資格は国際資格ということもあり、国内の出版社から決定版といえる対策本が出ていないのが現状です。私も Professional Data Engineer を受験するにあたり、参考となる書籍の少なさから、受験対策として何をすべきか非常に迷いました。この記事では、そんな私がお勧めする効率的な Professional Data Engineer のための勉強方法についてまとめています。
ちなみに、私の簡単なプロフィールは次の通りです。
- 新卒 1 年目
- 大学で Deep Learning の研究に従事
- Python 以外のプログミング言語の経験はほぼなし
- 「は? GCP て?? 何それ、美味しいの??」ぐらいしか GCP の知識はありませんでした
- その他クラウド利用経験はほぼなし(AWS EC2 を少し触ったことがあるぐらい)
どうですか? こんな私でも約 1 ヶ月間、全力で勉強することで Professional Data Engineer に一発合格することができました。よって、私が以降で解説する勉強方法を実践することで、クラスドソリューションの経験がない方でも確実に試験に合格できるはずです。また、クラウドソリューションの経験がある方にとっても、具体的な試験の勉強フローを考える上で、こちらの記事は参考になるかと思います。
Professional Data Engineer の予備知識
勉強に使った教材
この記事をみている方が最も知りたいものは、Professional Data Engineer 対策に使える教材だと思います。実際に、私が試験対策のために使用した教材は次の通りです。上から、実際に取り組んだ順番になります。
- Cousera: Data Engineering on Google Cloud Platform 日本語専門講座
- Qwiklabs: GCP の基礎、Baseline; Data, ML, AI、機械学習 API、Scientific Data Processing、データエンジニアリング
- 模擬試験 1 回目(正答率: 66.7%)
- Cousera: Preparing for the Google Cloud Professional Data Engineer Exam 日本語版
- Kinfle 試験対策本 2 周
- 模擬試験 2 回目(正答率: 93.3%)
私の場合は、以上の 6 工程が終わるのに大体 1.5 ヶ月ぐらいかかりました。いや、勉強に 1 ヶ月以上かかってるじゃないか!!、と思った方もいらっしゃると思いますが、安心してください。これら全ての工程が、必ずしも必要とは限りません。というよりも、今考えると過去の私はかなり効率の悪い勉強方法をしていたと思います。例えば、試験に関係していそうな Qwiklabs のクエストは片っ端から受講していたために、全てのクエストを終わらせるのに 1週間近い時間を費やしました。しかし、そのクエストの中には、Cousera で取り扱っている内容と近いものもあり、効率よく勉強できたいたとは言いえません。短い期間で試験に合格するためには、効率的に勉強を進めていく必要があります。
Professional Data Engineer の出題範囲は
効率よく勉強を進めて、短い対策期間で試験に合格するためには、その試験で出題されるテーマをしっかりと抑えておく必要があります。Professional Data Engineer に合格するには、その名前の通り、「データ」に関わる様々な GCP のコンポーネントに関する知識を有している必要があります。試験での具体的な出題範囲は Google Certificaion の公式ページに記載されている通りですが、実際に試験を体験した私の肌感としては、出題問題は次の 5 つに大別できるかと思います。
- データ分析ソリューションの選択(30%)
- (ビッグ)データに合わせたストレージの選択と費用対効果の高い使用方法(25 %)
- セキュリティとアクセスポリシー(18%)
- 機械学習プロダクトの適切な利用(15%)
- データ分析に関わる OSS に関する知識(12% )
ここに記載されている割合は、私の経験則に基づく数値になりますので、厳密に正確であるとは言い切れません。ただ、模擬試験や本試験を実際に受けてみて「出題範囲は広くて細し、しかも、満遍なく聞いてくるな〜」と強く感じたため、大体の傾向を知るためにも、この割合を示しています。次は、それぞれの出題範囲で問われる内容について具体的に説明していきます。
1. データ分析ソリューションの選択(30%)
GCP におけるデータ分析に関わるコンポーネントとして次のものがあけられます。
- BigQuery
- Cloud Dataflow
- Cloud Dataproc
- Cloud Pub/Sub
- Cloud Dataprep
- Cloud Composer
試験では、それぞれのコンポーネントの機能と、どういったユースケースで活用することができるかを理解しているかが問われます。
2. (ビッグ)データに合わせたストレージの選択と費用対効果の高い使用方法(25 %)
GCP には、次のように様々なタイプのストレージオプションがあります。
- Cloud Storage
- Cloud SQL
- Cloud Spanner
- Datastore
- Bigtable
- BigQuery
試験では、それぞれのストレージオプションの違いを理解しているのかを試されます。
(この画像は https://cloud.google.com/compute/docs/disks?hl=ja から引用しております)
こちらの図にあるように、ストレージオプションを選択する流れを理解しておく必要があります。
3.セキュリティとアクセスポリシー(18%)
GCP では、Cloud Identify and Access Management(Cloud IAM)を使用して、組織やフォルダー、リソース、プロジェクトなどの単位で、アクセス制限を設定できます。また Cloud IAM では、Primitive roles や Predefined roles、Custom roles によるアクセス制限ができます。Primitive roles や Predefined roles では、各種コンポーネントごとに、 Google によって決められたプロジェクトやリソースの単位でアクセス制御が適用されます。よって、予めそれぞれのコンポーネントごとに IAM を設定できるレベルと、ユーザーやグループに適用されるアクセス制御の内容を把握しておく必要があります。
また試験では、GCP 上で取り扱われるデータを暗号化する方法についても問われます。GCP におけるデータの暗号化は、大きく分けて次の 3 つに大別されます。
- Customer Managed Encryptions Keys(CMEK)
- Customer-Supplied Encryptions Keys(CSEK)
- Client-Side Encryption(CSE)
CMEK では Cloud Key Management Service(Cloud KMS)を用いて鍵の作成やローテンションができます。また、CSEK は使用できるケースが限られているので、どういったケースで適用できるのかに留意しながら勉強していくことが大事です。同様に、CSE を使用するべきケースを理解しておく必要がある。
4. 機械学習プロダクトの適切な利用(15%)
GCP 上で ML を利用するパターンは大きく分けて、次の 3 パターンに大別することがでます。
- 学習済み機械学習モデルの API を利用
- AutoML を使用した独自モデルの作成
- Cloud Machine Learning Engine を使用したモデルの構築・作成とデプロイ
試験では、それぞれのユースケースが問われます。ただ、手軽に活用することのできる事前学習済み API が正解となる問題が多い印象です。
5. データ分析に関わる OSS に関する知識(12% )
試験では、オンプレミスで稼働しているシステムを GCP 上に移行する手順や移行先のコンポーネントを選択する問題が多く出題されます。つまり、GCP と互換性のある OSS について理解しておく必要があります。試験で主題される OSS として代表的なものは次の通りです。
- Hadoop
- HDFS <==> Cloud Storage
- Spark
- Pig
- Hive <==> BigQuery
- Cassandra <==> Datastore
- MongoDB
- HBase <==> Bigtable
- Redis
- MySQL
- kafka <==> Cloud Pub/Sub
ほとんどが、Apache Hadoop エコシステムのコンポーネとですが、ここで大事なのは GCP のコンポーネントとの互換性です。例えば、Cassandra は NoSQL 分散データベースであり、GCP の Datastore 相当の OSS になります。
Professional Data Engineer に合格するための学習手順
ここまでで、Professional Data Engineer の出題範囲の広さから、勉強方法についてより混乱してしまった方もいるかもしれません。しかし、安心してください。ここからは、学習時に使用すべき学習コンテンツや具体的な勉強の流れ、勉強時の注意点について丁寧に説明していきます。
絶対にやるべき学習コンテンツは
私がおすすめする学習コンテンツは、次の通りです。本記事では、メイン教材とサポート教材の 2 パターンを用意しました。メイン教材は必ず全て網羅してください。サポート教材はメイン教材での勉強中に行き詰まった場合や、メイン教材だけでは物足りなかったり、想定していたよりも早くメイン教材を完了した場合に使用してみてください。
メイン教材
この Cousera 講座では、試験の出題範囲のうち、 6 割り程度をカバーしている印象です。講座内では、各コンポーネントの誕生背景や様々なユースケースを交えて、GCP を用いたデータエンジニアリングについてわかりやすく説明されています。また、各セクションごとに Qwiklabs を使用した実践ラボをクリアする必要があるため、各コンポーネントの操作も自然と身についていくことでしょう。
Cousera 受講中は、ボーッと動画を見るのではなく、わからないで点が出てきらたらその内容を理解できるようになるまで動画を見直したり、Google のドキュメントを読み込んだりしてください。私は Cousera の視聴中に、このわからない箇所を徹底的に理解する作業をサボってしまっていたので、後になってすごく後悔しました。わからないまま進んだとしても、どのみち試験で出題される可能性がある以上、後ほどドキュメントを読み込むハメになるので、面倒臭がらずに、わからない箇所は徹底的に理解するようにしましょう。また、こちらの Cousera 講座だけではカバー仕切れていないコンポーネントもあります。
- Cloud Composer
- Cloud IoT Core
- Cloud Function
- Dataprep
などは、Cousera の講座内で詳しい説明があまりなされていないので、ドキュメントを読んだり、youtube の動画などを使って理解を深めていくのも 1 つの手です。例えば、Google Cloud Japana チャンネルによって投稿された こちらの動画 では、 Cloud Composer の概念や活用事例について詳しく説明されています。
Cousera では、講義を終了すると認定証が発行されます。この認定証は履歴書などにも使えますので、ぜひ Cousera にチャレンジしみてください。
- 模擬試験
Cousera での学習が済んだら、模擬試験にチャレンジすることで、問題の傾向と自分の理解が足りていない単元を把握します。ここで注意すべきことは、模擬試験で出題される問題は、本試験と比べてかなり優しく作られている点です。本試験の問題の方が、模擬試験の問題の 20% ほど難しい印象です。テスト直前までに、模擬試験で 100 点近い点数を取れるようになっておく必要があると言えます。
模擬試験で大体の問題の出題形式を把握したら、Cousera のPreparing for the Google Cloud Professional Data Engineer Exam 日本語版 講座で、出題範囲と自分が理解できていない範囲を改めて整理します。自分の理解が足りない部分は Google のドキュメントを読んだり、この次に説明するサポート教材を活用して理解を深めてください。また、途中で確認問題や後半に模擬試験もありますので、本番の問題の傾向を掴むためにも非常に役立ちます。私は、この Cousera 講座の存在を試験の 1 週間ほど前に知りました。こちらの Cousera 講座をもっと早く受講して、自分の苦手な範囲を正確に洗い出すことができていれば、もっと効率よく少ない勉強時間で試験に合格できていたと思います。
こちらの Udemy 講座はかなり参考になりました。本番と同じ形式で 2 時間で 50 問の問題にチャレンジすることができます。また、問題は 3 試験分、合計 150 問の問題が用意されている。用意されている問題の中には、かなり本番の問題に近いものもありますので、こちらもほぼ 100% 正解できるまでやり込むべきかと思います。ただ、こちらの講座は英語になりますので、英語が苦手な方は Chorome のページ翻訳機能を使用することをおすすめします。また、問題によっては答えが間違っている場合もあります。コメント欄に様々な回答例が寄せられているので、そちらチェックすることもおすすめします。Udemy は 3 ヶ月に 1 回ぐらい割引セールが行われるので、そのタイミングでこの講座を買っておくことをおすすめします。
サポート教材
- Qwiklabs: データエンジニアリグ
Qwiklabs では、実際に GCP を使用してコンポーネントの操作を体験することができます。Qwiklabs には様々なクエストが用意されていますが、その中でも、私がおすすめるのがこちらのクエストです。一応、Qwiklabs では上級クエストという位置付けになっておりますが、Cousera の講座を一通りやり切った後だと、問題なく取り組めるはずです。Cousera 修了後にもう少し GCP の操作に慣れておきたいと感じた場合などに、ぜひ活用してみてください。私はこちらのクエストを 2 周して、具体的な操作方法についてのイメージを固めました。また、Cousera ではあまり触れられることのなかった Cloud IoT Core に関するクエストも含まれていいますので、ぜひ活用してみてください。
こちらの本は、GCP の全体像を掴むための決定版と言えます。GCP の各コンポーネントについて、広く浅く説明しています。Cousera で説明がなかったコンポーネントについて、その概要を理解するために非常に役立つはずです。
こちらの本では、Tensorflow と BigQuery、Dataflow について丁寧に説明されています。特に SQL や Apache Beam に不慣れな方におすすめしたい 1 冊です。私の場合は、Apache Beam についての経験がなかったため、PCollection や PTransform の概念について理解しパイプラインを設計する上での基礎固めとして、とても役に立ちました。Cousera だけでは理解しきれなかった内容を復習する上で、かなり役に立つ 1 冊となっています。
こちらの本は、Cousera の講座を受講した方にとってはお馴染みの Valliappa Lakshmanan(通称 LaK)さん著の 1 冊です。本の内容も、Cousera 講座の内容と近いので、Cousera 講座ないの動画だけでは理解が難しかった方におすすめの 1 冊になります。私自身、一通り Cousera を受講し終わってからこの本の存在を知ったのですが、もっと早く出会いたかったなー、とつくづく思っております…
合格するための学習手順
ここまで、試験の主題範囲と学習コンテンツについて説明してきましたが、ここでは具体的な学習手順について説明していきます。私が提案する学習手順は次の通りです。
- Cousera: Data Engineering on Google Cloud Platform 日本語専門講座 に取り組みながら、ドキュメントや書籍を使って理解を深める。
- 模擬試験にチャレンジして、自分の実力と苦手な単元を確認する。また、間違った問題について復習する。
- Cousera: Preparing for the Google Cloud Professional Data Engineer Exam 日本語版 に取り組んで、模擬試験の結果とも照らし合わせながら、自分が十分に理解できていない単元を把握し、ドキュメントや書籍を使って徹底的に理解できるように努める。また、この段階で GCP の操作やコマンドに不安がある場合は、Qwiklabs: データエンジニアリグ で学習する。
- Udemy: Google Cloud Professional Data Engineer Practice Dumps 2020 で 3 回分の模擬試験にチャレンジする。間違えた問題は、ドキュメントや書籍を使って完璧に理解できるようにします。そして、この Udemy 講座は最低でも 2 周はして、100 点近い点数を取れるように勉強をしてください。
- ここまで、学習したらもう 1 度模擬試験にチャレンジしましょう。正答率が 90% をきるような場合は、再度苦手な部分を確認して理解するように努めましょう。
合格するための tips
ドキュメントの読み方
Professional Data Engineer に合格するためには、必ずドキュメントを読み込むことになると思います。ドキュメントを読んでいるとベストプラクティやユースケース、節約に関する具体的な提案などが記述されている場合があります。こういったものでが出てきたら、必ずメモなどをとって理解できるまで重点的に確認してみてください。以下は、私が勉強中にまとめたドキュメントの一覧です。
-
独自の暗号鍵を使う場合は、API サービスを呼び出す過程で鍵を参照し、GCS 上などにあるデータを暗号化する。—> Cloud Key Management Service HA使用せず、独自の暗号鍵を Cloud 上にアップロードしないケースでは、この方法がベストプラクティス
-
Bigtable のスケール; https://cloud.google.com/bigtable/docs/performance
-
Datastore のインデックス爆発: https://cloud.google.com/datastore/docs/concepts/indexes#index_limits
-
Bigtable の最適化(パフォーマンステストとトラブルシューティング); https://cloud.google.com/bigtable/docs/performance
また、勉強中にはいろいろなドキュメントを行ったり来たりすることになると思います。これは、かなりの時間ロスに繋がります。よって、こういった時間ロスを避けるためにも、リソースごとに共通する用件(IAM ポリシー、ストレージの最大容量など)は、表や図にまとめることをお勧めします。また次のように、用件を一覧としてまとめているドキュメントもありますので、ぜひ活用してみてください。
- ロール一覧: https://cloud.google.com/iam/docs/understanding-roles#dataproc-roles
- 暗号 key 関連まとめ: https://cloud.google.com/security/encryption-at-rest
参考になるオススメの記事/サイト
ここでオススメする記事は、全て海外サイトのものです。ただし、英語が不慣れな方であっても、ぜひ、Google 翻訳や DeepL を駆使してでも読む価値があると思った記事を厳選してまとめています。
- 出題範囲のまとめ記事: https://medium.com/weareservian/google-cloud-data-engineer-exam-study-guide-9afc80be2ee3
- 読むべきドキュメントのまとめ記事: https://medium.com/@sathishvj/notes-from-my-google-cloud-professional-data-engineer-exam-530d11966aa0
- 模試サイト: https://www.examtopics.com/exams/google/professional-data-engineer/view/1/
どれもとても参考になりますが、3 つ目の模試サイトでは、本試験にかなり近い形式の問題にチャレンジすることができます。手が空いた場合などには、ぜひチェックしてみてください。
回答の tips
問題の中には、選択肢を読まなくても回答を予測することができるいくつかのパターンが存在します。模擬試験やドキュメントを読んでいて、そういったパターンに気付いた場合は、ぜひ逐一メモをとってみてください。以下は私のメモになります。
- ストリーミングパイプラインの設計に関する問題で、ユーザーという単語が出てきたら “セッションウィンドウ” を使用する
- 水平方向のスケーリングという単語が出てきたら “Cloud Spanner” を選択する
- オーケストレーションという単語が出てきたら “Cloud Composer” を選択する
- ペタバイトのデータや 1 度きりのデータ転送といわれたら “Transfer Appliance” を選択する
- OLAP と出てきたら “BigQUery” を選択する
- OSS (Kafka, HBase, Cassandra など)が答えになるケースは少ない
このパターンが最強とは言い切れませんが、回答に迷った場合などに、正解のパターンを理解しておくことで 1 つの問題に多くの無駄な時間を費やさなくて済むはずです。
本試験で注意すること
本試験は 2 時間で 50 問出題されます。試験時間には十分余裕があるので、難しい問題や見た事がない問題が出てきて焦らずに、とりあえず後で確認するためにブックマークに追加しておきます。後で、ゆっくりと確認するためにブックマーク機能をフル活用しましょう。おそらく、自信を持って正解と思える問題は、全体の 70% 程度になるでしょう。私の場合は、50 問のうち 14 問をブックマークに追加しました。つまり、自信を持って正解と思えたのは全体の 72% の問題となります。選択肢の中には、明らかに間違いのものが含まれていますので、焦らずそういったものを選択肢から除外して正答率をあげられるようにしましょう。
結び
確認テスト
ここまで読んでくださったあなたのために、簡単な確認テストを用意してみました。勉強後や現状の力試しのために、ぜひ、利用してみてください。
- BigQuery で直接クエリすることができる外部ソースは何か。
- BigQuery の事前定義されたロールのうち、jobUser と User ロールの違いは何か。
- BigQUuery で永続テーブルを使用することのメリットは何か。
- Ptransform のうち、Combine とはどういった操作のことを指すか。
- Dataflow ジョブをスケジューリングするために使える GCP のソリューションは何か。
- Dataproc は Bigtable のデータを操作することができるか。
- Dataproc でサポートされている Compute Engine インスタンスのタイプは何か。
- Redis の機能と用途は何か。
- Bigtable インスタンスにノードを追加することのメリットは何か。
- Bigtable では、どのようなレベルで IAM アクセス制御を設定できるか。また、Bigtable の事前定義されたロールを全て述べよ。
- Cloud Spaneer の主キーとしてふさわしいものは何か。
- Cloud ML Engine にデプロイできるモデルのフレームワークは何か。
- Cloud ML Engine で使用できるスケール階層は何か。
- Cloud Pub/Sub と Apache Kafka の機能の違いは何か。
- CSEK が利用できる GCP のコンポーネントは何か。
合格すると
ここまでに説明してきたことを参考にしていただいて、ぜひ、Professional Data Engineer にチャレンジしてみてください。機械学習以外の知識がほとんどなかった私は、本当にこの資格にチャレンジしてよかったと思っております。というのも、機械学習を活用するためには、ビッグデータを操作・解析する能力がどうしても必要になります。この資格に合格するためには、データサイエンティストに求められる素養を網羅的に理解している必要があります。もちろん、この Professional Data Engineer を持っているからといって、一流のデータサイエンティストとは言い切れません。しかし、流行りの クラウド×ビッグデータ× AI に関する知識やスキルを得る上で、この資格にチャレンジする事はとても有意義であると言えます。
試験を受け終わると、その場で暫定結果が出ます。暫定結果 “合格” と出たときは本当にうれしかったです。私のは場合は、試験の翌日にはGoogle から正式な合格通知のメールが届きしました。Professional Data Engineer に合格すると認定証が発行されるだけでなく、Google のバッチ付きのリュックかパーカーをもらうことができます。また、Google Cloud Next では、特別ラウンジに入ることができたり、リュックやパーカーなどの記念品などの特典がもらえるようです。
僕のところにも、ついにパーカーが届きました。黒いモコモコが服にいっぱいつきますが、胸元のエンブレムもカッコ良くて非常に気に入っています!!
高専から東京農工大学工学部に編入学し、大学時代は、画像生成ディープラーニングモデルの一種である GANs や学習済みディープラーニングモデルを用いた教師なしクラスタリング手法の研究に従事。入社 2 ヶ月で Profesional Data Engineer を取得。最近は Kaggle のメダル獲得を目標にデータサイエンスについて勉強中。