Databricks Data Engineer Associate Practice Test

Practice for the Databricks Certified Data Engineer Associate exam with questions on the Lakehouse platform, Delta Lake (ACID, time travel, OPTIMIZE/ZORDER), Spark Structured Streaming, Auto Loader, DLT-style pipelines, and Unity Catalog governance.

Typical stems ask you to choose between batch vs streaming, when to use a MERGE, how to recover from a failed job, and which catalog object grants are required for a job to read a gold table. Explanations point at official Databricks docs, not forum folklore.

Also see the Databricks article category, tool comparisons, and cheat sheets. Use the interactive quiz on this page to attempt questions and review rationales.

DataEngineer Hub is not affiliated with Databricks. Confirm current exam details on Databricks' certification pages before registering.

Sample questions with explanations

The items below are from this bank so a reader (and an ads crawler) can study real stems without running JavaScript. The interactive quiz on this page has the full set, timed exam mode, and per-topic scoring.

1. Which of the following best describes Delta Lake?

Why: Delta Lake is an open-source storage layer (now Linux Foundation project) that sits on top of Parquet files and adds: ACID transactions, schema enforcement + evolution, time travel, MERGE/UPDATE/DELETE, and unified batch + streaming. It's the default table format on Databricks and the backbone of the Lakehouse architecture.

2. A query frequently filters a 1TB Delta table on the `customer_id` column and is slow due to reading many small files. Which combination of commands should you run?

Why: `OPTIMIZE` compacts small files into larger ones (~1GB by default). Adding `ZORDER BY (customer_id)` co-locates rows with similar customer_id values into the same files, so subsequent filters can use data skipping to prune files at the column statistics layer. VACUUM only deletes old files; ANALYZE collects stats (still useful, but doesn't fix small-file problem).

3. What is the default retention threshold for VACUUM on a Delta table, and why does Databricks enforce it?

Why: VACUUM's default and minimum safe retention is 7 days (168 hours). Running with a shorter retention risks deleting files that are still being read by concurrent queries or long-running streaming jobs, corrupting their reads. You can override with `spark.databricks.delta.retentionDurationCheck.enabled = false`, but this is strongly discouraged in production.

4. Which Databricks feature is designed for incrementally and efficiently processing new data files as they arrive in cloud object storage?

Why: Auto Loader (the `cloudFiles` format) is purpose-built for incremental, scalable file ingestion. It uses file-notification mode (SNS/SQS, EventGrid, PubSub) or optimized directory listing, supports schema inference/evolution, and handles billions of files cost-efficiently. COPY INTO works for smaller, idempotent batch loads. The basic file source doesn't scale to millions of files.

5. What is the three-level namespace structure used by Unity Catalog?

Why: Unity Catalog uses a three-level namespace: catalog → schema (database) → table/view/function. Catalogs are the top-level container (often one per environment/domain). This replaces the flat two-level (database.table) Hive metastore. Fully qualified name example: `prod.sales.orders`.

6. In Delta Live Tables, which clause enforces data quality rules on a streaming/materialized dataset?

Why: DLT uses `EXPECT` (expectations) to declare data-quality rules on a table. Actions on violation: `EXPECT (rule)` (allow + log), `EXPECT ... ON VIOLATION DROP ROW` (quarantine bad rows), or `EXPECT ... ON VIOLATION FAIL UPDATE` (stop the pipeline). Metrics are surfaced in the DLT UI. Regular SQL CHECK constraints exist on Delta tables but aren't DLT-native quality rules.

7. Which PySpark operation triggers a shuffle (wide transformation)?

Why: `groupBy().agg()` is a wide transformation — it shuffles data across the cluster so rows with the same key land on the same partition. `filter`, `select`, and `withColumn` are narrow (no shuffle — each output partition depends on one input partition). Shuffles are the most expensive part of most Spark jobs, so minimizing them is a core tuning strategy.

8. How do you define task-level dependencies within a Databricks Job (Workflow)?

Why: Databricks Jobs support multi-task workflows as a DAG. Each task declares upstream tasks via `depends_on` in the UI or YAML/JSON. Tasks can share a job cluster (cheaper) or use separate clusters. External orchestration (Airflow/dbt Cloud/ADF) is optional and typically used when the workflow spans beyond Databricks.

This preview is 8 of 100 questions. Use the quiz UI on this page to attempt the rest.

← Back to Home