先日、SnowflakeのSnowPro Core認定に合格しました。
どのように勉強していたのかを備忘録的に残しておきます。
スキル、経験値としては、
です。
まずはともあれ、どのような試験なのか、何をどう勉強するべきなのかを把握するために、SnowProのStudy Guideを見ます。 Snowflake Universityというラーニングサイト(サービス)があるので、そちらのアカウントを作成しておく必要があります(無料)。
こちらをざっくり見ると、Coreのスコープは
とありましたので、この辺の領域について、試験では100問を120分で回答する必要があります。
ちなみに、試験には「SnowPro Core認定試験_日本」という日本人向けの試験がありますが、こちらの試験は問題文も選択肢もすべて英語なのですが、日本人向けに「試験時間は150分、合格のための正答率も若干調整」されているそうです。(自分の試験でも、試験時間が150分なのは確認できましたが、正答率の違いについては確認できませんでした)
なお、日本語の試験は準備中のようです。
英語圏でない日本人向けという意味で、試験時間や正答率を多少考慮しています。ちなみに、日本語での試験は準備中です。
— Mineaki Motohashi (@mmotohas) January 15, 2021
Snowflakeでは30日有効のトライアルアカウントを無料で作成できます。400USD相当まで使えるようです。
クレジットと残日数を消費していくので、自分は最初はトライアルアカウントを作成せずに学習を進めていたのですが(ケチ)、実際に動かしてみると思ったほどクレジットも消費しなかったので、もう少し早めに手を動かしてみれば良かったかな、と思いました。
Snowflakeの学習を始めようと思った時期、ちょうどCloud Data Summit 2020が開催されており、こちらの動画も活用させていただきました。
Snowflakeの概要や設計思想、現在地をざっくり把握するのにかなり役に立ったように思います。
さて、では本格的に勉強を始めます。
Snowflake Universityに日本語のコースがあるのですが、この中にハンズオンのコースがありますので、まずは最初の雰囲気を把握するためにこちらを受講します。
字幕付きの動画を見て、ドキュメントを読んで、クイズに応えていく形式です。サクサク進めれば数日で完了できると思います。
Study Guideには各種学習リソースへのリンクがありますので、その内容を確認しながらインプットしていきます。
基本的には、
という形になります。
Study Guideには以下の領域のコンテンツが整備されています。
この段階でSnowflake Universityにある模擬試験「SnowPro Core Sample Exam Questions」を受けたら、25/30で83.3%でした。(合格ラインは80%)
せっかくトライアルアカウントがありますので、こちらを使ってデータパイプラインを作ってみました。
をすることで、
ということが自動的にできるようになります。(この話は後日別途書く予定です)
このプロセスを通して、何ができるのか、そのために何が必要なのか、をある程度把握できるようになりました。
いつも何かのセールをしていることでおなじみのUdemyに、SnowPro Coreの模擬試験集があったので、こちらを購入して活用しました。
ちなみに、試験の問題セットは全部で6セットあり、それぞれ
とあるのですが、自分は時間の都合上「Test 3」までを1回ずつしかこなせませんでした。
但し、「Test 1」、「Test 2」、「Test 3」ではそれぞれ出題される領域が異なっていましたので、まんべんなく学習するにはすべて受けて、間違った部分を確認しておいた方がいいと思います。
なお、これらの模擬試験は本番試験の直前に受けたのですが、
と、合格ラインとはほど遠い状態でありました。(それぞれのテストで出題される領域が偏っているので、苦手な領域に当たると点数が大きく下がるのです)
そういう観点でも、試験の前にはこれらの模擬試験を受けて自分の苦手領域を把握してマニュアルを確認しておく、などするのが良いと思います。
模擬試験では正答はもちろん、解説やマニュアルへのリンクなども提供されており、自分の学習には非常に役に立ちました。
本番試験は、Kryterionの「Online Proctored(遠隔監視オンライン試験)」を選びました。
テストの詳細については、以下も参考になるかと思います。
注意点としては、
ちょっとトラブルもあったのですが、まぁどうにかなりました。Chatでサポートしてくれた方に感謝。
という感じで、今回はどうにか合格ラインには到達したのですが、出題された問題と自分の理解レベルを比較すると、
当たりの領域が弱いかな、と感じました。
自分が学習してきた方法の中では、これらの領域はあまり手厚くカバーされていなかったので、これらの機能を使って自分でデータパイプラインを作ってみるなど、何らかの形で補完しておいた方が良かったかもしれません。(試験対策という意味でも、知っていれば確実に点が取れるものも多いので)
あと、(処理履歴、Fail-safe、Time Travel、キャッシュなど)各種のデータ保持期間は覚えるしかないので、チートシートなどを活用すると良いのではないかと思います。
ちなみに自分は、このチートシートの存在を試験を受けた後に知りました。。
また、上記のチートシートも便利そうではあるのですが、Snowflakeの特長はその豊富なメタデータとその活用にあると感じますので、各種メタデータとそのアクセス方法(SQLクエリ)を集めたチートシートを作っておくと、開発や運用の時に役に立ちそうだな、と思いました。
では。