Free DP-600 practice test: 20 questions
Twenty questions across the three DP-600 skill areas, split by weight: five on maintaining a solution, ten on preparing data and five on semantic models. They are original scenario questions. Find the deciding constraint in each scenario before you look at the options, and give yourself about 35 minutes. The outline they follow applies from October 19, 2026 (see exam format).
Maintain a data analytics solution
Question 1. Sales managers query a warehouse with T-SQL. Each manager must see only the rows for their own region, and the filter must apply to every query without changing the queries. What should you implement?
- A. Column-level security on the region column
- B. A security policy with a predicate function on the region column
- C. A sensitivity label on the warehouse
- D. Dynamic data masking on the region column
Show answer
Answer: B
A row-level security policy with a predicate function filters rows transparently on every query. Column-level security hides columns, not rows. A sensitivity label classifies data but does not filter it. Dynamic data masking obscures values in a column and does not remove rows.
Want more questions like this? Full DP-600 practice tests →
Question 2. Support staff must be able to query a customer table, but the Email column should display as a masked value unless they hold a specific permission. They must still be able to run the queries. What should you use?
- A. Row-level security
- B. DENY SELECT on the Email column
- C. Dynamic data masking on the Email column
- D. Certified endorsement
Show answer
Answer: C
Dynamic data masking changes the displayed value for users without the unmask permission while still allowing the query. Denying SELECT on the column would make queries that include it fail. Row-level security removes rows, not column values. Endorsement signals trust and has no effect on what data is displayed.
Want more questions like this? Full DP-600 practice tests →
Question 3. Several developers work on the same semantic model in a Git-connected workspace. Each should be able to make changes without affecting the others until the changes are reviewed. What is the best practice?
- A. Each developer works in a feature branch and merges by pull request
- B. Everyone commits directly to the main branch
- C. Create a deployment rule for each developer
- D. Email a shared Desktop file between developers
Show answer
Answer: A
Working in separate feature branches isolates each developer’s changes, and a pull request provides review before merging. Everyone committing directly to the main branch removes isolation. Deployment rules change data sources between stages and are not a collaboration mechanism, and sharing one Desktop file by email defeats version control.
Want more questions like this? Full DP-600 practice tests →
Question 4. Before removing a column from a lakehouse table, you need to know which semantic models and reports depend on it. What should you use?
- A. A deployment rule
- B. A sensitivity label
- C. Promoted endorsement
- D. Impact analysis
Show answer
Answer: D
Impact analysis shows downstream items that depend on a lakehouse, warehouse, dataflow or semantic model, so you can see what would break. A deployment rule changes settings between stages. A sensitivity label classifies data, and endorsement signals trust, but neither lists dependencies.
Want more questions like this? Full DP-600 practice tests →
Question 5. Your team wants the report and the semantic model definition stored as readable text files so that changes can be compared and merged in Git. What should they save?
- A. A .pbix file
- B. A .pbids file
- C. A .pbip project
- D. A .pbit template
Show answer
Answer: C
A Power BI Desktop project (.pbip) saves the report and the model as a folder of text-based files that work well with source control. A .pbix is a single binary-style file that diffs poorly. A .pbit is a template without data, and a .pbids file only stores data source connection details.
Want more questions like this? Full DP-600 practice tests →
Prepare data
Question 6. An operational Azure SQL database must be replicated into Fabric so analysts can query near-real-time data in OneLake without building and scheduling copy jobs. What should you use?
- A. A pipeline copy activity scheduled hourly
- B. A Dataflow Gen2 refreshed nightly
- C. A semantic model in DirectQuery mode
- D. Mirroring
Show answer
Answer: D
Mirroring continuously replicates supported operational databases into OneLake as Delta data. A scheduled copy activity and a nightly dataflow create batch copies that need scheduling and lag behind. A semantic model is a modelling layer, not a replication mechanism.
Want more questions like this? Full DP-600 practice tests →
Question 7. Analysts connect to the SQL analytics endpoint of a lakehouse and need a reusable, cleaned join of two tables they can query with T-SQL. They have no right to change table data. What should you create?
- A. An UPDATE statement on the base tables
- B. A view in the SQL analytics endpoint
- C. A new eventhouse
- D. A KQL function
Show answer
Answer: B
A view in the SQL analytics endpoint stores the join logic and can be queried like a table without modifying data. UPDATE statements on tables are not supported through the endpoint. An eventhouse is a different store, and a KQL function belongs to KQL databases, not the lakehouse endpoint.
Want more questions like this? Full DP-600 practice tests →
Question 8. Business analysts with Power Query experience need to clean and reshape data from several sources and load the result to a lakehouse. They do not write code. Which tool is the best fit?
- A. Dataflow Gen2
- B. A Spark notebook
- C. A T-SQL stored procedure
- D. A KQL queryset
Show answer
Answer: A
Dataflow Gen2 provides the Power Query experience with a low-code interface and can load to a lakehouse. A notebook requires code, a stored procedure requires T-SQL in a warehouse, and a KQL queryset is used to query eventhouse data, not to build a cleaning flow.
Want more questions like this? Full DP-600 practice tests →
Question 9. Daily Parquet files land in a storage account. You must load them into a warehouse table with T-SQL as quickly as possible. Which statement should you use?
- A. CREATE VIEW
- B. ALTER TABLE
- C. COPY INTO
- D. EVALUATE
Show answer
Answer: C
COPY INTO is the T-SQL statement for high-throughput loading of files from storage into a warehouse table. CREATE VIEW defines a query, not a load. ALTER TABLE changes the structure, and a DAX EVALUATE statement queries semantic models.
Want more questions like this? Full DP-600 practice tests →
Question 10. In a T-SQL query, the Discount column contains nulls. Reports should show 0 instead of blank. Which expression is appropriate?
- A. CAST(Discount AS int)
- B. COALESCE(Discount, 0)
- C. SELECT DISTINCT Discount
- D. ROW_NUMBER() OVER (ORDER BY Discount)
Show answer
Answer: B
COALESCE returns the first non-null value, so COALESCE(Discount, 0) replaces nulls with zero. CAST changes data type but leaves nulls as nulls. DISTINCT removes duplicate rows, and ROW_NUMBER numbers rows and does not change values.
Want more questions like this? Full DP-600 practice tests →
Question 11. You query an eventhouse with KQL. Complete the query so it returns the number of events per device in the last hour: Events | where Time > ago(1h) | ______ count() by Device
- A. project
- B. take
- C. order by
- D. summarize
Show answer
Answer: D
The summarize operator aggregates rows, here counting by device. Project selects columns, take returns a number of arbitrary rows, and order by sorts rows. None of those three computes a count per group.
Want more questions like this? Full DP-600 practice tests →
Question 12. You are designing a star schema for sales analysis. What should the fact table contain?
- A. Numeric measures and foreign keys to the dimensions
- B. All descriptive customer and product attributes
- C. Only the primary keys of the dimensions
- D. A copy of every dimension table
Show answer
Answer: A
A fact table holds numeric measures of the business event plus foreign keys to the dimension tables. Descriptive attributes such as customer name and product category belong in dimensions. Storing dimension hierarchies in the fact table denormalises it badly and bloats it, and fact tables are not meant to hold only keys with no measures.
Want more questions like this? Full DP-600 practice tests →
Question 13. A business user with no SQL skills must filter, group and join tables in a warehouse and see the results. Which tool is the best fit?
- A. A stored procedure
- B. A KQL function
- C. The visual query editor
- D. A calculation group
Show answer
Answer: C
The visual query editor lets users build a query by selecting steps and generates the SQL for a warehouse. A stored procedure and a KQL function require code. A calculation group is a semantic model feature and does not query warehouse tables.
Want more questions like this? Full DP-600 practice tests →
Question 14. Engineers want to discover available streaming sources and events in the organisation from one place in Fabric. Where should they look?
- A. Deployment pipelines
- B. The Real-Time hub
- C. The XMLA endpoint
- D. A Power BI template file
Show answer
Answer: B
The Real-Time hub is the central place to discover and connect to streaming data and events. The OneLake catalog lists items such as lakehouses and warehouses, deployment pipelines manage releases, and the XMLA endpoint connects external tools to semantic models.
Want more questions like this? Full DP-600 practice tests →
Question 15. You need a list of customers who have never placed an order, using T-SQL on Customers and Orders tables. Which approach is correct?
- A. An inner join of Customers and Orders
- B. A cross join of Customers and Orders
- C. A UNION of Customers and Orders
- D. A left join from Customers to Orders, keeping rows where the order key is null
Show answer
Answer: D
A left join from Customers to Orders with a filter for rows where the order key is null returns only customers with no matching order. An inner join returns only customers with orders, a cross join pairs every customer with every order, and UNION combines result sets rather than finding missing matches.
Want more questions like this? Full DP-600 practice tests →
Implement and manage semantic models
Question 16. A very large fact table must stay current through DirectQuery, while small dimension tables should be fast and filter the fact table. Which model design fits?
- A. Import mode for every table
- B. DirectQuery for the dimensions and Import for the fact table
- C. A composite model with a DirectQuery fact table and Dual dimensions
- D. No relationships between the tables
Show answer
Answer: C
A composite model can keep the fact table in DirectQuery and set the dimensions to Dual, so they work efficiently with both Import and DirectQuery tables. Making everything Import loses the freshness requirement. Making the dimensions DirectQuery-only slows filtering, and removing relationships breaks filtering altogether.
Want more questions like this? Full DP-600 practice tests →
Question 17. You need a measure that compares each month with the previous month's value in the same visual, using the row order of the visual. Which DAX feature is designed for this?
- A. A windowing function such as OFFSET
- B. A field parameter
- C. A calculation group
- D. A dynamic format string
Show answer
Answer: A
Windowing functions such as OFFSET and WINDOW access rows relative to the current row in an ordered table, which is what a previous-row comparison needs. A field parameter switches fields in a visual, a calculation group applies a pattern to measures, and a dynamic format string changes only how a value looks.
Want more questions like this? Full DP-600 practice tests →
Question 18. One measure shows revenue. Users pick either thousands or millions from a slicer, and the measure should display as 1.2K or 1.2M accordingly, without changing its value. What should you use?
- A. A calculated column
- B. A bridge table
- C. A second copy of the measure for each unit
- D. A dynamic format string
Show answer
Answer: D
A dynamic format string changes how the same measure value is displayed based on context, so the value stays the same and only the display differs. A calculated column fixes one format per row, a bridge table solves relationships, and a second copy of the measure duplicates logic.
Want more questions like this? Full DP-600 practice tests →
Question 19. A Direct Lake on SQL analytics endpoint model unexpectedly runs a query in DirectQuery mode. One table in the model is actually a view in the endpoint. What explains this?
- A. The model lacks a bridge table
- B. Views cannot be read directly, so the query falls back to DirectQuery
- C. The XMLA endpoint is read only
- D. Incremental refresh is not configured
Show answer
Answer: B
Direct Lake reads Delta tables directly, so a query that involves a view cannot be served that way and falls back to DirectQuery when fallback is enabled. A bridge table, an XMLA setting or an incremental refresh policy do not cause a switch of query mode.
Want more questions like this? Full DP-600 practice tests →
Question 20. A large Import model is close to its memory limit. Several wide text columns with millions of unique values are never used in reports. What is the best first step?
- A. Remove the unused high-cardinality columns
- B. Make all relationships bidirectional
- C. Set every table to Dual
- D. Add a calculation group
Show answer
Answer: A
Removing unused high-cardinality columns reduces memory use and often speeds refresh and queries. Making relationships bidirectional adds query cost, switching every table to Dual does not shrink an Import model, and adding a calculation group does not reduce column storage.
Want more questions like this? Full DP-600 practice tests →
Score yourself by domain. Below 70% in one area, reread the matching page: maintain, prepare data or semantic models. Then try the study plan week for that area again.