Databricks Data Engineer Professional · 10% practice allocation

Databricks Data Engineer Professional: Monitoring and Alerting Practice Questions

5 free sample questions from the Monitoring and Alerting domain, with answers and explanations. The full Data Engineer Professional bank has 311 questions across 10 domains. Questions are scenario-based and written from the official Databricks exam guide.

1.

An on-call data engineer receives a PagerDuty alert that a production Delta Live Tables pipeline has entered ERROR state. They navigate to the DLT UI and query the event log. Which TWO of the following event_type values should they filter on FIRST to identify the root cause of the pipeline failure? (Select TWO)

  • A. cluster_info
  • B. dataset_definition
  • C. user_action
  • D. error✓ Correct
  • E. pipeline_failure✓ Correct
  • F. flow_progress
Explanation

pipeline_failure and error are the two event types most directly associated with a pipeline entering ERROR state. pipeline_failure is emitted when the pipeline terminates abnormally, and error events contain detailed exception messages and stack traces for individual failures within the pipeline. flow_progress events track the execution state of individual flows (e.g., RUNNING, COMPLETED) but do not themselves contain failure details. dataset_definition events record schema and dataset metadata at pipeline startup and are unrelated to failures. cluster_info events record cluster configuration and are useful for infrastructure debugging but not for identifying pipeline logic errors. user_action events record manual user interventions (e.g., start/stop) and are not indicative of root cause.

2.

A data engineer is examining the Spark UI Executors tab and sees that total GC time for one executor is 38% of total task time, while all other executors show GC time below 5%. The problematic executor has the same hardware configuration as the others. Which THREE actions are MOST appropriate to investigate and remediate this issue? (Select THREE)

  • A. Review executor task metrics in the Spark UI to determine if the affected executor is processing significantly more data than peers (data skew)✓ Correct
  • B. Replace the executor's instance type with a memory-optimized VM to provide more JVM heap per core
  • C. Restart the Spark application with a higher spark.executor.memoryOverhead to allocate more off-heap memory
  • D. Increase the number of shuffle partitions to reduce per-partition data size and lower per-executor memory pressure✓ Correct
  • E. Examine whether that executor is consistently assigned tasks involving large broadcast variables or cached datasets that exceed its JVM heap✓ Correct
  • F. Reduce the number of executor cores on that node to lower parallel task GC pressure
Explanation

High GC time on a single executor (while peers are healthy) almost always points to that executor handling more data than others, either due to data skew or due to being pinned to large cached/broadcast data. (D) Increasing shuffle partitions reduces the data volume per partition, which can reduce per-executor heap pressure if skew is involved. (E) Checking whether the executor holds oversized broadcast or cached data identifies a common root cause. (A) Reviewing task metrics for data volume imbalance directly confirms or rules out skew. Option C (spark.executor.memoryOverhead) allocates off-heap/container memory for Python processes and native memory—it does not increase JVM heap and would not help GC pressure in the JVM. Option F (reducing cores) would lower throughput without addressing the root cause. Option B (replacing the instance type) may be a last resort but is premature before diagnosis; also, since only one executor is affected with identical hardware, it is not a hardware limitation.

3.

A Databricks SQL dashboard query that previously executed in under 5 seconds is now taking over 3 minutes. The underlying Delta table has not changed schema. Which TWO of the following steps in Databricks SQL Query History would BEST help diagnose the root cause?

  • A. Open the Databricks billing API to check whether DBU consumption per query has increased, indicating a compute scaling issue.
  • B. Check the 'Duration' and 'Rows Read' columns in query history to compare current execution metrics against historical baselines.✓ Correct
  • C. Review the query profile to inspect the physical plan and identify any new full-table scans or skipped file statistics.✓ Correct
  • D. Inspect the Delta table's DESCRIBE HISTORY output to check whether OPTIMIZE or ZORDER operations changed file layout recently.
  • E. Examine the cluster event log for the SQL warehouse to determine whether a driver OutOfMemoryError occurred during the query.
Explanation

The Query Profile (option C) in Databricks SQL provides a visual physical plan with node-level metrics, making it straightforward to identify regressions like new full scans, missing file pruning, or skew — all common causes of sudden slowdowns. Query History duration and rows-read metrics (option B) let engineers compare the current execution against historical baselines to confirm and quantify the regression. Cluster event logs (option E) are useful for infrastructure-level events but are not exposed directly in Databricks SQL Query History; also, SQL warehouse drivers rarely throw OOM errors from a single query slowdown. DESCRIBE HISTORY (option D) may reveal file-layout changes but is not part of Query History tooling and is a secondary investigation step, not a first-line diagnostic inside the SQL interface. The billing API (option A) measures DBU cost, not query-level performance metrics, and cannot pinpoint the cause of a slow query.

4.

A data engineer wants to audit how a Delta table named transactions has evolved over the past month, including schema changes, data overwrites, and optimization operations. Which command provides the most complete view of all operations performed on this table?

  • A. DESCRIBE HISTORY transactions✓ Correct
  • B. SELECT * FROM delta./path/to/transactions/_delta_log LIMIT 100
  • C. SHOW TBLPROPERTIES transactions
  • D. SELECT * FROM transactions.event_log WHERE timestamp > current_date() - INTERVAL 30 DAYS
Explanation

DESCRIBE HISTORY is the correct command. It returns a full audit trail of all operations on a Delta table—including INSERT, UPDATE, DELETE, MERGE, OPTIMIZE, schema changes, and more—along with timestamps, user, operation parameters, and metrics. Option D is incorrect because transactions.event_log is not a valid Delta Lake construct; event logs apply to DLT pipelines, not standalone Delta tables. Option C (SHOW TBLPROPERTIES) only displays key-value table properties, not operation history. Option B reads raw JSON transaction log files directly, which is possible but not reliable or complete for a 30-day audit window, and is not a supported or recommended approach.

5.

A data engineer is reviewing executor metrics in the Spark UI Executors tab and notices that one executor has a significantly higher 'GC Time' (garbage collection time) as a percentage of total task time compared to all other executors. Which THREE of the following actions are appropriate responses to this observation?

  • A. Investigate whether the workload is creating excessive object churn by caching intermediate DataFrames or switching to off-heap storage with spark.memory.offHeap.enabled.✓ Correct
  • B. Restart only the affected executor using the 'Kill Executor' button in the Spark UI Executors tab to clear its heap and resolve the GC issue permanently.
  • C. Switch from the default G1GC garbage collector to ZGC or CMS by setting spark.executor.extraJavaOptions, which may reduce GC pause duration.✓ Correct
  • D. Increase the number of executor cores (spark.executor.cores) on the affected executor to allow GC threads to run in parallel with task threads.
  • E. Reduce the number of partitions in the stage feeding the high-GC executor so each partition holds less data and creates fewer objects.
  • F. Increase executor memory (spark.executor.memory) to reduce GC pressure by giving the JVM more heap space before triggering collections.✓ Correct
Explanation

High GC time on an executor indicates JVM heap pressure. The correct mitigations are: (F) Increasing executor memory gives the JVM more headroom before GC kicks in, directly reducing GC frequency. (C) Tuning the GC algorithm (e.g., switching to ZGC) can reduce pause times and improve throughput, which is a standard JVM performance technique. (A) Reducing object churn — by caching DataFrames to avoid recomputation or using off-heap storage to keep data outside the JVM heap — directly reduces the number of objects the GC must manage. Option D is incorrect: increasing executor cores does not help with GC; GC threads are managed by the JVM independently, and adding task threads would actually compete for CPU with GC, potentially worsening latency. Option B is incorrect: killing and restarting an executor temporarily clears the heap but does not address the root cause; the GC problem will recur immediately. Option E is partially logical but misguided — reducing partitions would make each partition larger, not smaller, potentially increasing per-task object creation; the correct direction would be to increase partitions to reduce per-partition data.

Test yourself across every Data Engineer Professional domain

The free Data Engineer Professional practice test mixes about 20 questions weighted like the exam. The full 311-question bank adds instant grading, flashcards and a timed mock exam.

Study this domain

Monitoring and Alerting study guide (Data Engineer Professional) →

Other Data Engineer Professional domains

← All Databricks Data Engineer Professional study resources