Free sample exam
Databricks Certified Data Engineer Professional
Free practice questions for the Databricks Data Engineer Professional exam, written to the October 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 professional exam tests what an experienced data engineer does on Databricks: CDC pipelines that keep history, streams that survive retries, ingestion from databases and message buses, cost and layout choices for large tables, deletion that satisfies GDPR, and the jobs, bundles and logs you use to run and repair it all. Writing pipeline code in Python and SQL is the largest section (23%), and cost and performance comes next (15%).
This version was published on 9 October 2026. It has 9 sections and uses the current names: Lakeflow Pipelines, AUTO CDC (once APPLY CHANGES), Lakeflow Jobs and Declarative Automation Bundles (once Databricks Asset Bundles). If you studied for the older exam, check each section against the new guide.
- Questions
- 60 scored multiple choice, plus unscored questions
- Time
- 120 minutes
- Pass mark
- Not published by Databricks
- Fee
- $200, plus tax
- Delivery
- Online proctored or at a test centre
- Languages
- English
- Valid for
- 2 years; renew by passing the current exam
- Prerequisite
- None; 1 year of hands-on data engineering recommended
What it covers, by share of the questions
- Developing Code for Data Processing using Python and SQL23%
- Data Ingestion & Acquisition12%
- Data Manipulation12%
- Monitoring and Alerting10%
- Cost & Performance Optimization15%
- Ensuring Data Security and Compliance8%
- Data Governance5%
- Debugging and Deploying10%
- Data Modeling5%
The sample
11 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 11
Question 1
A CRM sends a change record each time a customer's address changes, with an updated_at column that orders the changes. Analysts need every customer's current address and each earlier one with the dates it applied. How should the Lakeflow pipeline load the customers table?
Not this time. SCD type 2 keeps the whole history: AUTO CDC adds a new row for each version of a record, with __START_AT and __END_AT columns for when it was in force, and sequence_by puts out-of-order changes in the right order. The default, SCD type 1, updates the row in place, so only the current address is kept. Time travel is not a history model: VACUUM removes old files after the retention threshold, 7 days by default. A newest-row view and an overwriting MERGE both keep only the current address.
Question 2
A gold table joins a stream of orders with a products dimension. When a product's category is corrected, last month's totals by category must show the corrected category. Which kind of dataset should the gold table be?
Not this time. Databricks says joins in streaming tables do not recompute when a dimension changes, which is fine when fast matters more than exact, and that materialized views are always correct because they recompute joins when dimensions change. Processing each row once is why streaming tables suit ingestion, and it is the reason old orders would keep the old category here. A longer watermark only changes how late an order may arrive. A temporary view is not stored, so it is not a table for analysts to query.
Question 3
A stream uses foreachBatch to merge each micro-batch into two Delta tables. After a cluster failure and an automatic retry, some rows appear twice in one of them. What does Databricks recommend for these writes?
Not this time. When foreachBatch writes to Delta tables, Databricks says you must use the txnAppId and txnVersion write options, binding txnVersion to the batch ID, so a batch that is retried is not written again. It also says not to catch and retry exceptions locally, but to let errors propagate. A new checkpoint loses the record of which batches were done and reprocesses data. A different trigger changes how often batches run, not whether a retried batch is written twice.
Question 4
The finance team wants the ERP's tables in SQL Server copied into Unity Catalog and kept up to date with each insert, update and delete, with as little custom code as possible. What should you use?
Not this time. Lakeflow Connect's database connectors ingest from relational databases, MySQL, PostgreSQL and SQL Server among them, using change data capture, so each change is carried over without code of your own. Lakehouse Federation queries an external database without migrating the data, which is the opposite of a copy in Unity Catalog. Nightly exports and full JDBC reloads are custom pipelines that reread everything and miss the order of changes in between.
Question 5
Raw events land in a column named raw of type VARIANT. Which SQL expression returns the top-level field device as a string?
Not this time. On VARIANT data, : selects a top-level field and :: casts the result, the shorthand for variant_get(raw, '$.device', 'string'). A dot selects nested fields further down the path, not the first field. Field names are case sensitive, so Device does not match device. Casting the whole value to a string and searching the text throws away the structure VARIANT keeps.
Question 6
Finance asks for last month's spend in dollars for each Lakeflow Job. The jobs run on serverless compute and job compute. Where do you get the figures?
Not this time. system.billing.usage records all billable usage in the account, and its usage_metadata.job_id is filled for serverless jobs and jobs on job compute (not for jobs on all-purpose compute). system.billing.list_prices is the history of SKU prices, so joining the two turns usage into dollars. Run duration times cluster size ignores the SKU and its price. system.query.history holds queries on SQL warehouses and serverless compute, not a job's whole bill. Event logs describe what a cluster did, not what it cost.
Question 7
A 40 TB events table is partitioned by event_date and Z-ordered by user_id. Most queries now filter on customer_id and region, the filters keep changing, and many partitions hold only a few small files. What change does Databricks recommend?
Not this time. Liquid clustering replaces partitioning and ZORDER. Databricks lists tables with poor data skipping or too many partitions, and tables whose query patterns change, as the ones that gain from converting, and CLUSTER BY AUTO picks and changes the clustering keys as the queries change, without rewriting the data each time. Another partition column makes the small-partition problem worse. More ZORDER columns weaken it for every column and must be rerun as data arrives. Fewer files fix the file count but not the layout for the new filters.
Question 8
A customer asks to be erased. You run DELETE on a Delta table that has deletion vectors turned on. What else must happen before their rows are gone from storage?
Not this time. With deletion vectors, a DELETE marks rows as soft-deleted and leaves them in the Parquet files. REORG TABLE ... APPLY (PURGE) rewrites the files that hold soft-deleted rows, the old files can still hold the data, and VACUUM deletes those once they are older than the retention threshold, 7 days by default. VACUUM straight after the DELETE removes nothing that matters, because the files with the customer's rows are still part of the table. Restoring an old version loses every other change since then.
Question 9
Hundreds of tables, and new ones each week, have columns tagged as personal data. Every such column must be masked for everyone outside the privacy team. What scales best?
Not this time. Attribute-based access control uses governed tags and policies to apply permissions by an object's attributes instead of per-object grants, so one column mask policy covers every column with the tag, including columns in tables created later. Per-table masks and per-table views work, but each new table needs its own, and a missed one is a leak. Hashed copies double the storage and leave the originals to be secured anyway.
Question 10
A 12-task Lakeflow Job failed at task 9 because of a wrong date parameter. Tasks 10 to 12 depend on task 9, and tasks 1 to 8 took three hours. What is the quickest correct fix?
Not this time. Repair run reruns the unsuccessful tasks and the tasks that depend on them, so tasks 9 to 12 run and tasks 1 to 8 keep their results. Parameters entered in the Repair job run dialog override the existing values. Run now starts every task again. A cloned job loses the run's history and settings, and running the notebook by hand skips tasks 10 to 12 and leaves no record in the job.
Question 11
Analysts need to read every table in the sales catalog, including tables created later. Which grants do that with the fewest statements to maintain?
Not this time. Privileges granted on a catalog apply to its current and future objects, so SELECT on the catalog covers tables added later. Reading a table also needs USE CATALOG on the parent catalog and USE SCHEMA on the parent schema, which can be granted on the catalog too. SELECT on its own is not enough without them. Grants table by table need upkeep, and ownership hands over the right to manage and drop everything in the catalog.
Sources
Where each fact comes from
- 1Databricks Certified Data Engineer Professional exam guide
- 2Databricks Certified Data Engineer Professional
- 3Badge and Certification FAQ
- 4AUTO CDC APIs: simplify change data capture with pipelines
- 5create_auto_cdc_flow (Python reference)
- 6Streaming tables
- 7Use foreachBatch to write to arbitrary data sinks
- 8Lakeflow Connect
- 9Connect to external databases and catalogs
- 10Query variant data
- 11Billable usage system table reference
- 12Monitor account activity with system tables
- 13Use liquid clustering for tables
- 14What are deletion vectors?
- 15REORG TABLE
- 16Remove unused data files with vacuum
- 17Core concepts for attribute-based access control (ABAC)
- 18Troubleshoot and repair job failures
- 19Unity Catalog privileges reference
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.
23%
Developing Code for Data Processing using Python and SQL
- CourseData engineering course, Module 9: Streaming, Exactly-once and foreachBatch
- CourseData engineering course, Module 9: Streaming, Event time, windows and watermarks
- CourseData engineering course, Module 6: Getting data in, Change data capture with MERGE
- ConceptSlowly Changing Dimensions
- CourseData engineering course, Module 11: Testing, CI/CD and bundles, Unit tests for PySpark with pytest
15%
Cost & Performance Optimization
12%
Data Ingestion & Acquisition
12%
Data Manipulation
- CourseData engineering course, Module 2: PySpark DataFrames, Join, aggregate and write
- ReferencePySpark cheat sheet
- CourseData engineering course, Module 7: Pipelines: medallion with declarative pipelines, Rules, quarantine and a quality gate
- CourseData engineering course, Module 13: Data for AI, AI Functions, a model called from SQL
10%
Monitoring and Alerting
10%
Debugging and Deploying
8%
Ensuring Data Security and Compliance
5%
Data Governance
5%
Data Modeling
Questions
- How many questions are on the Databricks Data Engineer Professional exam?
- 60 scored multiple-choice questions in 120 minutes. 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 Professional exam?
- Databricks does not publish one. Its certification FAQ says the passing score is set by statistical analysis and may change, so prepare for every section of the guide rather than aim for a percentage.
- What changed in the October 2026 Data Engineer Professional exam?
- The version published on 9 October 2026 has 9 sections. Writing pipeline code in Python and SQL is 23% of the questions and cost and performance 15%, and it names AUTO CDC, Lakeflow Connect, VARIANT, ai_query, ABAC policies, system tables and Unity Catalog metric views.
- How much does the Databricks Data Engineer Professional 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.
- Should I take the Data Engineer Associate exam first?
- It is not required: the professional exam has no prerequisite. Databricks recommends a year of hands-on data engineering, and the professional guide assumes the associate topics, so the associate exam is a common first step.
- Does the Databricks Data Engineer Professional certification expire?
- Yes, after 2 years. To recertify you take the current live exam.