Skip to main content

Practice exam · Databricks

Databricks Certified Data Engineer Associate practice exam

45
questions
90
minutes
70%
to pass the practice exam
60
questions in the bank

Short answer

The Databricks Certified Data Engineer Associate practice exam has 45 questions in 90 minutes, with a 70% passing mark, as configured here. The fastest way to know whether you are ready is to sit a full exam on the clock and read your score by domain, not only the total.

Domains covered

  • ELT with Spark SQL and Python
  • Data Governance
  • Databricks Lakehouse Platform
  • Incremental Data Processing
  • Production Pipelines

Sample questions, with explanations

Three questions from the bank, open to read.

Question 1 · ELT with Spark SQL and Python

An analyst reports that a nightly job intermittently reads a Delta table while a separate write job is mid-flight appending a large batch. On some nights the read returns a mix of old and new rows, and the analyst asks the engineer to add a manual lock to prevent this. Given how Delta Lake works, what should the engineer explain about what a reader actually sees during a concurrent write?

  1. Readers always see whatever Parquet files currently exist on disk, so a half-written batch can leak into results unless a manual lock is added.
  2. Concurrent reads and writes on the same Delta table are unsupported and require enabling a special serializable-read flag per query.
  3. Delta blocks all reads while any write is in progress, so the read job must be waiting and returning stale cached data.
  4. A reader sees a single consistent snapshot pinned to the latest committed table version, so it never observes a partially written batch — no manual lock is needed. ✓ (correct)
Why this is correct

Delta Lake provides ACID snapshot isolation: a query reads the table at a specific committed version recorded in the transaction log, so files from an uncommitted/in-progress write are simply not yet referenced and cannot appear in results — the analyst's 'mix of old and new rows' from a single batch is not actually possible from a half-written commit. The 'readers see whatever files exist on disk' option reflects the classic data-lake misconception; Delta readers resolve files through the log snapshot, not by listing the directory. The 'Delta blocks all reads during writes' option is wrong because writers do not block readers in Delta's optimistic concurrency model. The 'concurrent reads/writes unsupported' option is false — this is a core Delta capability and needs no special per-query flag.

Question 2 · Production Pipelines

A team must enforce that the 'order_total' column in a DLT silver table is never negative, and any record violating this must be discarded from the table while the violation is still counted in pipeline metrics. Which expectation should they apply?

  1. @dlt.expect with a constraint that order_total >= 0, which keeps the violating rows in the table.
  2. A CHECK constraint added with ALTER TABLE after the pipeline finishes, since DLT cannot drop rows.
  3. @dlt.expect_or_drop with a constraint that order_total >= 0, which drops violating rows while recording the count. ✓ (correct)
  4. @dlt.expect_or_fail with a constraint that order_total >= 0, which stops the pipeline on any negative value.
Why this is correct

@dlt.expect_or_drop is correct because its action removes rows that violate the constraint from the target dataset while still recording the violation count in the pipeline metrics — precisely the discard-but-count requirement. @dlt.expect is wrong because its action retains violating rows, so negative order_total values would remain in the table. @dlt.expect_or_fail is wrong because it halts the entire pipeline run on a violation rather than dropping the offending row and continuing. Adding a CHECK constraint via ALTER TABLE after the run is wrong because it is a post-hoc table constraint applied outside the pipeline's quality flow, and the claim that DLT cannot drop rows is false — expect_or_drop does exactly that during the run.

Question 3 · Production Pipelines

A Delta Live Tables pipeline ingests customer records. The team wants to keep rows that violate a data quality rule but track how many failed, without dropping or failing the pipeline. Which expectation configuration achieves this?

  1. Use @dlt.expect (the warn/retain action) so violating rows are kept and the violation count is recorded in the event log and metrics. ✓ (correct)
  2. Use a plain WHERE filter in the query, since DLT expectations always drop violating rows by default.
  3. Use @dlt.expect_or_fail so the pipeline stops on the first violation, then read the failure metrics afterward.
  4. Use @dlt.expect_or_drop so violating rows are removed from the target while a count is still tracked.
Why this is correct

@dlt.expect is correct because its action is to retain violating rows in the dataset while still recording the number of violations in the pipeline's metrics and event log — exactly the 'keep but track' behavior requested. @dlt.expect_or_drop is wrong because its action is to remove violating rows from the target, which contradicts the requirement to keep them. @dlt.expect_or_fail is wrong because it halts the pipeline run when a record violates the constraint, which the team explicitly wants to avoid. A plain WHERE filter is wrong because it silently excludes rows without producing any quality metrics, and the claim that DLT expectations 'always drop by default' is false — the action depends on which expectation decorator you choose.

Take the full practice exam

  • 45 questions drawn from the bank, with a 90-minute timer
  • Score by domain and a review of every question
  • An AI tutor to talk through each question you miss
  • What you miss feeds your study plan

Independent, unofficial practice exam. Databricks and the exam name are trademarks of their owners; UpSkillScore is not affiliated with them. Format and passing mark are the exam's configuration in UpSkillScore, not an official statement.

Frequently asked questions

How many questions does the Databricks Certified Data Engineer Associate practice exam have?

It has 45 questions and a 90-minute limit. The passing mark of the practice exam is 70%.

Is this the official Databricks Certified Data Engineer Associate exam?

No. It is an independent practice exam built to match the structure of the real one. It does not replace the official exam.

Do I need an account to take it?

You can read the structure and sample questions without an account. Taking the full timed exam, scoring by domain and the AI tutor need one.