Databricks DE · Topic 12.2
Take full, timed practice exams; score by domain; review only the weak domains by expected-gain; re-test until consistently passing. Then book.
▸ click "simulate a practice run" — green = solid, red = review
Mechanism: the official Databricks practice exam + Academy track the current 7-domain blueprint and naming. Trade-off: third-party "dumps" are often stale/wrong and risk the exam agreement — verify everything against docs.
✅ Official practice exam (Databricks certification page) ✅ Databricks Academy / self-paced DE learning path ✅ The official exam guide (domain list + weights) ⚠️ Third-party "dumps": verify every claim against docs — often stale or wrong.
Mechanism: sit a full 45-question set in one 90-minute block, no notes, no pausing. Trade-off: untimed practice inflates your score and hides the real failure mode — running out of time.
Mock-exam rules: 45 questions · 90:00 timer · no notes · no pausing Pacing target: ~2 min/question; flag hard ones, answer all (no blank — no penalty)
Mechanism: score by domain, map gaps to Stages 1–11, drill the worst score-vs-weight payoff first, re-test. Trade-off: re-studying comfortable strong domains feels good but barely moves the score.
1. Baseline → full timed exam BEFORE heavy study 2. Score → per-domain %, mapped to the 7 domains (12.1) + your stages 3. Prioritize → fix lowest score × highest weight first (biggest point gain) 4. Drill → redo that stage's lesson + consolidated notebook 5. Re-test → another full exam; confirm gain, check no regression
Mechanism: turn a score into an action by ranking gap × weight (expected score gain). Trade-off: sequence by expected gain, not by anxiety.
# Scores: Govern 45, Optim 60, Jobs 76, CI/CD 72, Transform 82, Ingest 88, Platform 90 Governance: (100-45) × 0.15 = 8.25 ← study FIRST (Stage 8/9) Optimization: (100-60) × 0.10 = 4.00 ← then this (Stage 3/7/10) Jobs: (100-76) × 0.16 = 3.84 ← then this (Stage 7) CI/CD: (100-72) × 0.10 = 2.80 ← then this (Stage 11)
Mechanism: items are short scenarios with code/config; pick the option that's correct AND current. Trade-off: internalize why the right option wins — don't memorize snippets.
-- Q: "Insert new rows AND update changed rows in one statement." → MERGE. MERGE INTO main.silver.customers t USING updates s ON t.id = s.id WHEN MATCHED THEN UPDATE SET * WHEN NOT MATCHED THEN INSERT *; -- Why: MERGE = upsert. INSERT OVERWRITE replaces; INSERT INTO only appends.
# Q: "Ingest only new files as they land, tracking schema." → Auto Loader. spark.readStream.format("cloudFiles") \ .option("cloudFiles.format", "csv") \ .option("cloudFiles.schemaLocation", "/Volumes/main/raw/_schema") \ .load("/Volumes/main/raw/in") # Why: cloudFiles = Auto Loader (incremental + schema). spark.read reprocesses all; # COPY INTO is SQL-batch, not a stream.
# Q: "Run a job every day at 02:00." → 6-field Quartz, not 5-field Unix. quartz_cron_expression: "0 0 2 * * ?" # ✅ sec min hour day month dow "0 2 * * *" # ❌ 5-field Unix cron — wrong format