Q001 - Question
A workspace contains a lakehouse, a warehouse, and several reports. A business stakeholder needs access to one report only. You must not grant access to the other items in the workspace. What should you configure?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Assign the stakeholder the viewer role in the workspace.
- B. Assign the stakeholder the contributor role in the workspace.
- C. Assign the stakeholder the member role in the workspace.
- D. Configure item-level permissions on the report for the stakeholder.
D is correct.
Explanation: Workspace roles apply to all items in a workspace and should be reserved for collaboration. For more granular access control, use item-level permissions based on business needs. Item-level permissions on the report limit access to that item.
A is incorrect: The viewer role is a workspace role. Workspace roles apply to all items in the workspace, so it does not limit access to one report.
B is incorrect: The contributor role is a workspace role that applies to all items. It is meant for collaboration, not for single-item access.
C is incorrect: The member role is a workspace role that applies to all items. It is meant for collaboration, not for single-item access.
Q002 - Question
Analysts at a retail organization each write their own T-SQL joins and filters against FactSales and DimCustomer. Their results conflict. You want one reusable T-SQL starting point that analysts reference like a table. Copilot and Fabric IQ data agents must also be able to query it. What should you create in the warehouse?
Domain: Prepare data (45–50%) Type: Single choice
- A. A saved ad hoc query in the SQL query editor for each analyst.
- B. A visual query in the Visual query editor for each analyst.
- C. A stored procedure that each analyst runs on demand to reload staging data.
- D. A well-named view that joins the fact and dimension tables and applies the agreed filters.
D is correct.
Explanation: A view defines a saved query that you reference like a table. You can use views to combine fact and dimension tables into a reporting-friendly format and to filter rows to a business context. Copilot and Fabric IQ data agents can query views like tables, and well-named views improve the accuracy of natural language queries.
A is incorrect: Separate saved queries per analyst keep the join and filter logic duplicated. They do not standardize access.
B is incorrect: The Visual query editor provides a no-code way to build queries. Separate visual queries per analyst do not create a shared object that analysts reference like a table.
C is incorrect: Stored procedures contain T-SQL logic that you execute on demand, such as loading staging data into final tables. They are not objects that you reference like a table.
Q003 - Question
An analyst has written KQL queries in a KQL queryset against tables in an Eventhouse. Operations staff need a single visual interface where each tile shows a different result from those queries and can be explored interactively after it is published. What should the analyst do?
Domain: Prepare data (45–50%) Type: Single choice
- A. Create an Activator rule for each query
- B. Add a derived stream as an eventstream destination
- C. Create a Real-Time Dashboard directly from the KQL queryset
- D. Subscribe to Fabric events in the Real-Time hub
C is correct.
Explanation: A Real-Time Dashboard pins visualizations to a single visual interface. Each tile is based on a KQL query that extracts data from tables in an eventhouse. You can create a dashboard directly from a KQL queryset. After you publish it, users can drill into the data, filter and aggregate it, and change the visualization type.
A is incorrect: Activator rules trigger actions when conditions are met. They do not provide a tiled interface for exploring query results.
B is incorrect: A derived stream is an eventstream destination that routes stream data. It does not display query results in tiles.
D is incorrect: Subscribing to Fabric events in the Real-Time hub makes system events available. It does not visualize the results of KQL queries.
Q004 - Question
Your organization stores files in Azure Data Lake Storage. A data engineer must make these files available in a Fabric lakehouse in OneLake without copying them. Which data path should the engineer use?
Domain: Prepare data (45–50%) Type: Single choice
- A. Mirroring
- B. A pipeline that uses Data Factory
- C. A shortcut
- D. Direct upload through the Fabric interface
C is correct.
Explanation: Shortcuts reference data in external locations such as Azure Data Lake Storage without copying it. The data stays in the source and appears in OneLake.
A is incorrect: Mirroring continuously replicates changes from external databases such as Azure SQL, Cosmos DB, or Snowflake. It does not reference files in Azure Data Lake Storage in place.
B is incorrect: Pipelines orchestrate batch data movement and transformation. This approach moves data instead of referencing it.
D is incorrect: Direct upload adds files through the Fabric interface. This approach creates a separate copy of the files.
Q005 - Question
An operations analyst discovers a KQL table in Real-Time hub that stores sensor readings. The analyst needs a visual display of the readings that is based on the data in the table. Which action should the analyst take?
Domain: Prepare data (45–50%) Type: Single choice
- A. Create a real-time dashboard from the KQL table.
- B. Create a shortcut from the KQL table to a lakehouse.
- C. Set an alert with Fabric Activator on an eventstream.
- D. Search for the table on the Explore tab of the OneLake catalog.
A is correct.
Explanation: For a discovered KQL table, you can query data directly with a KQL queryset, create real-time dashboards, or set alerts on query results. A real-time dashboard meets the need for a visual display of the readings.
B is incorrect: Shortcuts are an option for eventstreams that send data to a lakehouse. A shortcut does not create a visual display.
C is incorrect: Alerts with Fabric Activator notify you about conditions. They do not display the readings, and the scenario starts from a KQL table, not an eventstream.
D is incorrect: The OneLake catalog helps you find data that is already stored, such as lakehouses, warehouses, and semantic models. Use Real-Time hub to discover streaming data.
Q006 - Question
A Fabric administrator must enable Microsoft Fabric for a pilot team only, not for the whole organization. The administrator also wants other users to be able to manage this setting for their own capacity. Which two actions should the administrator take? Select two.
Domain: Maintain a data analytics solution (25–30%) Type: Multi-select
- A. Change the license type in each workspace's settings to enable Fabric for the tenant.
- B. Enable Fabric in Admin portal > Tenant settings for a specific Microsoft Entra security group.
- C. Use the Copilot tenant setting to enable Fabric for the pilot team.
- D. Delegate the ability to enable Fabric to other users at the capacity level.
B and D are correct.
Explanation: Admins can enable Fabric in the Admin portal > Tenant settings in the Power BI service. They can enable it for the entire organization or for specific Microsoft 365 or Microsoft Entra security groups. Admins can also delegate this ability to other users at the capacity level.
A is incorrect: License type is a workspace setting that lets you use Fabric features in that workspace. It does not enable Fabric for the tenant.
C is incorrect: The Copilot tenant setting controls Copilot in Fabric. It does not enable Fabric for a group.
Q007 - Question
Your team has Delta tables in a Fabric lakehouse. You need to join them with tables in a Fabric data warehouse in a single T-SQL query. You must not copy the lakehouse data. Which approach should you use?
Domain: Prepare data (45–50%) Type: Single choice
- A. Run COPY INTO to load the lakehouse tables into the warehouse.
- B. Create a SQL analytics endpoint and write the join results back to the lakehouse tables.
- C. Use a cross-database query with three-part naming (database.schema.table).
- D. Create a Dataflow Gen2 that copies the lakehouse tables into staging tables each night.
C is correct.
Explanation: Cross-database querying lets you query data across warehouses and lakehouses without copying data. You use three-part naming to join warehouse tables with lakehouse tables in one query.
A is incorrect: COPY INTO bulk loads data from external files, such as CSV or Parquet files in Azure storage, into warehouse tables. It copies data, which does not meet the requirement.
B is incorrect: A SQL analytics endpoint provides read-only SQL access to lakehouse data. It does not support INSERT, UPDATE, DELETE, or MERGE, so you cannot write results back through it.
D is incorrect: Dataflow Gen2 supports orchestrated data movement and transformation, but a nightly copy duplicates the data. Cross-database querying avoids that copy.
Q008 - Question
You must share one Fabric warehouse with a downstream analyst. The analyst must connect by using the SQL analytics endpoint and read data from any table or view in the warehouse. The analyst must not receive access to the entire workspace or to raw parquet files in OneLake. Which two item permissions should you grant? Select two.
Domain: Maintain a data analytics solution (25–30%) Type: Multi-select
- A. Read
- B. ReadAll
- C. ReadData
- D. Workspace Admin role
A and C are correct.
Explanation: Read allows the user to connect by using the SQL analytics endpoint. A connection fails without at least Read permission. ReadData allows the user to read data from any table or view in the warehouse. Item permissions share an individual warehouse without granting access to the entire workspace.
B is incorrect: ReadAll allows the user to read raw parquet files in OneLake. The requirements exclude that access.
D is incorrect: The Admin role gives full control at the workspace level. It grants more access than the analyst needs, and item permissions are the way to share a single warehouse.
Q009 - Question
A data governance lead needs to review the governance status of data in Microsoft Fabric. The lead wants guidance on sensitivity labels, item metadata, and data refresh status, and wants suggested actions for improvement. Which capability should the lead use?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. The Admin portal, to manage groups and permissions
- B. Git integration in workspace settings
- C. The OneLake catalog
- D. Shortcuts to external storage locations
C is correct.
Explanation: The OneLake catalog helps you analyze, monitor, and maintain data governance. It provides guidance on sensitivity labels, item metadata, and data refresh status, offering insights into the governance status and actions for improvement.
A is incorrect: The Admin portal manages groups and permissions, configures data sources and gateways, and monitors usage and performance. It is not the capability described for sensitivity label and refresh status guidance.
B is incorrect: Git integration provides version control. It tracks changes and keeps a history of your work, but it does not report governance status.
D is incorrect: Shortcuts provide access to existing data without copying it. They do not report on governance status.
Q010 - Question
A governance lead is documenting how endorsement works for items in the OneLake catalog. Which two statements are correct? (Select two.)
Domain: Maintain a data analytics solution (25–30%) Type: Multi-select
- A. Any user with write permissions can apply the Promoted endorsement to an item.
- B. Any user with write permissions can apply the Certified endorsement to an item.
- C. The Certified endorsement indicates that an item meets organizational quality standards and is applied only by authorized reviewers.
- D. Any user with write permissions can apply the Master data endorsement to a data item.
A and C are correct.
Explanation: Promoted means an item is ready for others to use, and any user with write permissions can apply it. Certified means an item meets organizational quality standards, and only authorized reviewers can apply it.
B is incorrect: Certified is restricted to authorized reviewers. Write permission alone does not allow a user to apply it.
D is incorrect: Master data identifies an authoritative source for core business data. Only authorized reviewers can apply it, and it applies to data items only.
Q011 - Question
A logistics team receives a continuous stream of temperature readings from sensors. Each reading has a timestamp. The team needs dashboards that show current values alongside historical trends. It also needs alerts when readings are anomalous, and it wants to use time-series functions in the query language. Which data store should the team use for the incoming data?
Domain: Prepare data (45–50%) Type: Single choice
- A. Warehouse
- B. Lakehouse
- C. SQL database in Fabric
- D. Eventhouse
D is correct.
Explanation: An eventhouse is designed for real-time analytics on streaming and time-series data. Its data is indexed and partitioned by ingestion time. KQL provides built-in time-series functions such as make-series and series_decompose_anomalies. Power BI integration supports low-latency dashboards.
A is incorrect: A warehouse handles batch and micro-batch loading. It is not purpose-built for streaming ingestion where data must be queryable within seconds.
B is incorrect: A lakehouse processes data in batch or micro-batch patterns. It is not the store built for streaming data with subsecond latency.
C is incorrect: SQL database in Fabric is for operational transactional workloads. It is not an analytical data store for streaming time-series analysis.
Q012 - Question
An orders DataFrame contains one row for each order. Analysts need each order to show its sequence number for the customer and a running total of amount for that customer, ordered by order_date. Every individual order row must remain in the result. Which transformation should the team use?
Domain: Prepare data (45–50%) Type: Single choice
- A. Use GROUP BY customer_id with SUM(amount).
- B. Pivot the data so that each customer becomes a column.
- C. Use an INNER JOIN to the customers table on customer_id.
- D. Use window functions with PARTITION BY customer_id and ORDER BY order_date.
D is correct.
Explanation: Window functions such as ROW_NUMBER() and SUM() OVER calculate values across related rows without collapsing the data. PARTITION BY customer_id defines the rows for each customer, and ORDER BY order_date sets the sequence within each partition. The original row count stays the same.
A is incorrect: GROUP BY collapses the detail rows into one row for each customer. The individual order rows would no longer be in the result.
B is incorrect: A pivot reshapes rows into columns for cross-tabulation, such as one column for each quarter. It does not calculate a sequence number or a running total for each order.
C is incorrect: An inner join adds columns from the customers table to matching rows and excludes rows without a match. It does not calculate a sequence number or a running total.
Q013 - Question
A team writes a curated sales fact table of about 300 GB to a lakehouse as a Delta table. Queries sometimes filter on year and month. A developer proposes partitioning the table when it is written. Which decision follows the partitioning guidelines for Delta tables in Fabric?
Domain: Prepare data (45–50%) Type: Single choice
- A. Partition by customer_id so that each customer has a separate partition.
- B. Skip partitioning, because the table is under 1 TB.
- C. Partition by year and month, because queries filter on those columns.
- D. Partition by region and customer_id to reduce the size of each file.
B is correct.
Explanation: Partition a table when it exceeds 1 TB and queries frequently filter on the partition column. For most tables under 1 TB, skip partitioning. Spark and Delta handle these table sizes efficiently without it, and partitioning can reduce performance for smaller tables.
A is incorrect: customer_id is a high-cardinality column. Partitioning on it creates too many small files, which slows queries.
C is incorrect: Year and month are common partition columns, but the table is about 300 GB. Filtering on those columns does not meet the 1 TB threshold. Each partition should also be at least 1 GB.
D is incorrect: Adding customer_id makes the partitioning high-cardinality and creates many small files. Partitioning does not target file size in the way this option assumes.
Q014 - Question
You are designing a sales fact table. Analysts must be able to break down sales by individual product and by individual customer. Before you choose dimension keys and measures, you must define the grain. Which grain should you use?
Domain: Prepare data (45–50%) Type: Single choice
- A. One row per store per day, containing the daily sales total
- B. One row per product category per month
- C. One row per sales order line item
- D. One row per customer per year
C is correct.
Explanation: The grain specifies what one row in the fact table represents. One row per sales order line item keeps the detail needed to analyze sales by individual product and customer. This grain also determines which dimension keys belong in the table, such as customer, product, date, and salesperson.
A is incorrect: A daily total is too high-level. If you store daily totals instead of order lines, you cannot later break down sales by individual products or customers.
B is incorrect: Category-by-month rows lose product-level and customer-level detail. You cannot recover that detail later from the summarized rows.
D is incorrect: A yearly row per customer removes product detail and order-level detail. It does not support the required product breakdown.
Q015 - Question
A data engineering team manages curated Delta tables in a lakehouse. A SQL-first BI team uses a warehouse and must use that lakehouse data in its work. The requirement is that the data is not duplicated or moved. Which two approaches meet the requirement? Select two.
Domain: Prepare data (45–50%) Type: Multi-select
- A. Schedule a pipeline that copies the lakehouse tables into the warehouse every night.
- B. Create a shortcut in the warehouse that references the Delta tables managed by the lakehouse.
- C. Configure an eventstream to route the lakehouse data to an eventhouse for the BI team.
- D. Run a cross-database query in the warehouse that uses three-part naming against the lakehouse SQL analytics endpoint.
B and D are correct.
Explanation: All three analytical data stores write data to OneLake, so data does not need to be copied between them. A shortcut lets a warehouse reference Delta tables that a lakehouse manages without duplicating them. A cross-database query in the warehouse can join data from lakehouse SQL analytics endpoints by using three-part naming.
A is incorrect: A nightly pipeline copy creates a second copy of the data. The requirement is that the data is not duplicated.
C is incorrect: An eventstream routes events to destinations such as an eventhouse or a lakehouse. It does not give a warehouse access to existing lakehouse tables.
Q016 - Question
A Dataflow Gen2 refresh is slow. One query is a lookup table that is used only in a merge. It does not need to be loaded to the destination. Another query reads a large source table and has many unneeded columns and rows. Which two actions should you take to reduce processing? Select two.
Domain: Prepare data (45–50%) Type: Multi-select
- A. Move the row filter to the last step of the query.
- B. Deselect Enable load on the lookup query.
- C. Mark the row filter step as Enable only in previews.
- D. Move the row filter and column removal steps to the start of the query.
B and D are correct.
Explanation: Deselecting Enable load on a staging or reference query prevents it from loading to the destination, which reduces processing time. Filtering rows and selecting columns early means every later transformation processes less data.
A is incorrect: Row filters should be applied as the first steps in a query. Filtering last means the earlier steps process all rows.
C is incorrect: Steps marked Enable only in previews run during preview and authoring validation. They are excluded from refresh, so the filter would not reduce the data processed in production.
Q017 - Question
A salesperson dimension uses Type 2 tracking for the sales region attribute. A salesperson moves to a new region, and the ETL process must record the change. Which two actions should the ETL process perform? Select two.
Domain: Prepare data (45–50%) Type: Multi-select
- A. Overwrite the region value in the existing row so all past sales show the new region
- B. Set the end date on the existing current row and change its current flag to FALSE
- C. Add a PreviousSalesRegion column and move the old region value into it
- D. Insert a new row with the new region, a new surrogate key, the change date as the start date, and the current flag set to TRUE
B and D are correct.
Explanation: A Type 2 change expires the existing current row by setting its end date and changing the current flag to FALSE. The process then inserts a new row with the new attribute values, a new surrogate key, the start date set to the change date, and the current flag set to TRUE. Each version keeps its own surrogate key, so you can report sales by the region the salesperson was assigned to at the time of each sale.
A is incorrect: Overwriting the value is a Type 1 change. It keeps no history, and all past sales then appear under the new region.
C is incorrect: Adding a column for the previous value is a Type 3 change. It tracks only the most recent change and loses intermediate changes, so it does not provide full history.
Q018 - Question
A sales fact table must support a discount percentage that is correct at any level of aggregation, such as by product, by month, or for the whole company. Which design should you use?
Domain: Prepare data (45–50%) Type: Single choice
- A. Store discount amount and sales revenue as measures, and compute the ratio at query time
- B. Store the discount percentage on each row as an additive measure, and sum it in reports
- C. Store only the date key and the discount percentage, and omit the other measures
- D. Store the discount percentage as a degenerate dimension attribute
A is correct.
Explanation: A ratio is a non-additive measure and cannot be summed meaningfully across any dimension. Store the underlying values, discount amount and sales revenue, so the ratio can be computed correctly at any level of aggregation.
B is incorrect: A discount percentage is non-additive. Summing it across rows or dimensions gives results that are not meaningful.
C is incorrect: Removing the other measures does not solve the aggregation problem. A percentage alone still cannot be aggregated correctly, and the underlying values are no longer available.
D is incorrect: Attributes in a fact table, sometimes called degenerate dimensions, describe an event, such as order numbers or tracking codes. They are not a way to make a ratio aggregate correctly.
Q019 - Question
A data engineer builds a Fabric notebook that transforms sales data in a lakehouse. The notebook must also read dimension tables that a separate SQL team manages in a Fabric warehouse. The engineer wants to read the dimension tables directly from the notebook. Which approach should the engineer use?
Domain: Prepare data (45–50%) Type: Single choice
- A. Pin the warehouse as the default lakehouse and query its tables by name.
- B. Use the KQL connector to read the dimension tables.
- C. Run cross-database queries that use three-part naming, such as warehouse.schema.table.
- D. Configure a JDBC Spark connector as an external source.
C is correct.
Explanation: A notebook reads warehouse tables by using cross-database queries with three-part naming (warehouse.schema.table). This fits reading dimension tables that a SQL team manages, and it does not require you to copy the data first.
A is incorrect: You pin a lakehouse, not a warehouse, as the default. The default lakehouse sets the Hive metastore context for Spark SQL queries on lakehouse tables.
B is incorrect: The KQL connector or Spark connector for Kusto connects to KQL databases, for example to write processed events for real-time analytics. It does not read warehouse tables.
D is incorrect: JDBC and other Spark connectors are for sources outside Fabric. The warehouse is a Fabric data store that you reach with three-part naming.
Q020 - Question
Your organization stores raw sales data in Delta tables in a lakehouse and in staging tables in a Fabric warehouse. A data engineer must write T-SQL that transforms the data and persists the results by using INSERT and UPDATE statements. Which approach meets the requirement?
Domain: Prepare data (45–50%) Type: Single choice
- A. Run the INSERT and UPDATE statements against the lakehouse SQL analytics endpoint.
- B. Run the INSERT and UPDATE statements in the Fabric warehouse.
- C. Build the transformation in the Visual Query Editor and run it against the lakehouse SQL analytics endpoint.
- D. Connect SQL Server Management Studio (SSMS) to the lakehouse SQL analytics endpoint and run the statements.
B is correct.
Explanation: A warehouse provides full read-write T-SQL capabilities. You can run INSERT and UPDATE statements in a warehouse and persist the transformation results.
A is incorrect: The SQL analytics endpoint of a lakehouse exposes Delta tables for querying and analysis only. It is read-only, so it cannot persist the results.
C is incorrect: The Visual Query Editor generates T-SQL, but it still runs against a read-only SQL analytics endpoint. The editor does not make the endpoint writable.
D is incorrect: SSMS is an external tool that connects through the T-SQL connection string. The connection method does not change the read-only behavior of the lakehouse SQL analytics endpoint.
Q021 - Question
A semantic model has a relationship between the Sales table and the Product table. The Product table is on the one-side of the relationship. You must add a Discount Amount column to the Sales table. For each sales row, the value is Order Quantity multiplied by the product List Price, minus Sales Amount. The logic must use a value from a related table. Which approach should you use?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Create a calculated column in Sales that uses the LOOKUPVALUE function to get List Price.
- B. Create a calculated column in Sales that uses the RELATEDTABLE function to get List Price.
- C. Create a calculated column in Sales that uses the RELATED function to get List Price.
- D. Create a measure that uses the SUM function and references Product[List Price] directly.
C is correct.
Explanation: A calculated column is evaluated in row context, which is the current row of the Sales table. Because a relationship exists, the RELATED function gets the List Price value from the one-side Product table for each sales row. RELATED usually works faster than LOOKUPVALUE.
A is incorrect: LOOKUPVALUE is intended for tables that have no relationship. A relationship exists here, and RELATED usually works faster.
B is incorrect: RELATEDTABLE returns a table of values from the many-side. The formula needs a single List Price value for each row, and a calculated column formula must return a single value.
D is incorrect: A measure can't reference a column directly. It also doesn't add a column to the Sales table, and a measure is evaluated in filter context at query time.
Q022 - Question
A team is designing a semantic model in Microsoft Fabric. The large Sales fact table is stored in a lakehouse. A small currency reference table comes from a third-party API outside Fabric. The model must combine both sources for cross-source analysis, and the team wants to keep the fact table in Direct Lake. Which storage mode design should the team choose?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Use Direct Lake for all tables, because Direct Lake is the default storage mode in Fabric.
- B. Use DirectQuery for all tables, because no data is stored in the model.
- C. Use composite mode, with the fact table in Direct Lake and the reference table in Import.
- D. Use Import mode for all tables, because Import is the fastest storage mode.
C is correct.
Explanation: Composite mode combines storage modes in one model. You need it here because the model uses data from both Fabric and a non-Fabric source. The large fact table can stay in Direct Lake and the small external reference table can use Import. Configure the storage mode for each table and verify that the cross-source relationship performs acceptably at your expected data volumes.
A is incorrect: Direct Lake reads Delta tables from OneLake. A reference table from a third-party API outside Fabric is not a Delta table in OneLake, so Direct Lake alone does not cover this requirement.
B is incorrect: DirectQuery sends a query to the source for every report interaction. That adds query load and does not keep the fact table in Direct Lake, which the team wants.
D is incorrect: Import copies all data into the model, and the data is only as current as the last refresh. This removes the Direct Lake behavior the team wants for the fact table and requires scheduled refresh.
Q023 - Question
Before every deployment, your team must automatically check a published semantic model for orphaned foreign keys and confirm that the Total Revenue measure returns a known value for 2024. The check must run the same way each time. The XMLA endpoint is enabled for the workspace. Which approach should you use?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Use DAX Studio to write and run the queries interactively before each deployment.
- B. Use ALM Toolkit to compare the schemas of the development and production models.
- C. Review the Git commit history of the semantic model for relationship changes.
- D. Use SemPy in a Fabric notebook to call list_relationship_violations() and evaluate_measure(), and assert the expected value in Python.
D is correct.
Explanation: The evidence supports D because SemPy connects to the semantic model through the XMLA endpoint. The list_relationship_violations() function finds foreign key values that have no matching primary key value. The evaluate_measure() function returns measure results that you can compare to a known value. You can run the same notebook before every deployment for automated, repeatable validation.
A is incorrect: DAX Studio is useful for interactive DAX queries and real-time feedback. It does not provide the scripted, repeatable validation that this requirement needs, and it does not check relationship violations.
B is incorrect: ALM Toolkit compares schemas between two models. It does not check data for orphaned keys or evaluate a measure against an expected value.
C is incorrect: Version control tracks changes but does not verify that the model is correct. Commit history does not show whether keys match or whether a measure returns the expected result.
Q024 - Question
Report authors use the Sales Amount column in matrix visuals that group by fiscal year and month. The column summarizes with Sum by default. Authors now need to show each month's sales amount as a ratio of the yearly sales amount. What should you do?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Create an explicit measure that uses a DAX formula to calculate the ratio.
- B. Keep the default summarization of Sum, and let report authors calculate the ratio in each visual.
- C. Set the Summarization property of Sales Amount to Don't summarize.
- D. Set the default summarization of Sales Amount to Average.
A is correct.
Explanation: Implicit measures summarize column values by using a single aggregation function. They can't handle more complex calculations. A ratio of monthly sales to yearly sales requires an explicit measure that is defined with a DAX formula.
B is incorrect: The Sum default is a single aggregation function. It can't produce a month-to-year ratio, and it leaves the calculation to each report author.
C is incorrect: Don't summarize removes the sigma symbol and the default summarization. It doesn't create the ratio calculation.
D is incorrect: Average is still a single aggregation function. It returns the average of the values, not the ratio of monthly sales to yearly sales.
Q025 - Question
A team is preparing a new Direct Lake semantic model for production in Microsoft Fabric. Some report visuals use complex DAX calculations. The team does not yet know which queries cannot run in Direct Lake mode. Which fallback approach should the team use at first?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Disallow fallback so that every unsupported query returns an error.
- B. Allow fallback, monitor which queries trigger it, and then optimize those queries or data structures.
- C. Convert the model to DirectQuery so that fallback cannot occur.
- D. Convert the model to Import mode and disable scheduled refresh.
B is correct.
Explanation: For most production workloads, start with fallback allowed. Queries that cannot run in Direct Lake mode fall back to DirectQuery and still return results, although performance might decrease. Monitor which queries trigger fallback, then optimize those queries or data structures to reduce how often it occurs.
A is incorrect: Disallow fallback only when all query patterns stay within Direct Lake limits. The team does not know its query patterns yet, so unsupported queries would return errors to users.
C is incorrect: DirectQuery sends every report interaction to the source system. It does not provide the Direct Lake behavior the team chose, and the evidence does not show a need to leave Direct Lake.
D is incorrect: Import mode makes data only as current as the last refresh. Disabling scheduled refresh would leave the data stale. Move away from Direct Lake only when a specific scenario requires it.
Q026 - Question
An Import model contains a fact table with an OrderNumber column. The column stores text values with a prefix, such as "SO123456". Users need to filter and drill through by order number, so you cannot remove the column. Users do not need the prefix. You want to reduce the storage and query cost of this column. What should you do?
Domain: Prepare data (45–50%) Type: Single choice
- A. Remove the OrderNumber column from the model.
- B. Create a DAX calculated column that removes the prefix, and keep the original text column in the model.
- C. Change the data type of the OrderNumber column to datetime.
- D. Remove the prefix in Power Query and store the order number as a number before the data loads.
D is correct.
Explanation: The evidence supports D because the VertiPaq engine uses highly efficient value encoding for numeric data and less efficient hash encoding for text. Removing the text prefix in Power Query and storing the value as a number improves compression and query performance.
A is incorrect: Removing the column entirely is not an option because users need it to filter and drill through the data.
B is incorrect: DAX calculated columns are evaluated after load and typically compress less efficiently than Power Query computed columns.
C is incorrect: Changing the data type to datetime is inappropriate for an order number and would not reduce cardinality or improve compression.
Q027 - Question
Source data for a semantic model uses a snowflake schema: Product, Subcategory, and Category. Both the Sales fact table and the Inventory fact table use the same Category table. The team is concerned that denormalizing Category into separate dimension copies would create inconsistent data. What should the team do?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Preserve the snowflake structure and use single-direction filtering from Category toward the fact tables.
- B. Flatten the snowflake into one Product dimension and keep a separate copy of the category columns for each fact table.
- C. Preserve the snowflake structure and use bi-directional filtering on every relationship in the chain.
- D. Remove the Category table from the model so that each fact table has fewer relationships.
A is correct.
Explanation: Preserve a snowflake structure when multiple fact tables share a subdimension table and denormalization would create inconsistent copies. Configure each relationship in the chain with single-direction filtering from the outermost table toward the fact table. A filter on Category then flows through Subcategory and Product into the fact table.
B is incorrect: Flattening is usually the better choice, but here it would create separate copies of the shared category data for each fact table. That is the inconsistency the team wants to avoid.
C is incorrect: Bi-directional filtering should be used sparingly. It can degrade query performance and create unexpected filter behavior in reports. The standard pattern for a preserved snowflake is single-direction filtering.
D is incorrect: Removing Category would remove the attribute that both fact tables need for slicing. It does not address the shared-dimension requirement.
Q028 - Question
A semantic model uses Direct Lake storage mode. Its largest fact table has millions of rows. Reports mostly show regional monthly totals, and users have not reported slow query response times. A team member proposes adding aggregations to every fact table now. Which action fits the design guidance for this model?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Create hidden aggregation tables for every fact table before the model is released.
- B. Convert the model to Import mode so that aggregations can be stored as hidden tables.
- C. Create a separate measure for each summary grain that users might request.
- D. Keep the model in Direct Lake and add aggregations only when query patterns confirm the need.
D is correct.
Explanation: In Direct Lake mode, the Delta tables can serve as aggregation sources. Because Direct Lake reads columnar Parquet files, the engine can handle larger data volumes without aggregations in many scenarios. Add aggregations only when query patterns confirm the need. Consider them if summary-level visuals become slow.
A is incorrect: Adding aggregations to every fact table before any need is confirmed adds structure to maintain. Users have not reported slow queries.
B is incorrect: Import mode copies data into the model and makes freshness depend on refresh. Changing the storage mode only to use aggregations is not supported by the evidence when there is no performance problem.
C is incorrect: Separate measures for each variation increase measure proliferation and do not create summary tables at a higher grain. This approach is harder to maintain at scale.
Q029 - Question
An import model has a Profit Amount calculated column in the Sales table. A Profit measure uses SUM(Sales[Profit Amount]). The model already has Revenue and Cost measures. You must reduce model size and data refresh time without changing the Profit values that visuals show. What should you do?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Hide the Profit Amount column and keep the Profit measure unchanged.
- B. Remove the Profit measure and set the default summarization of Profit Amount to Sum.
- C. Create a calculated table that stores profit values for each sale.
- D. Redefine the Profit measure as [Revenue] - [Cost], and then remove the Profit Amount calculated column.
D is correct.
Explanation: A compound measure can reference other measures. The Profit measure can return the required result from Revenue and Cost. Measures are calculated at query time and don't store values in the model. After you remove the calculated column, the model no longer stores a Profit Amount value for each row, which reduces model size and refresh time. Test the change, because updates can affect dependent measures.
A is incorrect: Hiding the column doesn't remove it. In an import model, a calculated column still stores a value for each row, so storage and refresh costs remain.
B is incorrect: An implicit measure still depends on the calculated column, so the stored column values remain in the model.
C is incorrect: A calculated table increases the model's storage size and can prolong data refresh times. It doesn't address the cause of the problem.
Q030 - Question
A data modeler creates a dynamic RLS role on the Salesperson table with the expression [SalesPersonEmail] = USERNAME(). In Power BI Desktop, the filter does not match the email addresses stored in the column. The modeler plans to publish the model to the Power BI service and wants the same filter behavior in both environments. What should the modeler configure?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Keep USERNAME(), because it returns the same format in Power BI Desktop and in the Power BI service.
- B. Replace USERNAME() with USERPRINCIPALNAME() in the filter expression.
- C. Replace the dynamic expression with static rules that contain each email address.
- D. Use object-level security to hide the SalesPersonEmail column from the role.
B is correct.
Explanation: USERNAME() returns DOMAIN\username in Power BI Desktop and user@domain.com in the Power BI service. USERPRINCIPALNAME() returns user@domain.com in both environments. Use it so that testing in Desktop matches the behavior after you deploy.
A is incorrect: USERNAME() returns different formats depending on the environment, so the filter can behave differently in Desktop and in the service.
C is incorrect: Static rules do not scale. Each change requires a new role or an updated rule, and you must republish the semantic model.
D is incorrect: Object-level security hides tables and columns. It does not change how the identity function is evaluated or filter rows.
Q031 - Question
A fault is recorded in onboard equipment that is carried by vessel V001 but is not required by any scheduled work. An analyst must find which installation tasks and projects depend on equipment that is affected by maintenance order M001. The analyst must not flag every task that is assigned to the vessel. Which traversal should the analyst use?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Follow carries from Vessel to Equipment, and then follow assignedTo in reverse to find every task on that vessel.
- B. Start at the Project, follow hasTask to every InstallationTask, and then follow installs to Foundation.
- C. Follow affects from MaintenanceOrder to Equipment, follow requiresEquipment in reverse to the InstallationTask, and then follow hasTask in reverse to the Project.
- D. Follow assignedTo from InstallationTask to Vessel, and then treat all equipment on that vessel as required.
C is correct.
Explanation: The evidence states that to investigate a dependency, you follow the maintenance order through affects to the equipment, traverse requiresEquipment in reverse to find the task, and then hasTask in reverse to find the project.
A is incorrect: A vessel carrying equipment is different from a task requiring it. This path would flag tasks that do not depend on the affected equipment.
B is incorrect: This path starts from the project and does not use the maintenance order or the equipment dependency to find affected tasks.
D is incorrect: Treating all vessel equipment as required ignores the requiresEquipment relationship and can flag tasks incorrectly.
Q032 - Question
A team generated an ontology from a Direct Lake semantic model. The ontology contains the VitalSignEquipment entity type with static bindings to lakehouse tables. The team also needs continuous ICU readings from an eventhouse to appear on that entity type. Which approach is correct?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. No further configuration is needed. Generation from a Direct Lake model configures all keys, relationship bindings, and streaming data.
- B. Verify that each entity type has a key, verify and configure relationship bindings as needed, and add a time series binding for the eventhouse data.
- C. Delete the generated static bindings and recreate them manually so the eventhouse data can be added.
- D. Change the semantic model to Import mode so that the eventhouse data is included in the generated bindings.
B is correct.
Explanation: Generation configures static entity bindings from the lakehouse, and it configures keys where it can determine unique identifiers. You still verify that every entity type has a key. Some relationship bindings need manual configuration to be queryable. For streaming data, you add time series bindings that connect the eventhouse data sources.
A is incorrect: Some relationship bindings require manual configuration, and time series bindings for eventhouse data are not generated.
C is incorrect: The static bindings are configured automatically and remain valid. You add time series bindings in addition to them.
D is incorrect: Import mode does not generate data bindings. Direct Lake mode is the mode that generates them automatically.
Q033 - Question
Several teams use their own semantic models and define Customer differently. You plan to use Fabric IQ to create an ontology that standardizes shared business terms. Which entity is the best candidate to include in the ontology?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. A date filter that is used in one team's reports.
- B. A calculated column that supports one report layout.
- C. Customer, which has a stable definition, a clear owner, and is referenced by multiple teams.
- D. Customer, which is referenced by multiple teams but whose definition and owner are still changing.
C is correct.
Explanation: Create an ontology when an entity meets two conditions: its definition is stable, and other teams need it. Customer with a stable definition and a clear owner meets both. The ontology declares one agreed definition that all semantic models align to, and each semantic model keeps its own measures, filters, and calculated columns.
A is incorrect: A date filter only makes sense inside your reports, so it stays in the semantic model.
B is incorrect: A calculated column for one report layout is a reporting detail. Other teams do not need it, so it stays in the semantic model.
D is incorrect: Other teams need Customer, but the definition and owner are not settled. If your team is still changing what an entity means or who owns the definition, it is too early to publish it. Publish only entities with stable definitions and clear owners.
Q034 - Question
You created a contains relationship type with Hospital as the origin entity type and Department as the target entity type. You must make it queryable so the ontology shows which hospital contains which departments. The departments table has the columns DepartmentId and HospitalId. The hospitals table has only HospitalId and hospital attributes. How should you configure the relationship?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Use the hospitals table as the source and match HospitalId for the Hospital entity type.
- B. Leave the relationship without source data. The relationship type definition is enough to make connections queryable.
- C. Use the departments table as the source and match only DepartmentId, because HospitalId is already defined on Hospital.
- D. Use the departments table as the source, match HospitalId to Hospital, and match DepartmentId to Department.
D is correct.
Explanation: A relationship binding needs a source table that identifies both entity types. You select a matched column for each entity type, which is the column that matches that entity type's key. The departments table has HospitalId for the origin and DepartmentId for the target. Each row with values in both columns creates one relationship instance.
A is incorrect: The hospitals table has no column that identifies a department, so it cannot connect specific hospitals to specific departments.
B is incorrect: A relationship type without a binding is only a definition and cannot be queried.
C is incorrect: You select a matched column for each entity type. Without HospitalId, rows do not link a department to a specific hospital.
Q035 - Question
You test a semantic model with priority questions before you mark it Approved for Copilot. In one test, Copilot includes a technical location field in an answer instead of Customer City. In another test, Copilot does not recognize a business phrase that users commonly use for the Total Sales measure. Select the two actions that address these two findings.
Domain: Implement and manage semantic models (25–30%) Type: Multi-select
- A. Create a verified answer to replace the technical field problem.
- B. Remove the technical field from the AI data schema.
- C. Approve the semantic model because the other priority questions returned the expected numbers.
- D. Add the business phrase as a synonym for Total Sales.
B and D are correct.
Explanation: A technical field in an answer is fixed by removing it from the AI data schema. An unknown business phrase is fixed by adding a synonym. After each fix, close and reopen the Copilot pane and ask the same question again to confirm that the fix works without breaking other answers.
A is incorrect: A verified answer is for a stable question that needs a set answer. It does not remove a technical field from the fields that Copilot considers.
C is incorrect: Approve the semantic model only after priority questions consistently use the trusted definitions. Approval without fixing and retesting the failed prompts means every Copilot experience that uses the model inherits untested behavior.
Q036 - Question
A data analyst has defined Project, Vessel, Equipment, InstallationTask, and MaintenanceOrder in a Fabric IQ ontology and bound them to prepared lakehouse tables. A project manager asks which planned foundation installations are at risk tomorrow because required equipment is unavailable. What must the analyst add so that the answer is explainable?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Add more entity types, because the ontology calculates task risk when all related concepts are defined.
- B. Define an explicit rule that checks whether an operation-blocking maintenance order overlaps the planned use of the required equipment.
- C. Replace the ontology with a data agent, because a data agent determines risk without a defined rule.
- D. Add a relationship between Vessel and Equipment, because that relationship identifies at-risk tasks by itself.
B is correct.
Explanation: The evidence states that identifying task risk still requires an explicit rule that checks whether operation-blocking maintenance overlaps the planned use of required equipment.
A is incorrect: Adding more entity types provides vocabulary but does not calculate risk or replace the need for an explicit rule.
C is incorrect: A data agent answers questions using the provided business context, but it does not remove the need for an explicit risk rule.
D is incorrect: A relationship describes how concepts connect, but it does not check maintenance status, blocking, or schedule overlap.
Q037 - Question
An analyst has created an ontology item. The analyst now needs to start at maintenance order M001 and traverse relationships to find the dependent task and project. The analyst also wants to write GQL queries for more complex analysis, without data duplication or ETL. Which Fabric IQ item should the analyst use?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Graph in Microsoft Fabric
- B. An operations agent
- C. Planning
- D. A data agent
A is correct.
Explanation: The evidence states that when you create an ontology item, a managed graph is automatically created from your ontology's entity types and relationships. You query it using GQL, and Graph in Microsoft Fabric operates directly on OneLake without requiring data duplication or ETL.
B is incorrect: An operations agent monitors real-time data and recommends or triggers actions based on rules, rather than providing a GQL query interface.
C is incorrect: Planning enables collaborative planning, forecasting, and reporting, rather than traversing relationships with GQL.
D is incorrect: A data agent answers natural language questions and generates SQL, DAX, or KQL, not GQL queries that you write.
Q038 - Question
A semantic model has a Sales table related to a Customer table. The model contains the columns Customer City and Store City, and neither column has a description. When a user asks for sales by customer location, Copilot sometimes groups by Store City. You need to improve the semantic model so Copilot selects the correct field. What should you do?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Add "customer location" as a synonym for Store City.
- B. Hide Customer City so that only one city field remains visible.
- C. Rename the Customer table to dim_customer_v2 so that the name shows how the table is built.
- D. Add a description to each column that states whose location the value represents.
D is correct.
Explanation: Names help Copilot find possible fields, and descriptions help Copilot choose the right field. A column description states what the value means and which scope applies. A description that says Customer City is the customer's location and Store City is the store's location tells Copilot to use Customer City for customer location questions.
A is incorrect: Synonyms are for different words that users use for a clear field. Mapping "customer location" to Store City would point Copilot to the wrong field and does not fix unclear design.
B is incorrect: Hiding Customer City removes the field that the question needs. Hide technical fields that do not help answer the question, and keep the business fields visible.
C is incorrect: dim_customer_v2 describes how the table is built. Table names should use business terms, such as Customer, so that Copilot can follow the business path for the question.
Q039 - Question
A team already uses a well-structured Power BI semantic model in production for trusted metrics and reporting. The team now needs shared entity definitions and relationship exploration across business domains. The team wants to build on the established definitions. Which approach should the team use?
Domain: Implement and manage semantic models (25–30%) Type: Single choice
- A. Replace the semantic model with an ontology, because an ontology replaces a semantic model for reporting.
- B. Copy the semantic model data into a new lakehouse, because Fabric IQ requires a duplicate of the data before it can bind.
- C. Build the ontology manually from lakehouse data only, because a semantic model cannot be used as a starting point.
- D. Keep the semantic model for metrics, generate an initial ontology from it, and then refine keys, bindings, and relationship names.
D is correct.
Explanation: The evidence states that an ontology complements a semantic model rather than replacing it. You can generate an initial ontology from an existing semantic model, which creates entity types, properties, and relationship types, and then refine it by verifying keys and bindings.
A is incorrect: An ontology complements a semantic model and does not replace it for trusted metrics and reporting.
B is incorrect: Fabric IQ references data in place and does not move or duplicate it.
C is incorrect: Building from OneLake data is for cases where no semantic model exists or where you want full control over the design. A semantic model is a supported starting point.
Q040 - Question
You built an ontology manually. Equipment attributes such as EquipmentId, PatientId, and EquipmentType are in a lakehouse table. VitalSignsReadings, with EquipmentId, Timestamp, HeartRate, and OxygenSaturation, is in an eventhouse. You need the VitalSignEquipment entity type to expose both the attributes and the readings. Which TWO actions should you take?
Domain: Implement and manage semantic models (25–30%) Type: Multi-select
- A. Create the static data binding for VitalSignEquipment from the lakehouse table first.
- B. Create the time series binding first so the readings create the equipment entities.
- C. Add a time series binding to the VitalSignsReadings table, select Timestamp as the timestamp column, and use EquipmentId as the static linking property.
- D. Add a second static data binding to VitalSignEquipment that points to the eventhouse table.
A and C are correct.
Explanation: The static binding creates the equipment entities, and the time series binding attaches readings to them. The system uses EquipmentId from the static binding to match each reading to the correct equipment entity. The time series binding requires a timestamp column. In it, EquipmentId is the static linking property, and HeartRate and OxygenSaturation are the Timeseries properties.
B is incorrect: Time series data needs existing entities to attach to. Without the static binding, the system has no entity to attach readings to.
D is incorrect: Each entity type supports exactly one static data binding. Eventhouse readings are added through a time series binding.
Q041 - Question
A Fabric admin adds descriptions to several items. The admin then opens the Govern section in the OneLake catalog and sees that the tenant-wide insights do not yet reflect the changes. What explains this behavior?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Tenant-wide insights are available only to data owners, so the admin sees a partial view.
- B. Descriptions appear in the Govern section only after the items are endorsed.
- C. Insights appear only after the admin filters the view by domain.
- D. Tenant-wide insights for Fabric admins refresh daily from admin monitoring storage, so a short delay can occur.
D is correct.
Explanation: Fabric admins see tenant-wide insights that refresh daily from admin monitoring storage. A short delay can occur between a change and when it appears in the Govern section.
A is incorrect: Fabric admins see tenant-wide insights. Data owners see insights scoped to the items they own.
B is incorrect: Items without descriptions are one of the governance gaps the Govern section highlights. Endorsement is not required before descriptions are reflected.
C is incorrect: You can filter both views by domain to focus on a business area. Filtering is optional and does not control when insights refresh.
Q042 - Question
The owner of a production lakehouse finds that a user who changed teams still has write access. The owner also needs to limit another group to specific tables and folders in the lakehouse. The owner wants to review and change access from one place without opening each item. What should the owner use?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Use the reports in the Govern section to review label coverage and endorsement status.
- B. Use the Secure section to audit workspace roles and to create or edit OneLake security roles.
- C. Apply Promoted endorsement to the lakehouse to limit who can use it.
- D. Add a detailed description to the lakehouse that lists the approved users.
B is correct.
Explanation: The Secure section shows which users and groups have access to each workspace and at what level. OneLake security roles control access to specific tables and folders within items. Role management lets you audit user access and create, edit, or delete security roles from one place.
A is incorrect: The Govern section reports on governance posture such as label coverage, endorsement status, and data freshness. It does not manage access.
C is incorrect: Endorsement signals trust. It does not control who can open or use the data.
D is incorrect: A description helps consumers evaluate an item in the catalog. It does not change workspace roles or access to tables and folders.
Q043 - Question
Consumers need to use the OneLake catalog to filter items by refresh frequency and to find items that belong to the Finance business area. Which two actions support this requirement? Select two.
Domain: Maintain a data analytics solution (25–30%) Type: Multi-select
- A. Apply Promoted endorsement to every item so that consumers can filter by refresh frequency.
- B. Have data owners apply tags that identify refresh frequency to the items.
- C. Apply Master data endorsement to a Power BI dashboard to group it with Finance items.
- D. Have a Fabric admin create a Finance domain and assign the relevant workspaces to it.
B and D are correct.
Explanation: Tags categorize individual items by grouping such as refresh frequency, and consumers can search and filter by tags in the catalog. Domains group workspaces by business area, and Fabric admins create domains and assign workspaces to them.
A is incorrect: Endorsement signals trust. It does not categorize items by refresh frequency.
C is incorrect: Master data endorsement applies only to items that contain data, so it cannot be applied to a dashboard. It also signals an authoritative source, not a business area grouping.
Q044 - Question
A Patients table in a Fabric warehouse contains a MedicalHistory column. Receptionists must read all other columns in the table. Receptionists must receive a permission error if they select MedicalHistory. Which approach should you use?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Grant SELECT on the table to the Receptionist role, then deny SELECT on the MedicalHistory column to that role.
- B. Apply the default() masking function to the MedicalHistory column.
- C. Create a filter predicate and a security policy on the Patients table.
- D. Deny SELECT on the whole Patients table to the Receptionist role.
A is correct.
Explanation: Column-level security uses GRANT and DENY. You grant SELECT on the table, then deny SELECT on the sensitive column to roles that shouldn't see it. Users in those roles can read the rest of the table and receive an error if they select the restricted column.
B is incorrect: Dynamic data masking returns a masked value. It does not produce a permission error, and masked users can still query the column.
C is incorrect: A filter predicate and security policy implement row-level security. They filter rows, not columns.
D is incorrect: Denying SELECT on the whole table blocks the other columns that receptionists must read.
Q045 - Question
A data analyst has write permission on a semantic model but is not an authorized reviewer. The analyst has tested the model and wants to signal that it is ready for team-level use. Which action can the analyst take?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Apply Promoted endorsement to the semantic model.
- B. Apply Certified endorsement to the semantic model.
- C. Apply Master data endorsement to the semantic model.
- D. Apply Promoted endorsement to a Power BI dashboard that uses the model.
A is correct.
Explanation: Promoted means an item is tested and ready for team-level use. Any user with write permissions can apply it, so the analyst does not need to be an authorized reviewer.
B is incorrect: Certified means the item meets organizational quality standards. Only authorized reviewers can apply it.
C is incorrect: Master data marks the authoritative source for core data. Only authorized reviewers can apply it, and it applies only to data items.
D is incorrect: Power BI dashboards cannot be promoted or certified. The endorsement must be applied to an eligible item such as the semantic model.
Q046 - Question
An application reads sales data from a Fabric warehouse only through the stored procedure dbo.usp_GetSalesData. You must apply the principle of least privilege to the application's identity. Which permissions should you configure?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. GRANT SELECT on dbo.Sales and GRANT EXECUTE on dbo.usp_GetSalesData.
- B. GRANT CONTROL on dbo.usp_GetSalesData.
- C. GRANT SELECT on all tables in the warehouse.
- D. GRANT EXECUTE on dbo.usp_GetSalesData and DENY SELECT on dbo.Sales.
D is correct.
Explanation: An application that reads data through stored procedures needs EXECUTE permission on those procedures, not SELECT on the underlying tables. Granting EXECUTE and denying direct table access enforces a controlled data access pattern.
A is incorrect: Granting SELECT on dbo.Sales gives the application direct table access that it does not need.
B is incorrect: CONTROL gives full ownership-level rights over the procedure. The application only needs to run it.
C is incorrect: SELECT on all tables is broad access. Least privilege limits the impact if a credential is compromised or a user runs a destructive query.
Q047 - Question
A lakehouse in your workspace contains employee salary data. Your organization's security team has not yet configured sensitivity labels. You need to make the sensitivity of the lakehouse visible to consumers now. What should you do?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Apply a Highly Confidential sensitivity label to the lakehouse to enforce access restrictions.
- B. Apply Certified endorsement to the lakehouse to show that it contains sensitive data.
- C. Add a clear item description, follow a workspace naming convention, and apply tags that indicate sensitivity.
- D. Rely on the Viewer role to prevent users from exporting the data.
C is correct.
Explanation: Sensitivity labels require configuration by your organization's security team. Until that is done, you can make sensitivity visible by using clear item descriptions, workspace naming conventions, and tags. These methods do not enforce access controls, but they give consumers information about the data.
A is incorrect: You cannot apply a label that the security team has not configured. Labels can enforce access restrictions only after they are set up.
B is incorrect: Endorsement signals that an item is trusted. It does not describe sensitivity.
D is incorrect: Viewer access can still allow users to export data to Excel. It does not make sensitivity visible to consumers.
Q048 - Question
You share a Fabric lakehouse with a business analyst. The analyst must query lakehouse data from the SQL analytics endpoint by using T-SQL and must create Power BI reports on the default semantic model. The analyst does not use Spark or OneLake APIs. Which two permissions should you grant? Select two.
Domain: Maintain a data analytics solution (25–30%) Type: Multi-select
- A. Read permission only
- B. Read all SQL endpoint data
- C. Read all Apache Spark and subscribe to events
- D. Build reports on the default semantic model
B and D are correct.
Explanation: Read all SQL endpoint data lets the recipient read data from the SQL analytics endpoint by using T-SQL. Build reports on the default semantic model lets the recipient create Power BI reports on that model. Together they cover both requirements.
A is incorrect: Read permission is always granted when you share a lakehouse. It lets the recipient see item metadata and view associated reports, but it does not grant access to underlying data in SQL or OneLake.
C is incorrect: This permission gives access to lakehouse data through Apache Spark and OneLake APIs, which the analyst does not use. It also adds the recipient to the DefaultReader OneLake security role, which gives read access to all data.
Q049 - Question
A data engineer has the Contributor role in a Fabric workspace. The engineer no longer creates Fabric items and now only needs to read data from one lakehouse in that workspace. You must follow the principle of least privilege. What should you do?
Domain: Maintain a data analytics solution (25–30%) Type: Single choice
- A. Keep the Contributor role and add the Viewer role
- B. Change the engineer to the Admin role
- C. Remove the engineer from the Contributor role and share the lakehouse with the required item permissions
- D. Change the engineer to the Viewer role
C is correct.
Explanation: Item permissions let you share a specific item and choose what the recipient can do. After you remove the Contributor role, the engineer can view and query only that lakehouse and nothing else in the workspace.
A is incorrect: The Contributor role would stay in place. It applies to every item in the workspace, not only the lakehouse.
B is incorrect: The Admin role grants more access than the Contributor role. It applies to all content in the workspace and includes permission management.
D is incorrect: A workspace role applies to all items in the workspace. The Viewer role also gives no access to the underlying OneLake data by default, so it does not meet the requirement to read lakehouse data.
Q050 - Question
A shared Sales table in a Fabric warehouse uses row-level security so that each salesperson sees only their own rows. A security review finds that a user could write a crafted query that forces a divide-by-zero error to reveal values in filtered rows. Which two actions reduce this risk? Select two.
Domain: Maintain a data analytics solution (25–30%) Type: Multi-select
- A. Rely on the filter predicate alone, because the SQL engine enforces it for every query.
- B. Combine row-level security with column-level security and dynamic data masking.
- C. Grant ALTER ANY SECURITY POLICY to all users who query the table.
- D. Restrict ALTER ANY SECURITY POLICY to trusted users and monitor security policy changes.
B and D are correct.
Explanation: Row-level security is vulnerable to side-channel attacks, where a crafted query reveals filtered values through signals such as errors. To reduce the risk, combine row-level security with column-level security and dynamic data masking. Also restrict ALTER ANY SECURITY POLICY to trusted users and monitor security policy changes.
A is incorrect: The SQL engine enforces the predicate for every query, but side-channel queries can still reveal values. You need additional controls.
C is incorrect: Granting ALTER ANY SECURITY POLICY broadly lets more users change security policies. You should restrict this permission to trusted users.