Google Cloud Professional Data Engineer Certifiedに合格した

2021/02/23に受験しまして、合格しました。やったー。

前提: 受験前の私の状態

受験前もこの一年ほどデータエンジニアリング的な仕事はしていました。ただ、メインで使っているのもBigQueryくらいで、データに対する要求(データ量やリアルタイム性、可用性など)はそこまで厳しいものではなかったと思います。別に「仕事をサボって質を下げていた...」というわけではなく、過剰品質でデータを提供するより、他にもやるべきこと(データ分析など)はたくさんあったためです。

また、機械学習はある程度専門でやっていたため、一般的な知識(再現率とか正則化とか過学習とか)は持っていました。ただ、Google Cloudで提供されている機械学習関連のマネージドサービスにはついてはそれほど知らない状態でした。

なぜ受験したか

今後、より広く深い知識が要求される案件がきたときに、ある程度自信を持って対応できる専門性を持っておきたかったからです。もちろん、実務で経験しないとほとんど意味はないと思いますが、頭の中に「こういう話題に注意したほうがいいな」というインデックス(地図)があるのとないのとでは、それなりに違いがあると思います。ぐぐる単語が分かるとか、比較{軸,対象}が分かるとかね。

本で勉強してもよかったのですが、どれくらい理解しているかのベンチマークがあると調子が出るなぁと思って試験を受けることにしました。

試験のための準備

データエンジニアリングで頻出の話題をカバーする

BigQueryくらいしかロクに知らなかったので、データエンジニアリングの分野の地図を頭に叩き込むことをまずやりました。例えば、以下のようなもの。

  • Cloud Pub/Subでストリームデータの取り込みをして、Dataflowで移動平均などを考慮しながらデータの加工をし、BigQueryCloud Bigtableに書き込む
  • オンプレからクラウドへの移行
    • 例: オンプレでApache Kafkaを動かしていたものをCloud Pub/Subに移行する
    • 例: オンプレでHadoopクラスタを運用していたものをDataprocに移行する
      • HDFSをGCSに移行
  • 適切なデータストレージの選択
    • GCS / BigTable / Datastore / BigQuery / Spanner
  • 適切なコンピューティングリソースの選択

学習にあたっては、公式から出ている本をメインで勉強しました。範囲も試験範囲大体どんぴしゃなので、買っておいて損はないかなと思います。8割型、これで勉強しました。

GCPに限らず、データエンジニアリングでの基本的なトピックを頭に入れていく、という意味では以下の本もよかったなと思います。特に図解即戦力〜の本は結構気にいっていて、未だに結構読み返しています。

個別コンポーネントの知識を取り込んでいく

Professionalと付いている試験なので、大雑把な知識だけではさすがに合格できません。Google Cloud固有の知識も頭に入れていく必要があります。例えば以下のようなものを自分用のesa.ioのページにまとめていきました。本で大まかなトピックは見つつ、公式ドキュメントをしっかり見ておくようにするとよいです。普段の仕事と同じ。

  • BigTable
    • スキーマやキーの設計について。ホットスポットを回避するように
    • インスタンス / クラスタ / ノードの関係、レプリケーション、アプリケーションプロファイル
    • 結果整合性、書き込み後読み取りの整合性、レプリケーションしない場合は強整合性など
  • Spanner
    • どういうときはCloud SQLで、どういうときはSpannerを選ぶか
    • primary indexやsecondary indexesの設計
    • インターリーブとは何か、どういうときに必要か
  • Dataflow
    • ウィンドウの種類(タンブリングウィンドウ / ホッピングウィンドウ / セッションウィンドウ)
    • 遅延データの取り扱い、ウォーターマーク、トリガーについて
    • 安全なパイプラインの停止や更新の仕方について

権限 / セキュリティ / 監査回り

試験の勉強をしてよかったこととしては、権限 / セキュリティ / 監査 / データに関連する法律など、私はなんとなくでしか理解していなかったところをしっかり勉強できた点が挙げられると思います。

  • Cloud IAM / 権限周り
    • 基本的な思想はもちろん、条件付きロールバインディングやポリシーにおける監査構成などは知らなかったこともあって勉強になった
    • 承認済みビューやData Catalogを通じたカラムレベルのアクセス制御など
  • セキュリティ

練習問題をひたすら解く

これまでのところで大まかに情報が頭に入ったら、Official Google Cloud Certified Professional Data Engineer Study Guideの練習問題をひたすら解きました。チャプターによっては50%しか正答率がないものもあったので、繰り返し解きました。大体3周くらいすると、正答率が85~90%に到達するようになりました。

3周もやっていると問題文を覚えてしまった疑惑もあったので、Udemyの練習問題を購入して、こちらも全部解きました。

試験当日

オンラインで受けることもできましたが、ブラウザクラッシュしたりすると面倒そうだな...などのことを考えてテストセンターで受けました。京都は生活圏内にテストセンターがあって、便利。

公式本やUdemyの練習問題、模擬試験と比較して、本番の問題は結構難しかったです...(練習問題の1.5倍くらいの難易度に感じた)。正直落ちたと思った。ただ、試験時間は2時間あって、見直しが3周くらいはできる時間があるので、落ち着いてありえる選択肢に絞っていくと何とかなる...んじゃないか?結構ちゃんとやらないと、普通に落ちる試験だとは思います。がんばりましょう。

なお、試験の受験料は会社から出してもらいました。ありがとうございます。

これから

試験には受かったものの、実務経験がなさすぎるので、これから実践経験をどんどん積んでいきたいなと思います。俺たちのデータエンジニアリングはこれからだ。

参考