DEA直前レビュー 35問を解く

2026-09-26 時点

電車で読む、
試験前の一枚。

本番で迷うのは、知らない用語より似た機能の境界です。過去の誤答を「何と何を混同したか」で整理しました。

読む時間
30秒コース0/0

01 / CORE

最重要ポイント

答えを思い出すのではなく、隣の機能との違いを一行で言えるか確認する。

要暗記INGESTION

schemaLocation と checkpoint は別物

schemaLocation は推論スキーマと進化履歴、checkpointLocation はストリームの処理進捗と状態を保存する。

罠 役割は別だが同じディレクトリも指定可能。入力パスとは分離し、クエリごとに固有の checkpoint を使う。

表記注意AUTO LOADER

救出列は _rescued_data

救出列名を変えるオプションは rescuedDataColumn。既定列名は _rescued_data で、_rescue_data ではない。

対比STREAMING

定期稼働か、追いついて停止か

processingTime はクエリを動かし続けて周期実行。availableNow は開始時点までの未処理データを複数バッチで処理して停止。

更新点JOBS

Jobs のトリガーは現在6系統

Scheduled / Table update / File arrival / Model update(Beta) / Continuous / None(手動・外部起動)。

注意 古い問題は Model update を含めず5種類としている。

数字JOBS

File arrival は「毎分・ベストエフォート」

新規ファイルの有無を約1分ごとに確認する。ミリ秒保証ではなく、通常は既存ファイルの上書きでは起動しない。

混同注意JOBS

cooldown と debounce を分ける

min_time_between_triggers_seconds は実行間隔の下限。wait_after_last_change_seconds は最後の変更後に静まるまで待つ。

問題訂正JOBS

時刻はジョブ、Run if は依存結果

平日09:00はジョブの Scheduled トリガーで Quartz cron と timezone を指定する。タスクの Run if は成功・失敗など依存タスクの結果条件で、曜日や時刻条件ではない。

重要 過去問題の「AとD」は不適切。実質的に必要なのはジョブ側の schedule。

順序BUNDLES

変数値は「外から強い」

--var → BUNDLE_VAR_* → variable-overrides.json → target の variables → top-level default。

更新点BUNDLES

既存ジョブは generate と bind を分けて考える

対応する既存ジョブは databricks bundle generate job --existing-job-id <id> で定義を生成。現行CLIは notebook task のジョブのみ対応し、既存ジョブを管理するなら --bind も使う。

罠 generate しただけで deploy すると、既存ジョブではなく新しいリソースを作る。

権限UNITY CATALOG

テーブル権限だけでは読めない

基本は USE CATALOG + USE SCHEMA + 対象の SELECT。権限継承があっても親階層を利用する権限は必要。

権限IDENTITY

UC には account group

workspace-local group には Unity Catalog の権限を付与できない。アカウントレベルで管理される account group を使う。

数字DELTA

VACUUM の既定は7日 = 168時間

短縮には retention safety check の無効化が必要だが危険。VACUUM は現行テーブルから参照されない古いデータファイルを物理削除し、タイムトラベル可能期間を縮める。

02 / PATTERNS

誤答傾向と引っかけ

誤答はばらばらではない。「名前が似る」「制御する層を取り違える」「優先順位を逆にする」に集中している。

JOBSSIMPLE / ADVANCED

Simple schedule は固定間隔だけ

Simple は一定間隔の簡易指定で、初回の開始時刻は指定しない。開始時刻・timezone・cron を制御したいなら Advanced。

最小権限TABLE UPDATE

admin ではなく、データとジョブの必要権限

監視対象には USE CATALOG + USE SCHEMA + SELECT。トリガー設定の編集には対象ジョブの CAN MANAGE が必要。

BUNDLESREFERENCE

lookup 対応の既存物と、bundle 管理物を分ける

cluster / job / pipeline / warehouse 等の対応オブジェクトを表示名から解決するなら variables.lookup → ${var.name}。bundle 内で宣言したリソースは ${resources.type.key.<field>}。

問題訂正BUNDLES

bundle 名は自動 prefix ではない

bundle.name は bundle の識別子。すべての job / pipeline 名に自動で prefix されるわけではない。development mode の名前 prefix とは別の話。

精度STREAMING

processingTime は「完了後から待つ」とは限らない

指定間隔を基準にマイクロバッチを試行する。前バッチが間隔より長ければ、次は遅延して開始する。「完了してから毎回1分待つ」と暗記しない。

同名注意STREAMING / JOBS

Jobs Continuous と Spark Continuous は別

Jobs の Continuous は run 完了・失敗後に次の run を起動する。Spark の Continuous Processing は実験的で Databricks 非対応。超低遅延には Real-time mode を検討する。

PERFORMANCEJOIN

broadcast するのは小さい側

大表を shuffle せず、小表を各 executor に配る。AQE が実行時統計で最適化することもあるが、サイズと結合条件を確認して使う。

現行仕様GOVERNANCE

table-level filter / mask の制限

行フィルタや列マスク付きテーブルでは通常の time travel と deep / shallow clone が制限される。ABAC の time travel は条件付き Beta なので、両者を同一視しない。

SEMI-STRUCTUREDVARIANT

壊れやすい cast には try 系

variant_get は型変換に失敗するとエラー。try_variant_get は失敗時に NULL を返す。入力品質が不均一なら後者。

03 / GIT FOLDERS

Git チュートリアル再現

操作順より大事なのは、workspace と remote の間で何が自動・手動かを理解すること。

基本フローCLONE → CHANGE → COMMIT → SYNC
1Clone

Workspace → Create → Git folder。remote URL と provider を指定。

2Branch

作業ブランチを選び、notebook やファイルを編集。

3Commit

差分を確認し、空ではない message を付けて commit。

4Push / Pull

push で remote へ、pull で remote の変更を workspace へ。

最重要SYNC MODEL

双方向の自動同期ではない

workspace の変更は commit + push、remote の変更は pull が必要。Git Folder は remote repository の working copy。

実習の罠COMMIT

message が空なら commit は止まる

変更の選択だけでは不十分。意味のある commit message を入力し、commit 後に push して初めて remote に反映される。

役割分担GIT / BUNDLES

コード管理とリソース配備を分ける

Git Folders はコードの version control と共同編集。Bundles は jobs / pipelines 等を構成として validate・deploy する IaC。

大規模 repoSPARSE CHECKOUT

必要なフォルダだけ checkout

clone 時に cone pattern を設定し、後から Settings → Advanced で pattern を編集できる。いったん有効化すると無効化できず、pattern 外に新規作成する前に対象を追加する。

限界値GIT FOLDERS

単純な「10GBまで」ではない

working branch 1GB、Git 操作のメモリ 2GB、disk write 4GB、UI 表示 10MB など複数の制限がある。ファイル数は2万未満が推奨。

設計NOTEBOOK

%run より module / package

%run は notebook 間の状態を密結合にしやすい。再利用ロジックは Python module / package に分け、Databricks Connect や CI でテスト可能にする。

04 / MAP

頻出分野の判断軸

10分あるときだけ読む。網羅ではなく、選択肢を切るための判断軸に絞った。

01

DATA INGESTION

ファイルは Auto Loader、DB の CDC は Lakeflow Connect

  • cloudFiles.format で csv / json / parquet 等を指定。
  • SQL Server の Standard CDC は gateway + ingestion pipeline。Integrated CDC は単一 pipeline。提供状況で方式を選ぶ。
  • 毎晩の JDBC full scan は増分取り込みではなく、負荷とコストが大きい。
02

STREAMING

checkpoint は query の継続性そのもの

  • 同じ query を再開するなら同じ checkpoint。削除や共有は重複・欠落・状態破損の原因。
  • exactly-once は source / sink と checkpoint の組み合わせで成立する。外部 side effect は自動で exactly-once にならない。
  • foreachBatch の upsert は batch ID や merge 条件で冪等にする。
03

TRANSFORMATIONS

目的に合わない演算は選択肢から落とす

  • JOIN の代わりに union / groupBy は使えない。cross join 後の filter は爆発的に増える。
  • 重複排除はキーと保持基準を明確にする。更新反映なら MERGE の match 条件を見る。
  • NULL と不正入力の扱いを確認し、失敗を許容するなら try_* を選ぶ。
04

JOBS & ORCHESTRATION

起動・依存・再試行を別々に読む

  • Trigger はジョブ全体を開始する条件。
  • depends_on は順序、Run if は upstream の結果に応じた実行可否。
  • retry / timeout / concurrency は失敗時と多重起動時の運用条件。
05

DELTA & PERFORMANCE

論理削除・物理削除・最適化を分ける

  • DELETE / MERGE は transaction log 上の変更。VACUUM が古い未参照ファイルを物理削除。
  • OPTIMIZE は小さいファイルをまとめる。Liquid clustering や predictive optimization は保守運用を簡素化。
  • AQE は runtime statistics で join / partition を適応的に調整する。
06

STORAGE

Volume はファイル、External location は境界

  • Volume は Unity Catalog 配下で非表形式ファイルを扱う。
  • External location は storage credential と cloud path を結び、外部データへのアクセス境界を作る。
  • DBFS root / mounts は deprecated。新規設計では Volumes / external locations / workspace files を使う。
07

GOVERNANCE

securable・principal・privilege を分解する

  • 誰に(principal)、何へ(securable)、何を許すか(privilege)。
  • row filter / column mask は table-level function か ABAC policy かを見分ける。
  • 強い admin 権限ではなく、最小権限と継承範囲を選ぶ。
08

CI/CD & BUNDLES

validate → deploy → run、target で環境を切る

  • databricks bundle validate -t prod で構成と参照を先に検証。
  • databricks bundle deploy -t prod で宣言リソースを配備。
  • CI では service principal、環境別 target、変数・secret の分離を考える。

05 / BEFORE START

試験開始前の最終確認

迷ったときは製品名を思い出すより、要件を分解する。

  1. 01

    バッチか継続か。 一度追いついて停止か、常時稼働か。

  2. 02

    誰が起動するか。 時刻・ファイル・テーブル・モデル・手動のどれか。

  3. 03

    どの層の設定か。 job / task / streaming query / table policy を混ぜない。

  4. 04

    最小の権限か。 admin を選ぶ前に SELECT / USE / MODIFY を確認。

  5. 05

    増分か全件か。 CDC / Auto Loader / MERGE を full scan より優先。

  6. 06

    似た語の違いは何か。 保存対象・適用範囲・優先順位を一文で言う。

OFFICIAL REFERENCES

確認に使った公式資料

機能追加が速い分野です。古い模擬問題より、試験ガイドと現行ドキュメントを優先してください。

公式リンクを開く