SnowPro Advanced Architect (ARA-C01-JPN) 受験記

## はじめに

Snowflakeの認定試験 SnowPro Advanced Architect (ARA-C01-JPN) (日本語版) を受けてきましたので、その学習等にまつわる内容を受験記として書き出してみました。

## 試験の概要

試験に関する基本情報は公式ドキュメントを参考にしてください。

- [SnowPro認定資格のご案内](https://www.snowflake.com/certifications/?lang=ja)
- [SnowPro Advanced: Architect の概要](https://learn.snowflake.com/en/certifications/snowpro-adv-jpn/)

## やったこと

### 全体感

個人的に資格取得に向けた勉強スタイルとしては、分からないなりにとりあえずやってみる、まずは敵を知るという作戦です。
そこで得た感触をもとに学習フェーズに入っていき、戦闘体制を整えていく感じです。

- 情報収集
    - 先人の方の受験記を見てみる
        - ググったりして情報収集
        - 読んでまずは感触を掴む
    - 公式の学習ガイド(英語)を読む
        - [SnowPro Advanced: Architect の概要](https://learn.snowflake.com/en/certifications/snowpro-adv-jpn/)を確認
        - 出題傾向や試験範囲が変わっている可能性が0ではないので、とりあえず見ておく
- 模試
    - Udemyの模擬試験(英語/買い切り)を購入
        - [Snowflake Snowpro Advanced: Certification Exam Questions](https://www.udemy.com/course/snowflake-ara-c01-certification-exam-sample-questions/?couponCode=ST2MT43024)
            - メインの学習ソースとして利用
            - 何度もやった
    - Fullcertifiedの模擬試験(英語/サブスク)を購入
        - [Snowflake SnowPro Advanced: Architect Certification](https://www.fullcertified.com/certification/snowflake-snowpro-architect)
            - こっちはサブの学習ソースとして利用
            - こちらの問題は難易度が低い印象
            - 2回くらい通しでやった感じで、結果的にはあまりやらなかった
- 学習
    - 上記模擬試験の解説をもとに学習
        - 模擬試験のフォローアップ、試験範囲をカバーする目的で実施
        - 模擬試験の解説の中に公式ドキュメントへのリンクがあるので、そちらをたどって学習

### 模擬試験の実施/サンプル問題の確認

#### Udemyの模擬試験

[Snowflake Snowpro Advanced: Certification Exam Questions](https://www.udemy.com/course/snowflake-ara-c01-certification-exam-sample-questions/)

参考価格 : 4,800円 (買い切り。セール時は1,500円とかになる。)

「SnowPro Advanced Architect」に集中するなら間違いなくこちら。
先人の方々も言及されていますが`問題の質や難易度が、実際の試験に非常に近い`です。
この問題が読解できないと本番は厳しい、ということが肌で感じられるのでまず解いてみるのがおすすめです。
比較的充実した解説、公式ドキュメントへのリンクがあるのも素晴らしいので、学習のしやすさという点でも非常に良かったです。

まさに学習を進める上での軸、中心となりました。


#### 注意!

しかし、こちらのコンテンツは 2024/11上旬時点で利用できなくなりました...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617410/fa19224d-0768-1ade-971e-398f08b3f8ee.png)

Udemyにある別の講座を利用するか、次に紹介するFullcertifiedを利用するか、になりそうです。

#### Fullcertifiedの模擬試験

[Snowflake SnowPro Advanced: Architect Certification](https://www.fullcertified.com/certification/snowflake-snowpro-architect)

参考価格 : 19.99 USD / 月 (サブスク。4ヶ月と年間プランもあり、1ヶ月あたりの価格が割引される。)

Udemyの模擬試験と同じ内容の問題も含まれますが、全体的に`Udemyのものに比べると易しい、もしくはちょっと違う`印象です。

- True/Falseや、2択の問題が存在する (-> 実際はなかった。3択以上の問題ばかりだった記憶。)
- 選択肢全てが正解となる問題がある (-> 実際はなかった。選択肢のうち、2つ以上は偽のものが含まれている問題がほとんど。)
- 文章問題(ソリューション問題)が少ない (-> 実際はこの手の問題が多かった。これに応えられないと合格が難しいので、もっとこの手の模試が欲しいところ。)

とはいえ、こちらの特徴はなんといっても「クラウドベンダー認定試験 3種の模擬試験がある」という点。
Snowflake、AWS、Azureの認定試験が受けられます。(GCPがない...)
SnowflakeはCore、Architect、Data Engineerの3つがあります。
同じ価格でSnowflake以外の模擬試験も受けられるのは良いですね。
サブスクの年間プランにすると、各種模擬試験やチートシートをPDFでダウンロードできるのも良い点です。

あとは、機能的に惜しい部分があります。

ブラウザの翻訳機能と相性が悪く、Chromeで日本語に翻訳して模擬試験をやろうとすると、問題文と解答選択肢がうまく更新されなかったりします。

また、問題の答えを解説するテキストをAIで自動生成する機能もついていますが、たまに模擬試験の解答と違った解答案を提示してきたり、誤った解説になったりもします。

初期段階ではUdemyとFullcertifiedを併用していましたが、徐々にUdemyにシフトしていきました。思い出した頃にこちらも見返して、Udemyとの差分とかを見比べたりしていました。

##### こぼれ話

UdemyとFullcertifiedの模擬試験を比べてみて、全く同じ問題もいくつかありました。しかもその内、解答・解説が両者で食い違っているものがあり、混乱しました。
1問くらいだったのでさほど影響はなかったですが...まあそんなこともありました、という話です。(やはり公式が正義)

#### 公式の試験ガイド/サンプル問題

[SNOWPRO ADVANCED:ARCHITECT EXAM STUDY GUIDE](https://learn.snowflake.com/en/certifications/snowpro-adv-jpn/)

参考価格 : 無料

こちらは公式による試験の解説になります。
認定試験を受けるので、その公式ガイドラインくらいは一読しておきましょうということで、とりあえず見ておくのがおすすめです。

巻末にサンプル問題もあるので参考になります。
上記2つの有料模試コンテンツ内にもこれと`同じ内容・レベルの問題が含まれていたりして、結構重要`であることがわかりました。
(なんなら同じ様な問いが本番で...。まさに受験者向けのメッセージとして`これは見とけよ、見たよな？`ということだと思います。)

#### その他

無料コンテンツも探せば見つかりますが、傾向として答えが出鱈目だったり解説も乏しいのでイマイチでした。模擬試験は上記の有料コンテンツ2つだけに絞って、特にUdemyの方を使い込んだ感じです。このアプローチは結果的に正解だったなと思います。

### 学習時

いきなり公式ドキュメントを読み込もうとすると、方向性を見失ったりどこに注目して見ていいのかよくわからず滅入ってしまうので、

1. わからないなりに模擬試験を受けてみる (`とにかく慣れる`。敵を知る、問題文や雰囲気に馴染む。)
1. 試験の解答と解説を見る
1. 解説をもとに公式ドキュメントを見て照合する
    - 学習のメイン
        - 何度も見て`とにかく覚える、知識をつける`
        - 気になるところはメモしておく
    - 模擬試験の正解ではない選択肢も見て、なぜダメかを調べた
        - 単純に誤りなもの
            - クエリの構文エラー、出鱈目な回答だったりするものはサクッとチェック
            - 紛らわしいもの、ひっかけ問題に騙されない様に知識を修正して`自信をつけていく`
            - 文字列を見たときに違和感を覚える様に、何度も見て`目も慣らしていく`
        - 問題文のケースでは`当てはまらない`もの
            - こちらを調べて`正解ではない理由と正解になる場合について理解を深める`
1. `落ち葉広い`
    - 公式ドキュメントの中で、模擬試験で扱われていなかった部分/周辺も少し読んでおく
        - 仕様、注意点、考慮点とか
        - 事例とか
    - 余力があれば、模擬試験に慣れて精神的に余裕が出てきたら、[試験ガイド](https://learn.snowflake.com/en/certifications/snowpro-adv-jpn/)と照らし合わせて試験範囲をカバーする感じで公式ドキュメントを読み漁る
1. ↑を繰り返す

みたいな感じでやりました。

模擬試験の解説内から関連する公式ドキュメントに対してリンクが貼られているので、それを頼りに情報をたどっていきました。

元コンテンツが英語のため、Snowflakeドキュメントへのリンクも全て英語版だったので、URLの文字列から「en」を「ja」に書き換えることで日本語版にして読みました。

例:
- <https://docs.snowflake.com/en/user-guide/security-encryption-manage>
- <https://docs.snowflake.com/ja/user-guide/security-encryption-manage>

たまに「en」がないURLもありましたが、大抵「user-guide」の前に「ja/」を付け足すとうまく日本語ドキュメントにリンクされました。

こうやって公式ドキュメントを見てみると、相当重要な情報(試験においても、業務活用においても)が書かれているんだなぁと改めて実感しました。
Snowflakeの公式ドキュメントすごい...。

ブログ等と違って公式ドキュメントは1つのトピックスに対して膨大な量の情報があっておそらくあまり進んで閲覧しない(どうせ分かり辛いんじゃないか、というバイアスがあったりで気が進まない)ので、`試験勉強をきっかけにしてでも能動的に見る機会を作る`というのも重要だったりしますね。

#### ご参考:学習メモ

模試をベースに個人学習メモを作成してました。

こんな感じのものを書いてみたりしてました。 (利用サービス : [brainio](https://brainio.com/#/))

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617410/4bac432e-6528-3722-b4b6-965e750e4dc9.png)

これをローカルに落としてVSCode([markmap](https://markmap.js.org/))で表示するとめっちゃ細かいですね...。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617410/d2c0e166-924a-50b9-3c4b-35dcf73fb9bc.png)

みなさん、資格勉強向けにどんな感じのメモをするんでしょうか。
手書き派、電子派(ローカル or クラウド)色々ありそうです。
Notionとかが定番ですかね。

私の学習初期段階のイメージで

- markdownでサクッとかけて文章の構造ができる
- クラウド連携で場所とデバイスを選ばず編集できる
- なんとなくビジュアル(形、位置)でも覚えられないかな

というところでmindmapが思い浮かんだ、位でのチョイスでした。
mindmapの構造を活かしてクイズの解答が隠せるので、思い出し訓練できるのは良かったです。
全体像を見た時に学習メモの量を一望して達成感が得られる点も面白かったのですが、いっぱい書けば書くほど見づらくなったのでイマイチだったかもです。

## 試験について/ポイントになりそうなこと/感想等

### 試験について

- テストセンターで受けました
    - 試験の注意書きの紙、メモ用ホワイトボード、マーカー2本が渡されます
        - メモを書こうとしてマーカーの蓋を開けて放置していると直ぐ乾いちゃって、書こうとした時に書けなくてやっちまいました...
- 問題と解答の選択肢が日本語で表示されますが、元の英文を表示する翻訳機能もついています
    - (逆に英語のみの試験だと、日本語への機械翻訳機能はついているのだろうか...)
- 「後で見直す」ためのフラグがつけられます
    - 時間かかりそうな時は適当な選択肢を選んでおいて、フラグをつけて次の問題に移るというムーブがいいです
    - 読んでみたものの1分くらい悩んだり、初見でようわからん！知らん！模擬試験で苦手だったやつ！ってなったら、`とりあえずフラグ`つけて飛ばそう、の心持ちが良いかと思います
    - 万一タイムオーバーになっても、ラッキーで当たることもあるので`とりあえず何か選んでおいてスキップ`します
- 単一選択問題で同じ選択肢を再度選ぶと、選択がキャンセルされます
    - 問題を飛ばすときにとりあえず回答を選んで奥にしても、`慌てて2回クリックしちゃうと選択していないことになる`ので、その点は要注意です
- 複数選択問題で`選択可能な数を超えるとアラート`が出ます
    - 模擬試験ではこの機能がついていないので、これは親切...!
- 終了5分前くらいにポップアップが出てもう直ぐ終わることを知らせてくれます
- 試験時間が終了すると試験が強制的に終了し、アンケート画面に移ります
- アンケート回答後、直ぐに合否が表示されます
    - ここ、めっちゃドキッとしますね...

### どんな感じの問題が出たか

- 文章問題 (出題数:中)
    - いわゆるソリューション系の問題
        - 状況説明があって、それの解決策を選択肢から選ぶ
            - 現状抱えている組織や顧客の悩みを解決する問題
            - コスト効率重視の実現方法を選ぶ問題
            - 最適な設計/モデルを選ぶ問題
            - 現在の構成から修正案を選ぶ問題
            - 最小手順で実現する方法を選ぶ問題
            - エラー対処の問題
    - クエリを順番に実行して結果どうなるかを答える問題
    - クエリプロファイルを見て答える問題
    - クエリの実行結果を見て修正点等を答える問題
    - ある結果を出すためにどのクエリを実行すればいいかを選ぶ問題
    - ベストプラクティスを選ぶ問題
- 機能を問う問題 (出題数:多)
    - この機能の特徴として正しいものはどれか？
    - これが実現できるのはどの機能か？
    - この機能でできないことはどれか？
    - この機能を利用する目的は何か？
    - このユースケースで用いるべき機能はどれか？
    - あるコマンドで、目的の動作を実現するためのオプションはどれか？
    - デフォルト値、デフォルトの挙動はどれか？
    - 受付可能なパラメータはどれか？
    - コマンドオプション、パラメータの指定等含め、正しい組み合わせはどれか？
- 基礎を問う問題 (出題数:少)
    - SnowPro Coreと同等のものと思われるもの

### ポイントになりそうなこと

#### やっぱ模擬試験繰り返しやっておこう

慣れもありますが、どんな問われ方をして、どんな知識をもって回答すればいいかがよくわかります。

模擬試験を起点に周辺知識を広めていくアプローチでやって、個人的にはこれがやりやすかったです。
問題を解い解説を見た時、その周辺知識も拾って情報を関連付けしていくことで知識の定着と繰り返し見ることにより記憶を鮮明にしていく感じです。

模擬試験を繰り返しやりすぎて、終盤は正答率94%〜な感じになってました。
これはこれで過学習気味で逆に不安になりますね。

#### 公式ドキュメントすげー

特に以下の切り口、キーワードが重要かと思いました。

- 「考慮事項」
    - 例えば [ウェアハウスに関する考慮事項](https://docs.snowflake.com/ja/user-guide/warehouses-considerations)
- 「制限」
    - 例えば [共有データベースの一般的な制限](https://docs.snowflake.com/ja/user-guide/data-share-consumers#general-limitations-for-shared-databases)
- 「注釈」「重要」
    - 例えば [共有へのオブジェクトの追加](https://docs.snowflake.com/ja/user-guide/data-sharing-provider#adding-objects-to-a-share)
- 機能を利用するタイミングの決定
    - 例えば [マテリアライズドビューを作成するタイミングの決定](https://docs.snowflake.com/ja/user-guide/views-materialized#deciding-when-to-create-a-materialized-view)
- 「サポートしていません」
    - 例えば [検索最適化の恩恵を受けないクエリ](https://docs.snowflake.com/ja/user-guide/search-optimization/queries-that-benefit#queries-that-do-not-benefit-from-search-optimization)
    - 逆に「サポートしている」の切り口も理解しておく
    - なんとなく「していない」を切り口にした方が印象に残る気がする
- エラーメッセージとその対策
    - 例えば [複製と外部テーブル](https://docs.snowflake.com/ja/user-guide/account-replication-considerations#replication-and-external-tables)
    - 例えば [サンプルデータファイルを検証し、エラーを取得する](https://docs.snowflake.com/ja/user-guide/data-load-internal-tutorial-resolve#validate-the-sample-data-files-and-retrieve-any-errors)
- コマンド実行例
    - 例えば [SYSTEM$CLUSTERING_INFORMATION](https://docs.snowflake.com/ja/sql-reference/functions/system_clustering_information#examples)

必読級の重要情報が載っています。
学習過程でドキュメントを満遍なく見ていると、どこに注目していいかわからない時があると思うので、上記はそんな時のキーワードや注目ポイントといえます。

ここからたどって周辺知識を広げていくアプローチもありかもしれません。色々と機能間のつながりや基本となる仕様や共通の考え方も見えてくるかと思います。(共有と複製の関係性とか。)

### 感想等

難しかったです。

この認定試験を受ける前提条件[SnowPro Core](https://learn.snowflake.com/en/certifications/snowpro-core/)は問題数が多く(100問)、一方でこちらの試験は問題数が少ない(65問)ので、間違えられる問題数も少ないかつ合格ラインは同じ(75%)というプレッシャーもありました。

特に文章問題のところが、状況理解と複数の背景知識(基本知識)を総合して解答を選ばないといけないのでなかなか厳しかったです。

ただ、先人の方の体験記通り、結構近しい雰囲気の問題、中にはそっくりなものがあり、模擬試験を結構繰り返した関係で「見たことあるぞ、やったことあるぞ」という既視感を持ちつつ平常心で望むことができました。

まずは全問/全体を見ておきたかったので一周することに専念しました。
(時間にして 60分 / 115分 くらい)

見直しフラグは20問くらいについてたので、残り時間でじっくり見直しました。
改めて冷静になって見ると「ああ〜あれか」と直ぐわかるものもありました。
クエリを順に実行してどうなるか系の問題は、手元に実行過程を書いたりして解きました。
(残り〜3問程は見直しできず...)

## おわりに

これから受ける方への参考になれば幸いです。

え、結果？
無事合格でした!