Microsoft DP-600 Practice Exam

Microsoft Fabric Analytics Engineer DP-600

The Microsoft DP-600 exam, Implementing Analytics Solutions Using Microsoft Fabric, earns the Fabric Analytics Engineer Associate certification. It validates the skills to design, create and manage analytical assets such as lakehouses, warehouses and semantic models, and to query data with SQL, KQL and DAX. It is weighted across three domains: maintain a data analytics solution at 25 to 30 percent, prepare data at 45 to 50 percent, and implement and manage semantic models at 25 to 30 percent. This practice exam mirrors that scope with single-answer and multiple-answer questions and drag-and-drop items.

Question bank updated : questions, answers, explanations and chapters.

Certification Overview

  • Exam name: DP-600
  • Vendor: Microsoft
  • Exam code: DP-600
  • Duration: 100 minutes
  • Total questions: about 50
  • Official passing score: 700 on a scale of 1 to 1,000 (source)
  • Our practice exam pass mark: 70%

Who Should Take This Exam?

Fabric Analytics Engineer, Power BI Developer, BI Developer, Data Analyst, Analytics Engineer, Data Engineer, Data Warehouse Developer, Power BI Administrator

Prerequisites

No formal prerequisite. Microsoft expects hands-on experience with Microsoft Fabric, Power BI semantic models and querying data with SQL, KQL and DAX.

Topics Covered

  • Maintain a data analytics solution
  • Prepare data
  • Implement and manage semantic models

Question Types

  • Multiple Choice (Single Answer)
  • Multiple Choice (Multiple Answers)
  • Drag and Drop

DP-600 Practice Questions

Our question bank contains 648+ practice questions for this certification. Sample questions from each exam chapter. Expand a question to see the answer choices. With a subscription, you get unlimited practice exams with randomised questions from our full question bank.

Maintain a data analytics solution

A user holds only the Viewer role in a Fabric workspace that contains a warehouse. Which action can that user perform on the warehouse?
  • A. Add a colleague as another Viewer
  • B. Run SELECT queries on its tables Correct answer
  • C. Rename the warehouse in the workspace
  • D. Create a table by running CREATE TABLE

Option B is correct because the Viewer role grants read access to warehouse data, so the user can run SELECT queries through the SQL endpoint. Viewers cannot manage workspace access (A), rename or otherwise modify items (C), or run DDL such as CREATE TABLE (D); those need Contributor or higher.

Finance, sales and HR each own many Fabric workspaces, and the tenant wants each business area's workspaces grouped under delegated owners. What should be created?
  • A. A deployment pipeline for each business area
  • B. A separate capacity for each business area
  • C. A Fabric domain for each business area Correct answer
  • D. A managed private endpoint for each area

Option C is correct because a Fabric domain groups workspaces by business area and lets domain admins and contributors delegate ownership and governance of those workspaces. Deployment pipelines (A) promote content between stages, a capacity (B) provides compute, and a managed private endpoint (D) secures network access; none of them group workspaces by owner.

Before dropping a column from a semantic model, an engineer needs to see which reports and other items in different workspaces depend on that model. Which feature shows this?
  • A. Query insights in the Fabric warehouse
  • B. Performance Analyzer in Power BI Desktop
  • C. Impact analysis in the lineage view Correct answer
  • D. The Monitoring hub

Option C is correct because impact analysis in the lineage view lists the reports and other items, including those in other workspaces, that depend on a semantic model. Query insights (A) reports warehouse query activity, Performance Analyzer (B) times report visuals in Desktop, and the Monitoring hub (D) tracks item activity runs, not dependencies.

An engineer wants to edit the measures of a published semantic model by using Tabular Editor. To which connection point does the tool connect?
  • A. The XMLA endpoint of the workspace Correct answer
  • B. The Power BI REST API datasets endpoint
  • C. The SQL analytics endpoint of the lakehouse
  • D. The OneLake ABFS path of the model

Option A is correct because Tabular Editor and other external tools connect to a published semantic model through the workspace's XMLA endpoint. The REST API (B) is not a Tabular object model connection, and the lakehouse SQL analytics endpoint (C) and OneLake path (D) expose lakehouse data, not the model's metadata.

An analyst has no role in a Fabric workspace and must query one lakehouse's tables with T-SQL, without reaching its files or any other item. What should the lakehouse owner do?
  • A. Share the lakehouse with Apache Spark read access
  • B. Share the lakehouse with SQL endpoint read access only Correct answer
  • C. Grant Build on the lakehouse's default semantic model
  • D. Add the analyst as a workspace Viewer

Option B is correct because sharing the lakehouse with only the SQL endpoint read permission lets the analyst query its tables with T-SQL without access to the files or other items. Spark read access (A) targets files and notebooks, Build on the default semantic model (C) does not give T-SQL access, and a workspace Viewer role (D) grants access to every item in the workspace.

Each salesperson must see only their own rows when querying a Fabric warehouse table with T-SQL. Which two objects implement this? (Choose two.)
  • A. A scalar function called from a CHECK constraint
  • B. A database role that has been granted SELECT on the table
  • C. A DAX table filter role on the default semantic model
  • D. A security policy with a filter predicate on the table Correct answer
  • E. An inline table-valued function that returns a row for each permitted row Correct answer

Options D and E are correct because row-level security in a Fabric warehouse is built from an inline table-valued function that returns a row only when the predicate allows it, plus a security policy that applies that function as a filter predicate on the table. A CHECK constraint does not filter reads, a database role with SELECT only grants access to the whole table, and a DAX role on the default semantic model does not affect T-SQL queries.

The Email column of a Fabric warehouse table is masked with the email() function. Which two statements about this mask are correct? (Choose two.)
  • A. The Delta files behind the table store the values in masked form
  • B. The stored values in the table stay unchanged Correct answer
  • C. Only members of the db_datareader role see masked values
  • D. Users without the UNMASK permission see the masked form in query results Correct answer
  • E. A WHERE clause on the column can no longer reveal the real values

Options B and D are correct because dynamic data masking changes only what query results show: the stored values are untouched, and users who lack UNMASK (and are not Admin, Member or Contributor in the workspace) see the masked form such as aXXX@XXXX.com. Option A is wrong because the stored data is not masked. Option C is wrong because masking is not tied to db_datareader membership. Option E is wrong because a WHERE clause on a masked column can still be used to infer the real values.

Prepare data

An analytics engineer must keep image files and Delta tables in one item and process both with Spark notebooks. Which Fabric item fits?
  • A. Mirrored database
  • B. Lakehouse Correct answer
  • C. Fabric Data Warehouse
  • D. Eventhouse

Option B is correct because a lakehouse stores unstructured and semi-structured files in its Files area and Delta tables in its Tables area within a single item, and Spark notebooks work on both. A mirrored database and an Eventhouse are not designed to hold arbitrary image files, and a warehouse is a T-SQL engine over tables rather than a file store.

A OneLake shortcut was created in the Tables section of a lakehouse and points to a folder of CSV files in ADLS Gen2. The folder does not appear as a table. Which action resolves this?
  • A. Enable V-Order on the shortcut so it registers as a table
  • B. Create it under Files and load the CSV to a Delta table Correct answer
  • C. Rerun the metadata sync on the SQL analytics endpoint
  • D. Grant Contributor on the ADLS Gen2 storage account

Option B is correct because shortcuts in the Tables section are only recognized as tables when the target holds Delta data, so a folder of raw CSV files is never registered. Creating the shortcut under Files and loading the CSV into a Delta table produces a real table. V-Order (A), a metadata sync (C) and storage permissions (D) do not convert CSV files into Delta tables.

Orders from Azure SQL Database are mirrored into Fabric. A Spark notebook in an existing lakehouse must read them next to lakehouse tables without replicating the data again. What should the engineer do?
  • A. Create a OneLake shortcut in the lakehouse to the mirrored tables Correct answer
  • B. Connect the notebook to Azure SQL Database over JDBC
  • C. Schedule a Dataflow Gen2 that loads the mirrored tables into the lakehouse
  • D. Run INSERT INTO through the mirrored database's SQL analytics endpoint

Option A is correct because a OneLake shortcut in the lakehouse points at the mirrored Delta tables in place, so the notebook reads them next to lakehouse tables with no second copy. JDBC to the source and a scheduled Dataflow Gen2 both re-read or replicate the data, and a mirrored database's SQL analytics endpoint is read-only, so INSERT INTO is not an option.

Which Fabric experience lets a user browse items across workspaces and filter them by item type, owner and endorsement to find data to connect to?
  • A. Deployment pipelines
  • B. Workspace lineage view
  • C. Real-Time hub
  • D. OneLake catalog Correct answer

Option D is correct because the OneLake catalog lets users browse and discover items across workspaces and filter them by item type, owner and endorsement. Deployment pipelines promote content between stages, the lineage view shows dependencies inside one workspace, and the Real-Time hub is for discovering streaming data.

Each night a team must copy about 2 TB of tables from an on-premises SQL Server into a Fabric warehouse through an on-premises data gateway. No transformation is needed and the load window is short. Which tool fits?
  • A. Spark notebook reading over JDBC
  • B. Data pipeline with a Copy activity Correct answer
  • C. Eventstream with a SQL Server source
  • D. Dataflow Gen2 loading to the warehouse

Option B is correct because a data pipeline Copy activity is built for high-volume, no-transformation bulk copies and can reach on-premises SQL Server through an on-premises data gateway. A Spark notebook over JDBC and Dataflow Gen2 add overhead for a plain copy, and an Eventstream is for streaming events, not nightly batch loads.

Two Dataflow Gen2 queries, Sales2024 and Sales2025, have identical columns. Which two actions produce one table that holds the rows of both? (Choose two.)
  • A. Merge the queries with a left outer join on Date
  • B. Table.Combine({Sales2024, Sales2025}) Correct answer
  • C. Append the two queries into a new query Correct answer
  • D. Pivot the Date column with a Sum aggregation
  • E. Table.NestedJoin(Sales2024, {"Date"}, Sales2025, {"Date"}, "Rows")

Options B and C are correct because appending (the Append queries step in the Dataflow Gen2 editor, or Table.Combine in M) stacks the rows of two tables that have identical columns into one table. Merging with a left outer join or Table.NestedJoin matches rows side by side and adds columns instead of rows, and pivoting the Date column reshapes the data without combining the two sources.

Rows in dbo.StgCustomer, a Fabric warehouse staging table with columns CustomerID, Name and City, are sometimes exact duplicates of each other. Which two queries return every distinct row once? (Choose two.)
  • A. SELECT CustomerID, Name, City FROM dbo.StgCustomer GROUP BY CustomerID, Name, City Correct answer
  • B. SELECT * FROM dbo.StgCustomer WHERE CustomerID IS NOT NULL
  • C. SELECT TOP 1 * FROM dbo.StgCustomer ORDER BY CustomerID
  • D. SELECT DISTINCT CustomerID, Name, City FROM dbo.StgCustomer Correct answer
  • E. SELECT CustomerID, COUNT(*) FROM dbo.StgCustomer GROUP BY CustomerID

Options A and D are correct because SELECT DISTINCT over all three columns, and a GROUP BY on all three columns with no aggregates, both collapse exact duplicate rows into one. Filtering out null CustomerID values removes no duplicates, TOP 1 returns a single row, and grouping by CustomerID alone only counts rows per customer.

Implement and manage semantic models

A report author adds a field parameter in Power BI Desktop so that readers can switch the measure shown in a bar chart. Which two statements describe what Desktop creates? (Choose two.)
  • A. A one-to-many relationship links the parameter table to the fact table
  • B. A calculated table is added to the model Correct answer
  • C. A calculation group with one calculation item per field is added
  • D. Each field is a row with a display name, a NAMEOF reference and a sort order Correct answer
  • E. A hidden measure that uses SWITCH is generated for each field in the parameter

Options B and D are correct because a field parameter is created as a calculated table whose rows each hold a display name, a NAMEOF reference to the field and a sort order. Desktop does not create a relationship to the fact table (A), a calculation group (C), or a generated SWITCH measure (E); the visual simply binds to the parameter's fields.

A table visual lists products sorted by [Sales] from highest to lowest, and a Region slicer limits the rows shown. A measure must show, on each row, the sales of the product listed on the row directly above it. Which measure does this?
  • A. CALCULATE([Sales], TOPN(1, ALLSELECTED(Product[Name]), [Sales], DESC))
  • B. CALCULATE([Sales], OFFSET(1, ALLSELECTED(Product[Name]), ORDERBY([Sales], DESC)))
  • C. CALCULATE([Sales], OFFSET(-1, ALLSELECTED(Product[Name]), ORDERBY([Sales], DESC))) Correct answer
  • D. CALCULATE([Sales], OFFSET(-1, ALLSELECTED(Product[Name]), ORDERBY(Product[Name])))

Option C is correct because OFFSET(-1, ..., ORDERBY([Sales], DESC)) returns the row one position before the current one in the sales-descending order, which is the product listed directly above. ALLSELECTED keeps the order within the Region slicer's filter. Option B looks one row below, option D orders by name so the 'row above' is alphabetical, and option A's TOPN always returns the single top product.

Products sell irregularly, so a product can go several months without a sale. A matrix shows Product[Name] on rows and Date[MonthStart] on columns, and a measure must average [Sales] over the product's current month and the two earlier months in which that product had sales. Which design meets the requirement?
  • A. CALCULATE([Sales], OFFSET(-2, ALLSELECTED(Date[MonthStart]), ORDERBY(Date[MonthStart])))
  • B. AVERAGEX over WINDOW(-2, REL, 0, REL) on product-month rows that have sales, partitioned by product Correct answer
  • C. CALCULATE([Sales], DATESINPERIOD(Date[Date], MAX(Date[Date]), -3, MONTH)) divided by 3
  • D. AVERAGEX over WINDOW(-2, REL, 0, REL) on every month in the Date table, with no partition by product

Option B is correct because WINDOW(-2, REL, 0, REL) over only the product-month rows that have sales, partitioned by product, spans the current and two previous months with sales for that product, and AVERAGEX averages them. Options A and C use calendar months, so gaps without sales break the requirement, and option D includes every month and ignores the product partition.

A semantic model reads a lakehouse table through Direct Lake on SQL analytics endpoint, and the table must stay in Direct Lake mode. Report authors need a Margin column, Revenue minus Cost, on that table to use as a slicer field. How should the modeler add it?
  • A. Compute the column in the Delta table and refresh the model Correct answer
  • B. Add a Power Query step to the table in the semantic model
  • C. Add a DAX calculated column to the table in model view
  • D. Change the table to Dual storage mode and add a calculated column

Option A is correct because Direct Lake tables on the SQL analytics endpoint do not support DAX calculated columns or Power Query steps, so the column has to be computed upstream in the Delta table and picked up on refresh. Options B and C are not supported on a Direct Lake on SQL analytics endpoint table. Option D does not fit because the table must stay in Direct Lake mode, and Dual is a different storage mode that cannot be mixed with Direct Lake tables in the same Direct Lake on SQL model.

A card must show the highest monthly sales among the months in the years chosen in a Year slicer. The Date table has a YearMonth column, and [Sales] already totals Sales[Amount]. Which measure does this?
  • A. MAX(Sales[Amount])
  • B. MAXX(VALUES(Sales[OrderDate]), [Sales])
  • C. MAXX(ALL('Date'[YearMonth]), [Sales])
  • D. MAXX(VALUES('Date'[YearMonth]), [Sales]) Correct answer

Option D is correct because VALUES('Date'[YearMonth]) returns only the months visible under the Year slicer, and MAXX evaluates [Sales] for each month and returns the highest. Option C uses ALL, which ignores the slicer, option B iterates order dates rather than months, and option A returns the largest single transaction amount.

Report authors build visuals by dragging the Quantity column so Power BI sums it implicitly. After the modeler adds a Time Calc calculation group, selecting its YTD item leaves those visuals unchanged. What makes the item apply?
  • A. Use an explicit measure for Quantity in those visuals Correct answer
  • B. Mark the Date table again as the model's date table
  • C. Raise the precedence value of Time Calc above the other groups
  • D. Set the Summarize by property of Quantity to Sum

Option A is correct because calculation items apply only to explicit measures; a column dragged into a visual and summed implicitly is not changed by the calculation group. Creating an explicit measure for Quantity lets the YTD item apply. Marking the date table, raising precedence, or changing Summarize by does not make an implicit measure respond to a calculation item.

Free Study Guide

Read the free Microsoft DP-600 study guide: every exam topic explained in plain English, with diagrams, exam tips and the mistakes to avoid.

More Microsoft Practice Exams

All Microsoft practice exams →

Practise with realistic mock exams to prepare for your Microsoft certification.