1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【3日で合格】Databricks Certified Data Engineer Associate

Posted at

はじめに

Databricks未経験者の私が、勉強してから3日間で、Databricks Certified Data Engineer Associateに合格することができたので、勉強方法やコツをシェアしていきたいと思います。

スペック

  • Python:10年以上
  • SQL/Spark:読み書きの経験あり
  • 資格:AWS認定資格12冠

Databricksを触ったことがありませんが、データサイエンティストとして分析基板系の案件の経験とAWSの認定資格の中でビッグデータ関連の扱い方の勉強経験はありました。

試験概要

  • 問題数:45問
  • 制限時間:90分
  • 実施方法:オンライン試験/テストセンター
  • 受験料:200ドル

他の方々の合格体験記では、オンライン試験のみが多かったですが、テストセンター方式にも対応したようです。

使用教材

公式ページやサービスには触れず、問題集を中心に対策しました。
模擬問題については、以前は公式で公開されていたようですが、非公開となっていましたので、模擬問題の解説をされている記事を参考にしました。Udemyは、2つ教材を購入しましたが、問題のボリュームが少ないので日本語版は不要でした。

抑えておくポイント

全然足りないですけど、最低限以下、要所のまとめです。

Lakehouseプラットフォーム

Delta Lake

  • ACIDトランザクション
  • スキーマの強制と進化に対応
    • 非構造化/構造化スキーマに対応
  • BIサポート
  • コンピューティングをもたない
  • オープンフォーマット
  • バッチ分析・ストリーミング分析可能
  • End2Endのストリーミング対応

Delta Table

  • 構造
    • 複数のParquet+複数のJSONログ
  • パフォーマンス改善
    • OPTIMIZE
      • 小さいファイルをマージして大きなファイルにする
    • Z-order
      • クエリ速度を上げるために利用
  • VACUUM
    • 期間外のデータを削除する
    • デフォルトは7日

クラスター

  • 障害対応
    • クラスターイベントログを確認
  • パフォーマンス改善
    • クラスタープール機能
      • 起動時間を短縮
    • 高同時実行モード
      • 複数ユーザーが使用する場合の速度UPで使用
項目 All-purpose クラスター Job クラスター
主な用途 インタラクティブ開発 / 分析 バッチ処理 / スケジュール実行
起動 手動起動、長時間利用 ジョブ実行時に自動作成、終了時に破棄
コスト 長時間稼働するためコスト高め 必要な時だけ起動するのでコスト効率良い
共有 Notebook を複数ユーザーで共有可能 通常はジョブ実行専用、共有前提ではない

Databricks Repos

  • 可能なGit操作
    • Pull, Push, Commit, Branch作成

データプレーン/コントロールプレーン

項目 コントロールプレーン (Control Plane) データプレーン (Data Plane)
役割 サービス全体の管理・制御 実際のデータ処理と保存
主な機能 - ユーザー認証/認可
- ワークスペース UI(Webアプリ)
- クラスターやジョブの管理
- メタデータ/設定の管理(Unity Catalogなど)
- APIエンドポイント提供
- Spark クラスターの実行
- Notebook・ジョブの処理
- データの読み書き
- ストレージアクセス

生産パイプライン

ジョブページから構成管理のJSONをダウンロード可能

  • 並列実行(ユーザー数、ジョブ数)
    • SQL円dポイントのスケーリング範囲を増やす
  • 直列実行(ジョブに依存あり)
    • クラスターサイズを上げる
    • 線形依存関係を使用
      • ノートブック、DLTパイプラインの設定が可能
  • コスト削減
    • 自動停止機能ON(SQLエンドポイント)
    • ジョブ作成時のタグを使用したコスト追跡
    • タスクのタイムアウト設定
  • 自動化
    • SQLクエリページ/ジョブUI/ダッシュボードからスケジューリング(CRON)
    • 再試行ポリシーの追加
  • アラート
    • メール、Webhook、Teams
    • カスタムテンプレートの提供

増分データ管理

ワークロード

  • Bronze
    • 生データ
  • Silver
    • クレンジング済みデータ
    • ETLスループットと分析クエリのパフォーマンスを最適化
  • Gold
    • 集計データ
    • アプリ、ダッシュボード等で読み込み

Delta Live Table

データパイプライン処理に利用。トリガーと継続モード

  • EXPECT (timestamp > '2020-01-01')
    • レコード追加。無効として記録
  • EXPECT (timestamp > '2020-01-01') ON VIOLATION DROP ROW
    • レコード削除。無効として記録
  • EXPECT (timestamp > '2020-01-01') ON VIOLATION FAIL
    • 失敗

AutoLoader

増分処理に利用。構造化ストリーミングがベース。スキーマの推論・進化、ディレクトリ一覧、ファイル通知。

  • リアルタイム/継続的取り込み → AUTO LOADER
  • 履歴データの初回ロード や たまに発生するバッチインポート → COPY INTO
  • 両方を組み合わせるケースも多い
    (初回は COPY INTO で過去データ → 以降は AUTO LOADER で増分)

Streaming

Order byが使えない(Group byを除く)

spark.readStream
.format("cloudfiles")
.option("cloudfiles.format","csv")
.option("cloudfiles.schemalocation", "dbfs:/location/checkpoint/") 
.load(data_source)
.writeStream
.option("checkpointlocation","dbfs:/location/checkpoint/") 
.option("mergeSchema", "true")
.table(table_name)) # target table
  • 追加モード(デフォルト)
    • 単純な行追加
  • 完全モード
    • 集計クエリに対応
  • 更新モード
    • 更新された行のみ

データガバナンス

Unity カタログ(権限管理)

  • 対応リソース
    • テーブル、MLモデル、ダッシュボード、メタストア、カタログ
  • オブジェクト順序
    • メタストア、カタログ、スキーマ、テーブル(ビュー)

アクセス制御

  • ダイナミックビュー
    • ユーザーアクセスに基づいた行列のきめ細かなアクセス制御
  • GRANT
    • USAGE: 下記権限を付与する前に、これが必要
    • SELECT: オブジェクトへの読み取りアクセス権
    • CREATE: オブジェクト (スキーマ内のテーブルなど) を作成する権限
    • MODIFY: オブジェクトに対してデータの追加、削除、変更を行う権限
      • DELETE,UPATEの権限は存在しない

ELT

テーブル作成

デフォルトが管理テーブル。Locaitionを指定すると外部

CREATE TABLE my_table (
    id INT,
    name STRING
)
USING delta
LOCATION 'dbfs:/mnt/data/my_table';

データ挿入

INSERT INTO my_table VALUES (1, 'Alice'), (2, 'Bob');

データ取得

SELECT * FROM my_table WHERE id = 1;

テーブル削除

DROP TABLE my_table;

データ更新

-- 行削除
DELETE FROM my_table WHERE id = 1;

-- 行更新
UPDATE my_table
SET name = 'Charlie'
WHERE id = 2;

-- アップサート(更新+挿入)
MERGE INTO target t
USING source s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET t.name = s.name
WHEN NOT MATCHED THEN INSERT (id, name) VALUES (s.id, s.name);

集計・条件

SELECT department, COUNT(*) AS cnt, AVG(salary) AS avg_salary
FROM employees
WHERE salary > 50000
GROUP BY department
HAVING cnt > 10
ORDER BY avg_salary DESC;

テーブル管理

DESCRIBE DETAIL my_table;   -- Deltaのメタ情報
DESCRIBE HISTORY my_table;  -- 履歴(タイムトラベル用)
OPTIMIZE my_table;          -- 小ファイル統合
VACUUM my_table RETAIN 168 HOURS; -- 古いファイル削除

タイムトラベル

SELECT * FROM my_table VERSION AS OF 5;
SELECT * FROM my_table TIMESTAMP AS OF '2025-08-01T00:00:00Z';

ストリーミング

接頭語にLIVE.が必要

CREATE OR REFRESH STREAMING LIVE TABLE new_sales
AS SELECT *, price * quantity AS total_price
FROM STREAM(LIVE.sales);

スケジュール

  • 1日目
    • 問題集:1周目(8時間程度、正答率6割弱)
    • 試験申込
  • 2日目
    • 問題集:2週目(4時間程度、正答率8割強)
    • 問題集:3週目(2時間程度、正答率9割強)
  • 3日目
    • 問題集をそれぞれ間違えたところのみ復習(1時間程度)
    • 受験完了

1日目で、模擬問題集から解き始めて、試験の感覚がAWSの時と似ていたので、2~3週すれば合格できるだろうと予測し、最短日で申し込める日程の試験を申し込み。
問題を解きながら、わからないサービスの名称や用途については、公式ページを使わずにChatGPTに聞きながら理解を進めました。

申し込み方法

通常200ドルかかりますが、Databricksパートナーの場合、バウチャーを発行してもらうことが可能です。

こちらからユーザ登録をして試験を申し込みます。
https://webassessor.com/databricks

日本語での受験が可能で、オンラインかオンサイトを選択できます。
image.png

受験場所は、AWSと比較すると少なく、区の表記に揺れがあるので注意が必要です。
Toshima Cityと Toshima-kuで、違う会場が登録されていたり、Tokyoの中に新宿区の会場が登録されています。
image.png

バウチャーの発行方法(Databricksパートナー限定)

  1. ヘルプセンターにアクセス(https://help.databricks.com/s/contact-us?ReqType=training)
  2. フォームを入力し件名とメッセージを入力
    1. Subject: “Partner Certification Voucher Request”
    2. Message: please type “I work for [Partner name] and would like to request a certification voucher for [Certification Name]”.
      ※ 当然パートナーで登録されているメールアドレスと同じドメインのアドレスを入力しないとだめです。

Submitしてから12時間ほどバウチャーの連絡が来ました。

試験結果

当日

テストセンターにて受験をしました。
身分証2枚が必要なことは過去AWSで知っていたので、準備済みで問題ありませんでした。
しかし、Authentication codeの記載に焦りました。AWSと違って試験の予約状況等がメールで通知されていなかったため、受験申込サイトのMy Assessmentsから試験詳細を開いてコードを確認しました。

試験中

AWSと似たような形で90分45問の選択形式の試験を受けます。
ただ、言語の表示が日本語⇔英語の切り替えができないため、例によって日本語が機械翻訳された文章であるため、問題文や解答が分かりづらいとき苦戦しました。
問題自体は、模擬問題で見たことあるものが多く30問くらいは自信をもって回答できたので、安心しました。30分ほどで解き終わり、10分ほどでフラグを付けた問題を見直して提出しました。

結果

無事合格することができました。
結果を送信したら、その場で合否を確認することができました。
点数はわかりませんでしたが、全体で9割近く取れていたので、やはりUdemyの日本語問題集は不要でした。

image.png

感想

初めて、Databricksの試験を受験しましたが、合格の要領はAWSと同じ感触で、実際のサービスや公式に触れず、問題集を2~3周解きながら、不明点を調べる方法をとることで、
短期間で合格することができました。
難易度でいうと、サービスの範囲が狭いためAWS SAより少し下かなと思いました。
せっかくなので、Databricksでも資格の全冠も時間があれば目指してみたいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?