Home / Practice tests / Data Analyst

Free · No credit card required

Databricks Data Analyst Associate Practice Test

Realistic practice questions with worked explanations — Databricks SQL, SQL Warehouses, AI/BI dashboards, Genie spaces, and data management with Unity Catalog.

45 questions on the real exam
90 min time limit
$200 per exam attempt

Exam blueprint

What's on the exam

The topic areas our question bank covers, mapped to the official exam guide.

Executing queries with Databricks SQL and SQL Warehouses

Query editor, warehouse sizing and auto-stop, query parameters, result caching.

Working with Dashboards and Visualizations

AI/BI dashboards, chart types, filters and parameters, scheduling and sharing.

Analyzing Queries

Joins, aggregations, window functions, CTEs, higher-order functions.

AI/BI Genie spaces

Curated datasets, instructions, benchmark questions, monitoring and improving Genie answers.

Managing Data

Unity Catalog objects, Delta tables, views, table properties.

Securing Data

Privileges, row filters and column masks, handling PII.

The Data Intelligence Platform

Workspace navigation, lakehouse concepts, Delta Lake fundamentals.

Data Modeling with Databricks SQL

Star schemas, primary and foreign keys, materialized views.

Importing Data

File upload, COPY INTO, ingestion options for analysts.

Straight from our question bank

Try 7 real practice questions

Every question comes with a worked explanation — expand the answer when you're ready.

1 Executing queries using Databricks SQL and Databricks SQL Warehouses

A data analyst opens a table result in a Databricks notebook and wants to automatically see summary statistics for all column types — including distributions, value counts, null percentages, and histograms — without writing any SQL. Which built-in Databricks feature provides this automatically?

  1. ARunning SELECT * FROM table LIMIT 100 — returns a sample of raw row data but provides no automatic summary statistics, distribution charts, or null percentage indicators for any column type
  2. BThe data profile feature in a notebook result cell — automatically computes and displays summary statistics (min, max, mean, standard deviation, null count) for numeric columns, value frequencies for string columns, and date range information for date columns, along with histograms per column, without requiring any SQL to be written
  3. CRunning DESCRIBE table_name — returns metadata including column names, data types, and catalog comments registered on the table, but does not compute or display runtime statistical distributions or data quality information for column values
  4. DRunning SHOW CREATE TABLE table_name — outputs the DDL statement that was used to define the table schema, storage format, and table properties, but contains no runtime statistical information about the data stored in the table
  5. ERunning EXPLAIN EXTENDED on a SELECT query — returns the Spark physical and logical plan with operator-level statistics estimates used by the query optimizer, but does not provide user-accessible per-column descriptive statistics or visualization histograms
Show answer & explanation

Correct answer: B

WHY B: The Databricks notebook data profile (accessible via the profile tab in a result cell) automatically computes and visualizes per-column summary statistics and distributions across all column types — numeric, string, and date — with no SQL required. WHY NOT A: SELECT * with LIMIT only returns raw rows; no statistics are computed. WHY NOT C: DESCRIBE returns schema metadata, not runtime statistics or distributions. WHY NOT D: SHOW CREATE TABLE returns DDL, which is purely structural with no data content. WHY NOT E: EXPLAIN EXTENDED returns an execution plan with optimizer estimates, not human-readable summary statistics.

2 Working with Dashboards and Visualizations in Databricks

A data analyst runs a Spark SQL query in a Databricks notebook using spark.sql() and assigns the result to a variable called df. Which built-in Databricks function renders an interactive results grid with the ability to add chart visualizations directly beneath the notebook cell?

  1. Aprint(df) — Python's built-in print function renders a truncated text table that can be converted to a chart using a right-click context menu available in the cell output area
  2. Bdisplay(df) — a Databricks-specific function that renders an interactive results grid below the cell, with a '+' tab to add chart types such as bar, line, or scatter
  3. Cdf.show() — calling this DataFrame method renders an HTML-formatted result set that includes a visualization toolbar for selecting chart types and column configurations
  4. Ddf.plot(kind='bar') — calling this method invokes the built-in Databricks chart engine, which prompts the user for X-axis and Y-axis column selections before rendering the chart
  5. Edf.render() — this standard Databricks notebook function transforms any Spark DataFrame into a rich, interactive HTML visualization widget with full chart configuration support
Show answer & explanation

Correct answer: B

WHY B: display() is the Databricks-specific function for rendering interactive result tables and visualizations in notebooks. After calling display(df), the output includes a '+' tab to add chart visualizations (bar, line, scatter, pie, etc.) directly in the notebook cell output area, with a chart configuration panel. WHY NOT A: print(df) converts the DataFrame to a plain string representation with no interactive features, chart conversion options, or context menus for visualization. WHY NOT C: df.show() outputs a plain text table to the console/standard output without an HTML visualization toolbar or chart capabilities. WHY NOT D: df.plot() is a pandas API method; Spark DataFrames do not natively have a .plot() method, and there is no Databricks chart engine invoked this way. WHY NOT E: There is no df.render() method in Databricks or PySpark; this is a non-existent function name.

3 Analyzing Queries

A data analyst's dashboard query is taking much longer than expected. She wants to visualize the directed acyclic graph (DAG) of query execution operators, identify the most time-consuming operator stages, and understand memory consumption at each step. Which Databricks tool provides this functionality?

  1. AThe Query History list — displays the list of past query runs with their status, duration, and user, but does not provide a DAG visualization or operator-level timing and memory breakdown for diagnosing performance bottlenecks
  2. BThe Query Profile — accessible from Query History, displays a DAG of operators with per-node metrics (time spent, rows processed, memory peak) and a Top operators panel that highlights the most expensive steps
  3. CThe Catalog Explorer — provides lineage graphs of data assets showing which upstream tables feed into a given table or view, but does not show query execution plans or operator-level performance metrics for SQL queries
  4. DEXPLAIN EXTENDED on the query — outputs the Spark optimizer's logical, analyzed, optimized, and physical plans as plain text, but does not provide runtime metrics, actual row counts, memory usage, or a visual DAG based on real execution data
  5. EThe DESCRIBE HISTORY command — returns a transaction log of all write operations performed on a Delta table with their timestamps and metadata, but does not analyze or diagnose the runtime performance of SQL SELECT queries
Show answer & explanation

Correct answer: B

WHY B: The Query Profile provides a DAG visualization of query execution operators with real runtime metrics (time spent, memory peak, rows) and a Top operators panel that highlights the most expensive operators, making it the primary tool for diagnosing SQL query performance in Databricks. WHY NOT A: Query History lists executions but does not show the DAG or operator-level breakdown. WHY NOT C: Catalog Explorer shows data lineage, not query execution performance. WHY NOT D: EXPLAIN EXTENDED shows estimated plans at compile time, not actual runtime metrics like memory usage or real row counts. WHY NOT E: DESCRIBE HISTORY shows table write history, not query execution diagnostics.

4 Developing, Sharing, and Maintaining AI/BI Genie spaces

A Genie space author wants to run a structured test to measure whether Genie correctly answers a predefined set of business questions. The author also wants to compare Genie's responses against expected SQL results for scoring. Which Genie feature is purpose-built for this use case?

  1. AThe Monitoring tab — it allows authors to filter all historical user questions by status and rating and export them as a batch evaluation report scored against the space's most recent instruction version
  2. BResponse feedback — collecting thumbs-up or thumbs-down ratings from business users on live production questions provides statistically reliable accuracy metrics for the space over time
  3. CInspect mode — enabling inspect mode on all test questions causes Genie to self-evaluate its SQL results by running subsidiary validation statements and reporting an accuracy score for each tested query
  4. DBenchmarks — authors define a set of test questions with optional expected SQL answers; when run, Genie's responses are scored against those expected results for accuracy without influencing Genie's instruction context
  5. EGeneral instructions text block — authors can include a numbered list of expected correct SQL outputs in the space's general instructions, which Databricks uses as an automated regression test suite each time the space is saved
Show answer & explanation

Correct answer: D

WHY D: Databricks documentation describes benchmarks as the purpose-built feature for structured evaluation. Authors create a collection of test questions, optionally providing an expected SQL answer for each. When the benchmark runs, Genie's responses are compared against the expected results and scored. Critically, benchmarks are used to EVALUATE the space — they are NOT added to Genie's context and do not influence how Genie generates future responses (unlike example SQL queries, which do). WHY NOT A: The Monitoring tab shows live production questions and user feedback for qualitative review; it does not perform automated comparison against expected SQL outputs or generate a structured accuracy score report. WHY NOT B: User feedback (thumbs up/down) provides qualitative signal for authors to identify problem areas; it is not the structured, SQL-comparison-based scoring mechanism described in the question. WHY NOT C: Inspect mode is a Beta feature that improves individual query accuracy by having Genie self-review its own SQL — it is not a batch evaluation tool for comparing responses against a pre-defined expected answer set. WHY NOT E: The general instructions text block is part of Genie's context used to generate responses; Databricks does not use it as a regression test suite, and including expected outputs there would actually instruct Genie to match them, not evaluate against them independently.

5 Managing Data

A data analyst is tasked with cleaning a Unity Catalog Delta table called bronze.sales.transactions. The table has the following data quality issues: (1) rows where transaction_amount (DOUBLE) is negative — these represent data entry errors and must be permanently removed, (2) rows where customer_id (STRING) is NULL — these must also be permanently removed, and (3) rows where country_code (STRING) contains values not in the approved list ('US', 'CA', 'MX', 'GB') — these must be updated to 'UNKNOWN' rather than deleted. Which SQL block CORRECTLY addresses all three requirements in a single transaction-efficient approach?

  1. AStep 1: TRUNCATE TABLE bronze.sales.transactions; to remove all rows. Step 2: Re-insert valid rows using INSERT INTO bronze.sales.transactions SELECT * FROM bronze.sales.transactions_backup WHERE transaction_amount >= 0 AND customer_id IS NOT NULL AND country_code IN ('US','CA','MX','GB'); This approach is preferred because Delta Lake does not support row-level DELETE with compound predicates — only full-table TRUNCATE followed by selective re-insert is guaranteed to avoid write conflicts on partitioned Delta tables registered in Unity Catalog.
  2. BCombine both deletion conditions into a single DELETE statement, and use a separate UPDATE for the country code correction: DELETE FROM bronze.sales.transactions WHERE transaction_amount < 0 OR customer_id IS NULL; followed by UPDATE bronze.sales.transactions SET country_code = 'UNKNOWN' WHERE country_code NOT IN ('US', 'CA', 'MX', 'GB'); This approach uses Delta Lake's native ACID DML to permanently remove invalid rows in one DELETE operation (combining both predicates with OR), then correct the invalid country codes with a targeted UPDATE — both operations commit independently as separate ACID transactions on the Delta table.
  3. CRow-level DELETE is not supported on DOUBLE columns in Databricks SQL because floating-point comparison is non-deterministic under ACID semantics; only integer and string column predicates are supported in DELETE WHERE clauses. The analyst must first cast transaction_amount to BIGINT with ALTER TABLE bronze.sales.transactions ALTER COLUMN transaction_amount TYPE BIGINT, then run the DELETE. The NOT IN predicate is also unsupported in Delta Lake UPDATE statements and must be rewritten as a LEFT ANTI JOIN subquery in a MERGE statement.
  4. DUse a single MERGE statement: MERGE INTO bronze.sales.transactions AS t USING (SELECT transaction_id FROM bronze.sales.transactions WHERE transaction_amount < 0 OR customer_id IS NULL) AS src ON t.transaction_id = src.transaction_id WHEN MATCHED THEN DELETE; followed by a separate UPDATE bronze.sales.transactions SET country_code = 'UNKNOWN' WHERE country_code NOT IN ('US','CA','MX','GB'); This is equivalent to option B but forces the entire operation into a single MERGE scan, which is always required when deleting rows from a Delta table that has more than 1 million rows — smaller tables can use plain DELETE.
  5. EAll three cleaning operations can be combined into a single MERGE statement where the source dataset contains three logical branches: one for rows to delete due to negative transaction_amount, one for rows to delete due to NULL customer_id, and one for rows requiring a country_code update. MERGE is the only DML statement capable of mixing DELETE and UPDATE actions against the same target table in a single pass, making it the most efficient approach. Plain DELETE for row removal followed by a separate UPDATE is not supported when both operations target the same Delta table within the same Databricks session — Databricks SQL enforces a 'one DML per session transaction' rule for Delta tables registered in Unity Catalog.
Show answer & explanation

Correct answer: B

WHY B is correct: Delta Lake fully supports ACID DELETE and UPDATE DML on tables registered in Unity Catalog. DELETE FROM bronze.sales.transactions WHERE transaction_amount < 0 OR customer_id IS NULL correctly removes all rows matching either invalid condition in a single atomic operation — the OR compound predicate is fully supported. UPDATE bronze.sales.transactions SET country_code = 'UNKNOWN' WHERE country_code NOT IN ('US', 'CA', 'MX', 'GB') correctly updates only the rows with invalid country codes to 'UNKNOWN'. Both statements commit as separate ACID transactions, maintaining full Delta Lake transaction log integrity. This is the cleanest, most readable, and correct approach for the given requirements. WHY NOT A: Delta Lake supports efficient row-level DELETE with any predicate expression — including compound predicates with AND/OR. Full-table TRUNCATE followed by backup re-insert is not recommended; it is more error-prone, requires a backup table to exist, copies all data, and touches far more data than a predicate-based DELETE. It is NOT a documented requirement or limitation for partitioned Unity Catalog Delta tables. WHY NOT C: Floating-point (DOUBLE) columns are fully supported in DELETE WHERE predicates in Databricks SQL and Delta Lake. Comparison operators (<, >, =) on DOUBLE columns are deterministic when evaluating stored values — the non-determinism concern applies to computed floating-point arithmetic, not simple inequality comparisons on stored data. NOT IN with a fixed list is fully supported in UPDATE WHERE clauses on Delta tables; no MERGE rewrite is required. WHY NOT D: While MERGE can effectively perform the deletion by matching on a source subquery, the claim that plain DELETE requires MERGE for tables with more than 1 million rows is entirely fabricated. Delta Lake's DELETE statement works for any table size — query planning and file selection are handled internally by the Delta protocol and there is no row-count threshold that forces MERGE usage. WHY NOT E: While MERGE can indeed mix DELETE and UPDATE in a single pass (a valid performance optimization), the claim that a plain DELETE followed by a separate UPDATE is not supported in the same session is false. Databricks SQL enforces no 'one DML per session transaction' rule. Multiple DML statements against the same Delta table in the same session are fully supported and each commits as an independent ACID transaction. The 'single MERGE pass' approach in option E is valid as an alternative, but the premise that it is the only option is incorrect.

6 Securing Data

A metastore admin grants the SELECT privilege on a catalog to a group of data analysts. According to Unity Catalog's inheritance model, which objects does this privilege automatically apply to?

  1. AOnly the catalog object itself; child schemas each require a separate GRANT SELECT statement before users can query their tables
  2. BThe catalog, plus its parent metastore, because privilege inheritance in Unity Catalog flows both downward to children and upward to the metastore
  3. CAll schemas that existed at the time the GRANT was executed, but not schemas or tables that are created after the GRANT statement runs
  4. DAll current and future schemas and nested objects within that catalog
  5. EOnly managed tables registered under the catalog, since external tables require separate GRANT statements executed directly on each external location
Show answer & explanation

Correct answer: D

WHY D: Unity Catalog's privilege inheritance model flows strictly downward. A GRANT on a catalog automatically applies to all current and future schemas contained within the catalog, and transitively to all objects (tables, views, volumes, functions) within those schemas. This eliminates the need to re-grant when new schemas or tables are added. WHY NOT A: Privilege inheritance in Unity Catalog means a GRANT on a catalog does cascade to child schemas and tables automatically — re-granting on each child schema is not required. WHY NOT B: Inheritance in Unity Catalog is unidirectional (downward only); a catalog-level GRANT does not propagate upward to the metastore, nor do metastore-level grants inherit downward to catalogs. WHY NOT C: The inheritance model covers both current and future child objects. Schemas and tables created after the original GRANT automatically inherit the privilege, unlike the Hive metastore model. WHY NOT E: UC privilege inheritance applies equally to managed and external tables; external tables registered in the catalog receive the same inherited privileges as managed tables — they do not require separate GRANTs.

7 Understanding of Databricks Data Intelligence Platform

A financial services company wants to enrich its internal customer transaction data with third-party macroeconomic indicators and pre-built ML models for risk scoring. A data architect recommends Databricks Marketplace to source these assets. Which statement MOST ACCURATELY describes the role and capabilities of Databricks Marketplace in this use case?

  1. ADatabricks Marketplace is a cloud cost optimization service where Databricks customers negotiate discounted compute pricing for high-volume analytical workloads. While it provides access to Databricks-certified SQL Warehouse configurations, it does not facilitate the sharing or acquisition of third-party datasets, ML models, or any external data products — those functions are handled outside of Databricks through separate data vendor contracts.
  2. BDatabricks Marketplace is a paid commercial app store exclusively for purchasing proprietary Databricks Runtime plugins, licensed cluster acceleration libraries, and custom serialization engines. Organizations procure Marketplace items entirely through their cloud provider's billing portal (AWS Marketplace, Azure Marketplace, or Google Cloud Marketplace), and any data-sharing between organizations is handled independently by Delta Sharing, which operates as a completely separate product from Databricks Marketplace.
  3. CDatabricks Marketplace is an open forum for exchanging data products, powered by the Delta Sharing protocol, where data providers list datasets, Databricks notebooks, Solution Accelerators, ML models, and MCP servers. Data consumers can browse the public Open Marketplace at marketplace.databricks.com without a Databricks account, request access to listings from within their Unity Catalog-enabled workspace, and — once access is granted — query shared datasets directly as Unity Catalog objects alongside their own internal data.
  4. DDatabricks Marketplace is a capability exclusive to Databricks Enterprise and Premium tier customers that enables internal teams within a single organization to securely exchange Delta tables across multiple workspaces located in different cloud regions. It uses Databricks' proprietary DataShare binary format and is intentionally not interoperable with external third-party providers, open data standards, or any non-Databricks cloud storage systems.
  5. EDatabricks Marketplace is a machine learning model hub — analogous to HuggingFace Hub — where data scientists and AI engineers download pre-trained neural network weights and deploy them directly to Databricks Model Serving endpoints. Its scope is limited entirely to AI model distribution for inference workloads; it does not support tabular datasets, reference data, or any non-model data products, and all models available in Marketplace are validated and certified by Databricks before listing.
Show answer & explanation

Correct answer: C

WHY C is correct: The Databricks documentation defines Marketplace as 'an open forum for exchanging data products' that uses Delta Sharing as its underlying sharing protocol. Marketplace supports multiple asset types: datasets (tabular data as Unity Catalog catalogs, and non-tabular data as volumes), Databricks notebooks, Solution Accelerators, ML models, and MCP servers. Critically, consumers can browse the Open Marketplace (marketplace.databricks.com) without any Databricks login or workspace, enabling broad discoverability. To request and install a data product, a consumer must have a Databricks workspace enabled for Unity Catalog. Once shared, datasets appear as read-only catalogs in the consumer's Unity Catalog metastore, enabling SQL queries against live third-party data alongside internal data — directly addressing the described use case of enriching internal customer data with external macroeconomic indicators and ML models. WHY NOT A: Databricks Marketplace is not a compute pricing or cost optimization tool. Its explicit purpose is enabling data and AI asset exchange between providers and consumers. Dismissing its data-sharing capability contradicts its core definition. WHY NOT B: Databricks Marketplace is not a paid app store for runtime plugins or libraries. It is free to use for browsing, and many data products are available at no cost. While some commercial listings exist, the platform is designed as an open exchange, not as an app store procured through cloud billing portals. Delta Sharing IS the underlying technology that powers Marketplace — they are not separate unrelated products. WHY NOT D: Databricks Marketplace is available to all Databricks workspace users (not exclusively Enterprise/Premium tier) and is explicitly designed for cross-organizational data sharing between external providers and consumers. It uses the open Delta Sharing protocol (not a proprietary binary format), which is interoperable with Power BI, pandas, Apache Spark outside Databricks, and other platforms. WHY NOT E: While ML models are one type of asset available in Marketplace, the platform is not limited to ML models. Datasets are actually the primary asset type listed. Description E also incorrectly implies Databricks validates and certifies all listed models, which is not the case — providers are responsible for the quality and accuracy of their listings.

Take the full practice test free →

Why it works

Practice tests beat re-reading the docs

Find your weak spots in 20 minutes instead of 20 hours.

Take a timed test

Full-length, under exam conditions — no signup needed to try.

See your breakdown

Score plus a topic-by-topic analysis of where you lost points.

Study what matters

Focus on your two or three weakest areas — every explanation teaches the concept.

Retake until ready

Consistently above 80%? You're ready to book the real exam.

FAQ

Frequently asked questions


Is this Databricks Data Analyst Associate practice test free?

Yes. You can take a full-length Databricks Data Analyst Associate practice test on TestLogicHub without paying or entering a credit card.

How many questions are on the real Databricks Data Analyst Associate exam?

The exam has 45 multiple-choice questions and a 90-minute time limit. It costs USD 200 per attempt and is proctored.

What score do I need to pass?

Databricks does not publish an exact cut score. A safe target is to score consistently above 80% on full-length practice tests before booking the real exam.

Are these questions like the real exam?

The questions are mapped to the official exam guide sections, written in the scenario style of the real exam, and every answer comes with a full explanation.

Does TestLogicHub cover other Databricks certifications?

Yes — TestLogicHub has practice tests for the Databricks Data Engineer Associate and Professional, Data Analyst, Machine Learning Associate, and Generative AI Engineer certifications.

Ready to find your weak spots?

Take the free Databricks Data Analyst Associate practice test — timed, weighted, and explained like the real thing.

Start now — it's free →