Microsoft DP-600 Practice Exams
Last updated on Oct 01,2026- Exam Code: DP-600
- Exam Name: Implementing Analytics Solutions Using Microsoft Fabric
- Certification Provider: Microsoft
- Latest update: Oct 01,2026
Your organization begins buying from a new Apple Authorized Reseller.
What information do you give the reseller to ensure that your devices appear in Apple Business Manager or Apple School Manager?
- A . D-U-N-S Number
- B . Organization ID
- C . Reseller Number
- D . Purchase Order Number
B
Explanation:
The Organization ID links purchases. The Apple Business Manager User Guide states, "Provide your Organization ID to the reseller to ensure devices are assigned to your Apple Business Manager account."
Reference: Apple Business Manager User Guide, "Purchasing Devices" section.
Apple Platform Deployment Guide, "Device Assignment" section.
HOTSPOT
You have a Fabric workspace named Workspace1 and an Azure Data Lake Storage Gen2 account named storage1. Workspace1 contains a lakehouse named Lakehouse1.
You need to create a shortcut to storage1 in Lakehouse1.
Which protocol and endpoint should you specify? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Explanation:
Box 1: abfss
Access Azure storage
Once you have properly configured credentials to access your Azure storage container, you can interact with resources in the storage account using URIs. Databricks recommends using the abfss driver for greater security.
spark.read.load("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to- data>")
dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
CREATE TABLE <database-name>.<table-name>;
COPY INTO <database-name>.<table-name>
FROM ‘abfss://[email protected]/path/to/folder’
FILEFORMAT = CSV
COPY_OPTIONS (‘mergeSchema’ = ‘true’);
Box 2: dfs
dfs is used for the endpoint:
dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
Reference: https://docs.databricks.com/en/connect/storage/azure-storage.html
HOTSPOT
You have a Fabric workspace named Workspace1 and an Azure Data Lake Storage Gen2 account named storage1. Workspace1 contains a lakehouse named Lakehouse1.
You need to create a shortcut to storage1 in Lakehouse1.
Which protocol and endpoint should you specify? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Explanation:
Box 1: abfss
Access Azure storage
Once you have properly configured credentials to access your Azure storage container, you can interact with resources in the storage account using URIs. Databricks recommends using the abfss driver for greater security.
spark.read.load("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to- data>")
dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
CREATE TABLE <database-name>.<table-name>;
COPY INTO <database-name>.<table-name>
FROM ‘abfss://[email protected]/path/to/folder’
FILEFORMAT = CSV
COPY_OPTIONS (‘mergeSchema’ = ‘true’);
Box 2: dfs
dfs is used for the endpoint:
dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
Reference: https://docs.databricks.com/en/connect/storage/azure-storage.html
Prepare data
Testlet 1
Case study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Overview
Contoso, Ltd. is a US-based health supplements company. Contoso has two divisions named Sales and Research. The Sales division contains two departments named Online Sales and Retail Sales. The Research division assigns internally developed product lines to individual teams of researchers and analysts.
Existing Environment
Identity Environment
Contoso has a Microsoft Entra tenant named contoso.com. The tenant contains two groups named ResearchReviewersGroup1 and ResearchReviewersGroup2.
Data Environment
Contoso has the following data environment:
– The Sales division uses a Microsoft Power BI Premium capacity.
– The semantic model of the Online Sales department includes a fact table named Orders that uses Import made. In the system of origin, the OrderID value represents the sequence in which orders are created.
– The Research department uses an on-premises, third-party data warehousing product.
– Fabric is enabled for contoso.com.
– An Azure Data Lake Storage Gen2 storage account named storage1 contains Research division data for a product line named Productline1. The data is in the delta format.
– A Data Lake Storage Gen2 storage account named storage2 contains Research division data for a product line named Productline2. The data is in the CSV format.
Requirements
Planned Changes
Contoso plans to make the following changes:
– Enable support for Fabric in the Power BI Premium capacity used by the Sales division.
– Make all the data for the Sales division and the Research division available in Fabric.
– For the Research division, create two Fabric workspaces named Productline1ws and Productline2ws.
– In Productline1ws, create a lakehouse named Lakehouse1.
– In Lakehouse1, create a shortcut to storage1 named ResearchProduct.
Data Analytics Requirements
Contoso identifies the following data analytics requirements:
– All the workspaces for the Sales division and the Research division must support all Fabric experiences.
– The Research division workspaces must use a dedicated, on-demand capacity that has per-minute billing.
– The Research division workspaces must be grouped together logically to support OneLake data hub filtering based on the department name.
– For the Research division workspaces, the members of ResearchReviewersGroup1 must be able to read lakehouse and warehouse data and shortcuts by using SQL endpoints.
– For the Research division workspaces, the members of ResearchReviewersGroup2 must be able to read lakehouse data by using Lakehouse explorer.
– All the semantic models and reports for the Research division must use version control that supports branching.
Data Preparation Requirements
Contoso identifies the following data preparation requirements:
– The Research division data for Productline1 must be retrieved from Lakehouse1 by using Fabric notebooks.
– All the Research division data in the lakehouses must be presented as managed tables in Lakehouse explorer.
Semantic Model Requirements
Contoso identifies the following requirements for implementing and managing semantic models:
– The number of rows added to the Orders table during refreshes must be minimized.
– The semantic models in the Research division workspaces must use Direct Lake mode.
General Requirements
Contoso identifies the following high-level requirements that must be considered for all solutions:
– Follow the principle of least privilege when applicable.
– Minimize implementation and maintenance effort when possible.
Which syntax should you use in a notebook to access the Research division data for Productline1?
- A . spark.read.format(“delta”).load(“Tables/ResearchProduct”)
- B . spark.read.format(“delta”).load(“Files/ResearchProduct”)
- C . spark.sql(“SELECT * FROM Lakehouse1.productline1.ResearchProduct”)
- D . spark.read.format(“delta”).load(“Tables/productline1/ResearchProduct”)
A
Explanation:
Correct:
* spark.read.format("delta").load("Tables/ResearchProduct")
* spark.sql(“SELECT * FROM Lakehouse1.ResearchProduct”)
Incorrect:
* external_table(ResearchProduct)
* external_table(Tables/ResearchProduct)
* spark.read.format(“delta”).load(“Files/ResearchProduct”)
* spark.read.format("delta").load("Tables/productline1/ResearchProduct")
* spark.sql(“SELECT * FROM Lakehouse1.productline1.ResearchProduct”)
* spark.sql("SELECT * FROM Lakehouse1.Tables.ResearchProduct")
Note: Apache Spark
Apache Spark notebooks and Apache Spark jobs can use shortcuts that you create in OneLake. Relative file paths can be used to directly read data from shortcuts. Additionally, if you create a shortcut in the Tables section of the lakehouse and it is in the Delta format, you can read it as a managed table using Apache Spark SQL syntax.
Can use either:
df = spark.read.format("delta").load("Tables/MyShortcut")
display(df)
OR
df = spark.sql("SELECT * FROM MyLakehouse.MyShortcut LIMIT 1000")
display(df)
—
The spark.read.format("delta").load(…) method is specifically designed for reading data stored in Delta format, which is what the Research division data for Productline1 is based on.
The path "Tables/ResearchProduct" correctly refers to the shortcut created in Lakehouse1, allowing you to access the data efficiently.
Scenario:
An Azure Data Lake Storage Gen2 storage account named storage1 contains Research division data for a product line named Productline1. The data is in the delta format.
The Research division data for Productline1 must be retrieved from Lakehouse1 by using Fabric notebooks.
Planned changes include:
In Lakehouse1, create a shortcut to storage1 named ResearchProduct.
Reference: https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts
https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts
HOTSPOT
You have a Fabric tenant that contains two lakehouses.
You are building a dataflow that will combine data from the lakehouses.
The applied steps from one of the queries in the dataflow is shown in the following exhibit.

Use the drop-down menus to select the answer choice that completes each statement based on the information presented in the graphic. NOTE: Each correct selection is worth one point.

Explanation:
Box 1: Some ____ of the transformation steps in the query will fold.
We see from the exhibit that the View Native Query option isn’t enabled (greyed out).
If the View Native Query option isn’t enabled (greyed out), this is evidence that not all query steps can be folded. However, it could mean that a subset of steps can still be folded. Working backwards from the last step, you can check each step to see if the View Native Query option is enabled. If so, then you’ve learned where, in the sequence of steps, that query folding could no longer be achieved.

Box 2: the Microsoft Power Query engine
The Added custom step will be performed in ______.
Depending on how the query is structured, there could be three possible outcomes to the query folding mechanism:
-> No query folding: When the query contains transformations that can’t be translated to the native query language of your data source, either because the transformations aren’t supported or the connector doesn’t support query folding. For this case, Power Query gets the raw data from your data source and uses the Power Query engine to achieve the output you want by processing the required transforms at the Power Query engine level.
Full query folding: When all of your query transformations get pushed back to the data source and minimal processing occurs at the Power Query engine.
Partial query folding: When only a few transformations in your query, and not all, can be pushed back to the data source. In this case, only a subset of your transformations is done at your data source and the rest of your query transformations occur in the Power Query engine.
Note: Query folding is the ability for a Power Query query to generate a single query statement to retrieve and transform source data. The Power Query mashup engine strives to achieve query folding whenever possible for reasons of efficiency.
The goal of query folding is to offload or push as much of the evaluation of a query to a data source that can compute the transformations of your query.
The query folding mechanism accomplishes this goal by translating your M script to a language that can be interpreted and executed by your data source. It then pushes the evaluation to your data source and sends the result of that evaluation to Power Query.
Reference:
https://learn.microsoft.com/en-us/power-query/power-query-folding
https://learn.microsoft.com/en-us/power-query/query-folding-basics
HOTSPOT
You have a Fabric warehouse that contains a table named Table1.
Table1 contains the following data.

You need to create a T-SQL statement that meets the following requirements:
– Outputs the item name of each item and returns a null value if the item name is longer than 20 characters
– Outputs the PurchaseDate value in the format of МММ dd, yy
How should you complete the statement? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Explanation:

Handling Item Name (Null if > 20 characters)
– The correct choice is TRY_CAST(item_name AS VARCHAR(20)).
– TRY_CAST attempts to cast item_name to VARCHAR(20).
– If item_name is longer than 20 characters, it returns NULL instead of truncating or causing an error.
Formatting PurchaseDate (MMM dd, yy)
– The correct choice is CONVERT(VARCHAR, purchase_date, 7).
– The format style 7 in SQL Server returns dates in the MMM dd, yy format (e.g., "Feb 20, 25").
HOTSPOT
You have a Fabric warehouse that contains a table named Table1.
Table1 contains the following data.

You need to create a T-SQL statement that meets the following requirements:
– Outputs the item name of each item and returns a null value if the item name is longer than 20 characters
– Outputs the PurchaseDate value in the format of МММ dd, yy
How should you complete the statement? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Explanation:

Handling Item Name (Null if > 20 characters)
– The correct choice is TRY_CAST(item_name AS VARCHAR(20)).
– TRY_CAST attempts to cast item_name to VARCHAR(20).
– If item_name is longer than 20 characters, it returns NULL instead of truncating or causing an error.
Formatting PurchaseDate (MMM dd, yy)
– The correct choice is CONVERT(VARCHAR, purchase_date, 7).
– The format style 7 in SQL Server returns dates in the MMM dd, yy format (e.g., "Feb 20, 25").
Which syntax should you use in a notebook to access the Research division data for Productline1?
- A . spark.read.format(“delta”).load(“Tables/productline1/ResearchProduct”)
- B . spark.sql(“SELECT * FROM Lakehouse1.ResearchProduct ”)
- C . external_table(‘Tables/ResearchProduct)
- D . external_table(ResearchProduct)
B
Explanation:
Correct:
* spark.read.format(“delta”).load(“Tables/ResearchProduct”)
* spark.sql(“SELECT * FROM Lakehouse1.ResearchProduct ”)
Incorrect:
* external_table(‘Tables/ResearchProduct)
* external_table(ResearchProduct)
* spark.read.format(“delta”).load(“Files/ResearchProduct”)
* spark.read.format(“delta”).load(“Tables/productline1/ResearchProduct”)
* spark.sql(“SELECT * FROM Lakehouse1.Tables.ResearchProduct ”)
Note: Apache Spark
Apache Spark notebooks and Apache Spark jobs can use shortcuts that you create in OneLake. Relative file paths can be used to directly read data from shortcuts. Additionally, if you create a shortcut in the Tables section of the lakehouse and it is in the Delta format, you can read it as a managed table using Apache Spark SQL syntax.
Can use either:
df = spark.read.format("delta").load("Tables/MyShortcut")
display(df)
OR
df = spark.sql("SELECT * FROM MyLakehouse.MyShortcut LIMIT 1000")
display(df)
Reference: https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You have a Fabric tenant that contains a new semantic model in OneLake.
You use a Fabric notebook to read the data into a Spark DataFrame.
You need to evaluate the data to calculate the min, max, mean, and standard deviation values for all the string and numeric columns.
Solution: You use the following PySpark expression:
df.explain()
Does this meet the goal?
- A . Yes
- B . No
B
Explanation:
Correct: You use the following PySpark expression:
df.summary()
Incorrect:
* df.describe().show()
* df.show()
* df.explain().show()
* df.explain()
explain(extended=False)[source]
Prints the (logical and physical) plans to the console for debugging purpose.
Parameters: extended C boolean, default False. If False, prints only the physical plan.
>>> df.explain()
== Physical Plan ==
Scan ExistingRDD[age#0,name#1]
>>> df.explain(True)
== Parsed Logical Plan ==
…
== Analyzed Logical Plan ==
…
== Optimized Logical Plan ==
…
== Physical Plan ==
Note:
summary(*statistics)[source]
Computes specified statistics for numeric and string columns. Available statistics are: – count – mean – stddev – min – max – arbitrary approximate percentiles specified as a percentage (eg, 75%)
If no statistics are given, this function computes count, mean, stddev, min, approximate quartiles (percentiles at 25%, 50%, and 75%), and max.
Note This function is meant for exploratory data analysis, as we make no guarantee about the backward compatibility of the schema of the resulting DataFrame.
>>> df.summary().show() +——-+——————+—–+
| stddev|2.1213203435596424| null|
Reference: https://spark.apache.org/docs/2.3.0/api/python/pyspark.sql.html
HOTSPOT
You have a Fabric tenant that contains a workspace named Workspace1. Workspace1 contains a warehouse named DW1. DW1 contains two tables named Employees and Sales. All users have read access to Dw1.
You need to implement access controls to meet the following requirements:
– For the Sales table, ensure that the users can see only the sales data from their respective region.
– For the Employees table, restrict access to all Personally Identifiable Information (PII).
– Maintain access to unrestricted data for all the users.
What should you use for each table? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Explanation:
Box 1: Column-level security
For the Employees table, restrict access to all Personally Identifiable Information (PII).
Synapse Analytics, Column-level security
Column-Level security allows customers to control access to table columns based on the user’s execution context or group membership.
Column-level security simplifies the design and coding of security in your application, allowing you to restrict column access to protect sensitive data. For example, ensuring that specific users can access only certain columns of a table pertinent to their department.
Use cases
Some examples of how column-level security is being used today:
A financial services firm allows only account managers to have access to customer social security numbers (SSN), phone numbers, and other personal data.
A health care provider allows only doctors and nurses to have access to sensitive medical records while preventing members of the billing department from viewing this data.
Box 2: Row-level security (RLS)
For the Sales table, ensure that the users can see only the sales data from their respective region.
SQL Server, Row-level security
Row-level security (RLS) enables you to use group membership or execution context to control access to rows in a database table.
Row-level security simplifies the design and coding of security in your application. RLS helps you implement restrictions on data row access. For example, you can ensure that workers access only those data rows that are pertinent to their department. Another example is to restrict customers’ data access to only the data relevant to their company.
Use cases
Here are design examples of how row-level security (RLS) can be used:
A hospital can create a security policy that allows nurses to view data rows for their patients only.
A bank can create a policy to restrict access to financial data rows based on an employee’s business division or role in the company.
A multitenant application can create a policy to enforce a logical separation of each tenant’s data rows from every other tenant’s rows. Efficiencies are achieved by the storage of data for many tenants in a single table. Each tenant can see only its data rows.
Reference:
https://learn.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/column-level-security
https://learn.microsoft.com/en-us/sql/relational-databases/security/row-level-security