Databricks認定データエンジニアアソシエイトを受けてみた

# 1. はじめに

最近、Databricks 認定データエンジニア アソシエイト（日本語版）を受験し無事合格したので、試験に向けて勉強した内容や試験の感想などについて記しておこうと思います。

ちなみに私はデータ基盤に関してはデータウェアハウスをメインで扱っています（NoSQL や BI の経験もあります）。Hadoop/Spark 系に関しては会社で所属しているグループの守備範囲ではありますが、私自身は本格的に実システムで用いたことはないです。

また、今回あまり学習時間は取れませんでした。なので手っ取り早く合格ラインに達するということを優先させて、ちゃんと Databricks に習熟することは後回しにしています。

# 2. 学習方法

私は以下の学習リソースの順で勉強しました。

- 公式ドキュメントの [What is Databricks?](https://docs.databricks.com/en/introduction/index.html)
    - Databricks の基本的な概念を学ぶには手っ取り早いかなと思います。
- 公式ドキュメントのチュートリアル [Get started with Databricks](https://docs.databricks.com/en/getting-started/index.html)
    - Databricks のトライアルアカウントの作成から、ワークスペースの作成、データ探索、データエンジニアリング、機械学習について実際のコード込みで学べます。
    - 私は機械学習の節以外は一通り実施しました。
    - 完全な Step-by-Step なチュートリアルではなく、一部の操作の説明は省略されています。ただ、コンソールの UI をいろいろ触ってみれば行間を補って読み進めることは可能だと思います。
- Databricks Academy
    - [Get Started with Databricks for Data Engineering - Japanese](https://customer-academy.databricks.com/learn/course/2330/get-started-with-databricks-for-data-engineering-japanese) というコースがあります。
    - 講義とデモからなっています。
    - 講義は "What is Databricks?" を補完する内容に加え、試験によく問われる機能の比較など踏み込んだ内容も含みます。
    - デモに関しては、パイプライン作成やUnity Catalog、Git連携などについて説明してくれているので、できることをイメージアップするのに役立ちます。
- サンプル問題
    - [Practice Exam Databricks Certified Data Engineer Associate](https://files.training.databricks.com/assessments/practice-exams/PracticeExam-DataEngineerAssociate.pdf)
        - サンプル問題が 45 問あります。
        - "Databricks 模擬試験" でググれば、日本語で解説してくれているブログがいくつかヒットします。
    - [Databricks 試験ガイド Databricks Certified Data Engineer Associate](https://www.databricks.com/jp/learn/certification/data-engineer-associate)
        - こちらにもサンプル問題が５問あります。

# 3. 学習方法の反省

## 3.1. 学習の順番
学習方法の節で学習した順番について述べましたが、あとから振り返ってみると、

1. What is Databricks?
1. Databricks Academy
1. サンプル問題
1. Get started with Databricks

の順番で学習した方が良かったかなと思います。チュートリアルの "Get started with Databricks" は Databricks の基本的な概念を学ぶという点ではまず最初に通っておいた方が良いのですが、試験範囲のカバー率を早く広げるという意味では、次に Databricks Academy やサンプル問題を先にやった方が効率的かなと思います。

特に "Databricks Academy" はデモを含むため、各機能でできることを手っ取り早くイメージ掴むためには良いかなと思いました。

（あと、他の人の意見では Udemy の講座はかなり役に立つそうです）

## 3.2. サンプル問題の取り組み方

サンプル問題をやってみると分かるのですが、"What is Databricks?" と "Databricks Academy" ではまだカバーできていない部分が結構多いです。最初は真面目に解いていこうと思ったのですが、途中からは答え＆解説から読んでいく方法に切り替えました。知識が足りていない状況だと、その方が手っ取り早い気がします。

## 3.3. チュートリアル

実際の試験ではコードの穴埋め（ただし選択肢）やオプションの意味を問われる問題が結構出ました。

これは人によって異なる部分だとは思いますが、チュートリアルではコードはちゃんと手で打って覚えた方が良いかなと思います。今回はちょっと手を抜いたので、「あれ、どっちだっけ？」と悩むことが度々ありました。

ただ、上で触れたチュートリアル "Get started with Databricks" では、以下の点は触れていません。

- Z-ordering や OPTIMIZE
- ストリーミング処理
- Delta Live Tables

サンプル問題で知識を得る＋ドキュメントで確認するといったことができればベストですが、時間は掛かるかもしれません。私は一部そこまでやりましたが、合格するだけならやらなくても多分届くかなと思います。

# 4. 受験した感想

試験の内容や試験の環境についての感想を以下で述べます。

## 4.1. コード穴埋め問題は他の問題がヒントになることがある

先にも触れましたが、選択式のコード穴埋めの問題は結構出ます。

私は DWH 領域でメインの仕事をしているため、Databricks + Python によるデータパイプライン構築にはあまり慣れておらず、何回か悩むことがありました。

その際、ある問題に載っているコードが別の問題のヒントになっていることが多々ありました。私が受けた問題に関しては、他の問題に答えそのものが書いてある問題すらありました。

コード穴埋め問題で分からない場合はマークしておき、後で他の問題と見比べて回答するというテクニックは非常に重要になります。

## 4.2. 否定的な選択肢は正解になりづらい

模擬問題を受けていた際から感じていたのですが、「～できない」とか「～という機能はない」といった否定的な選択肢が正解であるケースはほとんど出ないような印象を持っています。（例外は Git 統合と比較して Databricks 自身が比較しているノートブックの共同作業機能ぐらい？）

これは細かい制約などまでは問われないという試験のレベルと、できることをちゃんと認識してほしいという出題者の意図からは当然かと思います（加えて、あまりネガティブな点は強調したくないという理由も）。

そういった背景を意識しておくと選択肢に迷ったとき、助けになるかもしれません。

## 4.3. OLP試験の準備は大変

Databricks の認定試験は Online Proctor（OLP） 試験（試験官による監視付きオンライン試験）になります。

今回は OLP 試験のために以下の準備をしました。

- オンライン試験に接続するために、会社のノート PC を手配（事前にセキュアブラウザのインストールが必要）
- 受験場所のために、会社の会議室を確保

１番目の使用する PC についてですが、本来は受験に利用する PC は "non-work related or personal computer" が推奨されています。会社用の PC にはセキュリティー系のプログラムが入っていることが多いですが、試験開始時にそれらを停止する必要があり（ダイアログが表示され、[OK] ボタンを押すとと他のプログラムを強制停止するっぽい）、それが理由ではないかと思います。

ちなみに、一部のセキュリティー系プログラムはプロセスが終了しても自動で再起動するものがあるのですが、その場合は正しく試験を受けられるのか気になります。私は事前に services.msc からサービスを一時停止させておいたので、特に問題はなかったようですが。（このあたり、事前に試せるといいんですが…）

また、２番目の受験場所についてですが、以下のルールがあるようです。

- 閉じた場所である（窓が開いているなどがない）
- 背景に何もない
- 他人が部屋にいてはいけない
- 利用 PC 以外のディスプレイが部屋にあってはいけない

２点目の背景については、机の配置を変えて背景は何もない壁になるようにしました（自分の正面は机＆椅子がたくさんある）。また、会議室内にディスプレイがありましたが、ホワイトボードを移動させて見えないようにしました。このあたりを準備する時間を見込んで会議室を確保しておきました。

３点目の他人がいてはいけないということに関しては、会議室を予約したので中に他人はいないのですが、隣の会議室で大声で話す・笑う人たちがいて、試験官から指摘を受けないかヒヤヒヤしながら試験を受けていました。（注意するのに席を離れるのは多分 NG）

正直、移動の手間はあってもテストセンター（ピアソンVUEやプロメトリックなど）の方が気楽なのにとは思いました。

## 4.4. 試験画面の文字はちょっと小さめ

今回、11インチ画面のノート PC を 1920x1080 の解像度で使用しました。はっきり言って試験画面の文字が小さくて 1 時間弱画面を見続けるのは辛かったです。（もしかしたら、文字サイズ変更の機能を見落としているかもしれません）

試験を受ける PC の[技術的要件](https://kryterion.my.site.com/support/s/article/Online-Testing-Requirements?language=en_US)によると、1024x768 でも OK らしいので、小さい画面を利用する場合は事前に解像度を変更しておくと良いかもしれません。（ロックダウンブラウザの都合上、試験開始後に変更はできないのではと思います）

# 5. まとめ

ここまで学習の進め方の試験の感想を述べましたが、総じて言うと、

- 試験の難易度はそれほど高くなく、学習リソースの内容を一通り覚えれば合格はできる（合格レベルも正答率70%程度とそれほど高くないですし）
- オンライン試験に固有の準備などは必要

と言ったところでしょうか。

資格試験全般に言えることですが、これで何かしらのスキルを保証するものではないですが、基礎知識を体系的に学ぶ機会を与えてくれるという点では良い認定試験だと思います。