Free sample exam
Databricks Certified Data Engineer Associate
Free practice questions for the Databricks Data Engineer Associate exam, written to the August 2026 guide, scored as you go, with the reason behind every answer and the Lakeflow names Databricks uses today.
Tecyfy is independent of Databricks. These are our own practice questions, written to the objectives in the official exam guide and answered from Databricks' and Apache Spark's documentation.
The real exam
The exam tests the everyday work of a data engineer on Databricks: picking compute, loading files with COPY INTO and Auto Loader, cleaning and joining data with PySpark and SQL, building Gold tables, running it all as Lakeflow Jobs, shipping it with bundles, finding the slow stage, and governing it in Unity Catalog. Ingestion (21%) and transformation (22%) are almost half the questions, and governance is 15%.
This version went live on 4 May 2026, and the guide was updated on 6 August 2026. It uses the current names: Lakeflow Jobs (once Workflows), Lakeflow Declarative Pipelines (once Delta Live Tables) and Declarative Automation Bundles (once Databricks Asset Bundles). If your course material says the old names, the ideas carry over, but check the details against today's documentation.
- Questions
- 45 scored multiple choice, plus up to 10 unscored
- Time
- 90 minutes
- Pass mark
- Not published by Databricks
- Fee
- $200, plus tax
- Delivery
- Online proctored or at a test centre
- Languages
- English, Japanese, Brazilian Portuguese, Korean
- Valid for
- 2 years; renew with the Renewal Exam or the current exam
- Prerequisite
- None; 6 months of hands-on Databricks work recommended
What it covers, by share of the questions
- Databricks Intelligence Platform6%
- Data Ingestion and Loading21%
- Data Transformation and Modeling22%
- Working with Lakeflow Jobs16%
- Implementing CI/CD10%
- Troubleshooting, Monitoring, and Optimization10%
- Governance and Security15%
The sample
12 questions in the style of the exam. Pick an answer to see why it is right or wrong. Your best score stays in this browser.
Question 1 of 12
Question 1
A nightly PySpark notebook cleans the day's orders and needs no special cluster settings. Today it runs on an all-purpose cluster that the team also uses for development. Which compute should the job's task use?
Not this time. Databricks recommends serverless compute for most automated workloads: fewer settings, faster start-up, automatic scaling and lower cost. Classic jobs compute is for non-SQL jobs that need custom cluster settings serverless does not offer, which this one does not. All-purpose compute, shared or not, is the one Databricks says to avoid for jobs, since it is not optimised for automated work, and a shared cluster mixes the job with other people's sessions. Sizing classic compute for the peak pays for that size every night.
Question 2
A scheduled COPY INTO loads new JSON files from an S3 folder into a Unity Catalog table. Last night's run failed halfway through. What should you do so the table ends up with every file exactly once?
Not this time. COPY INTO is retriable and idempotent: files in the source that it has already loaded are skipped on later runs, so running it again picks up only what the failed run missed. Setting force to true turns that off and loads files whether or not they were loaded before, which duplicates rows. Truncating and reloading the whole folder works but throws away history and rereads everything. A plain INSERT over read_files keeps no record of loaded files, so every run would reload the folder.
Question 3
An Auto Loader stream lands vendor CSV files in a bronze table with cloudFiles.schemaEvolutionMode left at its default. The vendor adds a discount_code column and the stream stops with an UnknownFieldException. What is the right fix?
Not this time. The default mode is addNewColumns. Before the stream fails, Auto Loader adds the new column to the schema in the schema location, so a restart carries on with the updated schema. That is why Databricks recommends running Auto Loader streams from Lakeflow Jobs that restart on failure. Deleting the checkpoint reprocesses every file. Rescue mode never evolves the schema: the new column goes into the rescued data column instead. None ignores new columns altogether.
Question 4
You combine this year's orders with an archive DataFrame using df_2026.union(df_archive). Both have the same column names, but the archive was written with its columns in a different order, and amounts now appear in the customer_id column. What fixes it?
Not this time. union resolves columns by position, as SQL does, so a different column order puts values under the wrong names. unionByName resolves them by name; with allowMissingColumns=True it also fills a column that one side lacks with nulls. unionAll is the same as union. distinct() removes duplicate rows, not misplaced values, and a full outer join on every column is not a union at all.
Question 5
Analysts want a Gold daily revenue table for a dashboard that must open fast. It aggregates the silver orders table, which other teams update and correct at unpredictable times. What should you build in Unity Catalog?
Not this time. A materialized view stores precomputed results, which is what keeps a dashboard fast, and a refresh on update (TRIGGER ON UPDATE) keeps it current when the source changes on no fixed schedule. A view recomputes the aggregate on every query. A streaming table handles each input row once, which suits append-only ingestion, not totals that must change when earlier orders are corrected. A nightly rebuild is stale for most of the day.
Question 6
A join of a 40 GB orders table with a 30 MB stores table shuffles both sides, and the physical plan shows a SortMergeJoin. spark.sql.autoBroadcastJoinThreshold is at its default. What lets Spark broadcast the stores table instead?
Not this time. The default threshold is 10 MB, so a 30 MB table is not broadcast automatically. Raising the threshold above its estimated size, or putting a broadcast hint on the small side, sends the stores table to every executor and removes the shuffle of the 40 GB side. Then measure again, as the guide asks. Setting the threshold to -1 turns broadcasting off. More shuffle partitions change the size of each task, not the join strategy, and driver memory alone changes neither.
Question 7
A Lakeflow Job builds a customer report and should run only after both the orders and the customers tables have been updated. 2 other teams' pipelines write them, at different and unpredictable times. Which trigger fits?
Not this time. A table update trigger watches Unity Catalog tables for changes such as updates, merges and deletes, and can start the job when any or all of the watched tables have been updated, with a minimum time between triggers if needed. It costs nothing extra while it waits. The job's Run as principal needs SELECT on both tables, plus USE CATALOG and USE SCHEMA, or the trigger cannot evaluate. A file arrival trigger is for files landing in storage, a continuous job runs and costs all day, and polling every 15 minutes starts runs that find nothing.
Question 8
3 load tasks run in parallel, and a final task sends a summary and cleans up temporary files. The final task must run once all 3 have finished, even if some failed. Which Run if condition do you set on it?
Not this time. All done runs the task after all its dependencies have run, whatever their result. All succeeded is the default and marks the task Upstream failed if any load fails. None failed also skips it after a failure. At least one failed runs it only after a failure, so it would never clean up after a good night.
Question 9
A bundle's job uses a different SQL warehouse in dev and in prod. How do you keep one databricks.yml for both?
Not this time. Custom variables are declared in the variables mapping and referenced with ${var.<name>}. Each target can set its own value under targets.<target>.variables, so the same code is promoted from dev to prod and only the target changes. Separate files per branch drift apart, an if statement on the workspace URL hides configuration in code, and a hand edit in the UI is overwritten by the next deployment.
Question 10
A Delta table partitioned by event_date has thousands of small files, and most queries filter on customer_id. On Databricks Runtime 18.1, how do you move it to liquid clustering?
Not this time. Liquid clustering replaces partitioning and ZORDER and cannot be combined with either. From Databricks Runtime 18.1, REPLACE PARTITIONED BY WITH CLUSTER BY converts a partitioned table in place, for managed and external tables, and CLUSTER BY AUTO lets predictive optimization choose the keys on a managed table. Plain CLUSTER BY is for unpartitioned tables. A second partition column on a high-cardinality key makes the small-file problem worse.
Question 11
The analysts group has SELECT on sales.emea.orders but still cannot query it. What is missing?
Not this time. SELECT lets a principal query a table, but in Unity Catalog every object inside a catalog or schema also needs USE CATALOG on the catalog and USE SCHEMA on the schema. Neither gives access to data by itself, so granting them adds nothing beyond what SELECT allows. MODIFY is for changing data, and ALL PRIVILEGES on the metastore or table ownership grant far more than reading.
Question 12
Someone drops a managed table and an external table in Unity Catalog by mistake. What happens to their data files, and what can you do the next day?
Not this time. When a managed table is dropped, Databricks deletes its data files after the recovery period, 7 days by default and set at catalog or schema level, and UNDROP recovers it within that period. Dropping an external table removes only its metadata; the files stay in your storage, and UNDROP can bring an external table back too if you have CREATE EXTERNAL TABLE on its location. RESTORE TABLE returns a table that still exists to an earlier version, it does not undo a drop.
Sources
Where each fact comes from
- 1Databricks Certified Data Engineer Associate exam guide
- 2Databricks Certified Data Engineer Associate
- 3Badge and Certification FAQ
- 4Choose a compute type
- 5COPY INTO
- 6Configure schema inference and evolution in Auto Loader
- 7pyspark.sql.DataFrame.unionByName and DataFrame.union
- 8Performance tuning
- 9Materialized views
- 10Streaming tables
- 11Trigger jobs when source tables are updated
- 12Configure task dependencies (Run if)
- 13Substitutions and variables in bundles
- 14Use liquid clustering for tables
- 15Unity Catalog privileges and securable objects
- 16Managed and external tables, and UNDROP
How to study for it, domain by domain
Study the domains in order of weight: the larger the share, the more questions it sets. Each one links to our own free pages that teach it.
22%
Data Transformation and Modeling
- ReferencePySpark cheat sheet
- CourseData engineering course, Module 2: PySpark DataFrames, Join, aggregate and write
- ArticlePySpark Joins: Broadcast, Sort-Merge and Shuffled Hash, and How Spark Chooses
- ConceptMedallion Architecture
- CourseData engineering course, Module 7: Pipelines: medallion with declarative pipelines, Rules, quarantine and a quality gate
- ConceptData Quality
21%
Data Ingestion and Loading
16%
Working with Lakeflow Jobs
15%
Governance and Security
10%
Implementing CI/CD
- CourseData engineering course, Module 11: Testing, CI/CD and bundles, Declarative Automation Bundles, dev and prod
- CourseData engineering course, Module 11: Testing, CI/CD and bundles, Data quality over time
- CourseData engineering course, Module 11: Testing, CI/CD and bundles, Unit tests for PySpark with pytest
10%
Troubleshooting, Monitoring, and Optimization
6%
Databricks Intelligence Platform
Questions
- How many questions are on the Databricks Data Engineer Associate exam?
- 45 scored multiple-choice questions in 90 minutes. Up to 10 unscored questions may be added to try out new items; they are not marked, and the time limit already allows for them.
- What is the passing score for the Databricks Data Engineer Associate exam?
- Databricks does not publish one. Its certification FAQ says the passing score is set by statistical analysis and may change, so prepare to answer every section of the guide rather than aim for a percentage.
- How hard is the Databricks Data Engineer Associate exam?
- It is an associate exam, but it is hands-on: the questions describe a job and ask what you would do, so reading alone is not enough. Databricks recommends 6 months of hands-on work. The guide suggests practice tasks small enough to do in Databricks Free Edition.
- What changed in the 2026 Data Engineer Associate exam?
- The version live since 4 May 2026 (guide updated 6 August 2026) has 7 sections. Ingestion and transformation are 43% of the questions, governance is 15%, and there are sections on Lakeflow Jobs (16%), CI/CD with Declarative Automation Bundles (10%) and troubleshooting with the Spark UI (10%). It names Lakeflow Connect, liquid clustering, predictive optimization and ABAC policies.
- How much does the Databricks Data Engineer Associate exam cost?
- $200 plus applicable tax for each attempt. A retake costs the full fee again and can be taken 14 days after the previous attempt.
- Does the Databricks Data Engineer Associate certification expire?
- Yes, after 2 years. You renew it with the Data Engineer Associate Renewal Exam or by passing the current full exam.