DATABRICKS-DEA Exam Prep Free practice test →

Free DATABRICKS-DEA Practice Questions

10 free, exam-style Databricks Certified Data Engineer Associate (DATABRICKS-DEA) practice questions with answers and explanations. No signup required. Work through them below, then take the full free DATABRICKS-DEA practice test to study every exam domain.

These 10 free DATABRICKS-DEA questions are organized by exam domain, so you can see how each part of the Databricks Certified Data Engineer Associate blueprint is tested. Reveal the answer and explanation under each question.

Domain 1: Databricks Lakehouse Platform

Question 1

A data engineer wants to optimize query performance on a table that is frequently filtered by 'customer_id' and 'order_date'. The table receives continuous inserts and the data is not naturally sorted. Which approach is MOST appropriate?

  1. Partition the table by customer_id and apply Z-ORDER BY order_date to optimize the physical file layout within each partition for faster range scans on order_date
  2. Create the table with CLUSTER BY (customer_id, order_date) to enable Liquid Clustering, which automatically organizes data for both filter columns
  3. Add explicit column-level indexes on customer_id and order_date using CREATE INDEX, which builds B-tree structures on both columns for fast point lookups
  4. Create two separate copies of the table - one partitioned by customer_id for customer lookups and another partitioned by order_date for date-range queries
Show answer & explanation

Correct answer: B - Create the table with CLUSTER BY (customer_id, order_date) to enable Liquid Clustering, which automatically organizes data for both filter columns

Domain 2: ELT with Spark SQL and Python

Question 2

A data engineer writes the following Auto Loader code: spark.readStream .format("cloudFiles") .option("cloudFiles.format", "csv") .load("/data/sales/") .writeStream .option("checkpointLocation", "/checkpoints/sales") .toTable("catalog.schema.sales") What is the purpose of the checkpointLocation option?

  1. It specifies where Auto Loader stores its processing state, tracking which files have been ingested so they are not reprocessed
  2. It specifies a backup location where copies of the source CSV files are safely stored before they are parsed, transformed, and loaded into the target Delta table
  3. It specifies the cloud storage path where the output Delta table's data files and transaction log are written and managed by the Delta Lake engine
  4. It specifies the directory where Auto Loader writes the inferred schema definition so it persists across pipeline restarts and cluster terminations
Show answer & explanation

Correct answer: A - It specifies where Auto Loader stores its processing state, tracking which files have been ingested so they are not reprocessed

Question 3

A data engineer needs to ingest new JSON files as they arrive in cloud storage. The volume is expected to grow from thousands to millions of files over the next year. They are choosing between Auto Loader and COPY INTO. Which statement CORRECTLY describes a key difference?

  1. COPY INTO uses file notification mode to efficiently detect new files at scale, while Auto Loader requires a full directory listing on every execution run
  2. COPY INTO automatically infers and evolves the schema as new columns appear in source files, while Auto Loader requires the schema to be fully defined manually before ingestion can begin
  3. Both commands produce identical performance regardless of file volume because they both leverage the Delta Lake transaction log to track which source files have been processed
  4. Auto Loader scales more efficiently at high file volumes because it uses file notification to detect new files, while COPY INTO must list the directory each run
Show answer & explanation

Correct answer: D - Auto Loader scales more efficiently at high file volumes because it uses file notification to detect new files, while COPY INTO must list the directory each run

Domain 3: Incremental Data Processing

Question 4

A data engineer has a source system that sends both new records and updates to existing records. The data is first ingested into a bronze table as raw, append-only rows. Which Medallion Architecture layer is MOST appropriate for applying MERGE INTO logic to deduplicate records and apply updates?

  1. Bronze layer - apply MERGE INTO immediately during ingestion so that the bronze table always reflects the latest state of each record
  2. Gold layer - perform upserts into pre-aggregated business tables so that dashboards always show the most current metrics and KPIs
  3. Silver layer - use MERGE INTO to match incoming records against the cleaned table, updating existing records and inserting new ones
  4. No specific layer - upsert logic should be applied as a separate post-processing step outside the Medallion Architecture framework entirely
Show answer & explanation

Correct answer: C - Silver layer - use MERGE INTO to match incoming records against the cleaned table, updating existing records and inserting new ones

Question 5

A data engineer writes the following LDP pipeline definition: CREATE OR REFRESH STREAMING TABLE quality_data ( CONSTRAINT not_null_id EXPECT (id IS NOT NULL) ON VIOLATION DROP ROW, CONSTRAINT positive_price EXPECT (price > 0) ) AS SELECT * FROM STREAM read_files('/data/products/') A record arrives with id = 123 and price = -10. What happens to this record?

  1. The record is KEPT - the id constraint passes so the row is not dropped, and the positive_price constraint only logs the violation because no ON VIOLATION clause was specified
  2. The record is DROPPED - when multiple constraints exist on a streaming table, any single constraint violation triggers the strictest action across all constraints, which in this case is DROP ROW from the not_null_id constraint
  3. The record causes the entire pipeline update to FAIL - when any expectation is violated on a streaming table, the pipeline halts to preserve data integrity regardless of the specified action
  4. The record is KEPT but the price value is automatically set to NULL - the EXPECT clause replaces violating column values with nulls rather than keeping the original negative value in the output
Show answer & explanation

Correct answer: A - The record is KEPT - the id constraint passes so the row is not dropped, and the positive_price constraint only logs the violation because no ON VIOLATION clause was specified

Question 6

A data engineer writes: MERGE INTO silver.customers AS t USING new_data AS s ON t.customer_id = s.customer_id WHEN MATCHED AND s.is_deleted = true THEN DELETE WHEN MATCHED THEN UPDATE SET t.name = s.name, t.email = s.email WHEN NOT MATCHED THEN INSERT (customer_id, name, email) VALUES (s.customer_id, s.name, s.email) What does this command do when a source row has is_deleted = true and matches an existing customer?

  1. It updates the matched customer's name and email fields first, then marks the record for deletion during the next VACUUM operation
  2. It skips the row entirely because DELETE and UPDATE cannot both appear as WHEN MATCHED clauses in the same MERGE statement
  3. It deletes the matched customer record from the target table because the first WHEN MATCHED clause with the matching condition takes precedence
  4. It inserts the row as a new record because the DELETE clause removes the original match, causing the NOT MATCHED clause to trigger for the same row
Show answer & explanation

Correct answer: C - It deletes the matched customer record from the target table because the first WHEN MATCHED clause with the matching condition takes precedence

Question 7

A data engineer runs VACUUM my_table RETAIN 168 HOURS on a Delta table that was created 30 days ago and has had daily inserts. After the VACUUM completes, they attempt: SELECT * FROM my_table VERSION AS OF 0 What happens?

  1. The query succeeds and returns the original data from version 0, because VACUUM only removes orphaned temporary files and never affects data files that are referenced by any version in the transaction log history
  2. The query succeeds but returns an empty result set, because VACUUM resets the data content for versions older than the retention period to empty placeholders while keeping the version metadata intact
  3. The query succeeds because Delta Lake always retains the physical data files for at least the first and most recent version of a table regardless of any VACUUM retention period that has been configured
  4. The query fails because VACUUM removed the underlying data files for version 0, which is beyond the 7-day retention - time travel requires the physical data files to exist
Show answer & explanation

Correct answer: D - The query fails because VACUUM removed the underlying data files for version 0, which is beyond the 7-day retention - time travel requires the physical data files to exist

Domain 4: Production Pipelines

Question 8

A Databricks Workflow has five tasks: Ingest → Validate → Transform → Load → Notify. The workflow runs nightly. One night, the Transform task fails due to a transient cluster error, while Ingest and Validate completed successfully. After the cluster issue is resolved, the data engineer wants to resume the workflow efficiently. Which action should they take?

  1. Rerun the entire workflow from the Ingest task to ensure full end-to-end data consistency, since partial reruns risk producing inconsistent results in downstream Delta tables
  2. Delete the failed workflow run and create a new manual run from the UI, which automatically detects previously completed tasks using checkpoint metadata and skips them
  3. Use Repair Run to rerun only the failed Transform task and its downstream dependents (Load, Notify) while preserving the successful Ingest and Validate results
  4. Mark the Transform task as skipped and manually trigger the Load and Notify tasks as independent single-task jobs outside the original workflow DAG to avoid re-executing the failed Transform logic
Show answer & explanation

Correct answer: C - Use Repair Run to rerun only the failed Transform task and its downstream dependents (Load, Notify) while preserving the successful Ingest and Validate results

Question 9

A data engineer has a Databricks Asset Bundle (DAB) project with three targets defined in databricks.yml: 'dev', 'staging', and 'prod'. They want to deploy the bundle's jobs and pipelines to the staging workspace. Which command should they run?

  1. databricks bundle deploy -t staging
  2. databricks bundle push --workspace staging
  3. databricks bundle deploy --env staging
  4. databricks bundle apply --target staging
Show answer & explanation

Correct answer: A - databricks bundle deploy -t staging

Domain 5: Data Governance

Question 10

A data engineer grants SELECT on a table to a new analyst: GRANT SELECT ON TABLE production.sales.orders TO `analyst@company.com` The analyst attempts to query the table but receives a permission denied error. The table exists and contains data. What is the MOST likely cause?

  1. The analyst's cluster does not have Unity Catalog enabled, so the GRANT statement was applied but the runtime cannot enforce the permission at query time
  2. The analyst also needs USAGE permission on both the 'production' catalog and the 'sales' schema - USAGE on parent objects is required to access child objects
  3. The SELECT grant only takes effect after the analyst's session is restarted, because Unity Catalog caches permission checks for the duration of each active session
  4. The GRANT syntax is incorrect - the analyst's email must be specified without backticks, and the table reference must include the metastore name as a fourth level
Show answer & explanation

Correct answer: B - The analyst also needs USAGE permission on both the 'production' catalog and the 'sales' schema - USAGE on parent objects is required to access child objects

Ready for the real thing?

Practice hundreds more DATABRICKS-DEA questions with instant scoring, weak-area drills, and full exam simulations.

Start the free practice test See pricing