Q001 - Question
In a Fabric Spark notebook, you use a Spark SQL query to aggregate product counts by category. You need a bar chart with a custom figure size, custom grid lines, and rotated axis labels. The built-in chart view does not give you enough control over formatting. What should you do?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Convert the result to a Pandas dataframe by using toPandas, and then create the chart with Matplotlib.
- B. Change the results view to a chart and adjust the chart properties.
- C. Pass the Spark dataframe directly to Matplotlib without converting it.
- D. Save the result as a Parquet file, and then reload it into a Spark dataframe.
A is correct.
Explanation: When you need more control over formatting than the built-in charts provide, use a graphics package in code. Matplotlib requires a Pandas dataframe, so use the toPandas method to convert the query result before you create the chart.
B is incorrect: The built-in chart view is useful for quickly summarizing data visually. Use a graphics package when you need more control over the formatting.
C is incorrect: Matplotlib requires data in a Pandas dataframe rather than a Spark dataframe, so you must convert the result first.
D is incorrect: Saving and reloading data in Parquet format does not create a chart or give you control over chart formatting.
Q002 - Question
A source system delivers a CSV file named product-data.csv to the Files/data folder of a lakehouse. The file has no header row. The columns are ProductID, ProductName, Category, and ListPrice. You use PySpark in a notebook to load the file into a dataframe. You need the dataframe to have these column names and data types. What should you do?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Load the file with header=True and use the first data row as the column names.
- B. Load the file, and then write the dataframe with the partitionBy method.
- C. Load the file, and then use the select method to choose the four columns.
- D. Define a StructType schema for the four columns and load the file with that schema and header=False.
D is correct.
Explanation: When a data file does not contain column names, you can specify an explicit schema. Define the columns and data types with StructType, and then pass the schema when you load the file with header=False. An explicit schema can also improve performance.
A is incorrect: Setting header=True is for files where the first row contains the column names. Your file has no header row, so a data row would be treated as the header.
B is incorrect: The partitionBy method controls how a dataframe is saved to folders. It does not define column names or types when you load a file.
C is incorrect: The select method returns a new dataframe that contains columns that already exist. It does not assign names or types to a file that has no header row.
Q003 - Question
In a Dataflow Gen2, you must split one source query into separate, smaller tables to create a star schema. You also have one query that is needed only for a one-time import and must not load to the destination. Which two actions should you take?
Domain: Ingest and transform data (30–35%) Type: Multiple choice
- A. Use the Data Preview pane to split the data into separate tables.
- B. Duplicate or reference the query for each table you need.
- C. Turn off Diagram view to prevent the one-time query from loading.
- D. Disable the load of the query that is needed only for the one-time import.
B and D are correct.
Explanation: In the Queries pane, you can duplicate or reference a query when you need multiple copies of the same data, such as splitting data into smaller tables for a star schema. You can also disable the load of a query when you need only a one-time import.
A is incorrect: The Data Preview pane shows only a subset of data so you can see how transformations affect it. It does not split data into tables.
C is incorrect: Diagram view shows how queries are connected and which transformations are applied. You can turn it on or off, but this does not control whether a query loads.
Q004 - Question
You must first extract and load raw data into a lakehouse. After the data is loaded, you must cleanse and transform it, and then offer the result as a curated semantic model for analysts who build reports. Which approach follows an ELT process?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Use a pipeline to extract and load the data into the lakehouse. Then create a Dataflow Gen2 that connects to the lakehouse data to cleanse and transform it.
- B. Create a Dataflow Gen2 to extract and transform the data, and then use a pipeline to load it into the lakehouse.
- C. Use a Dataflow Gen2 to extract and transform the data before it reaches any destination.
- D. Use a Dataflow Gen2 as a replacement for a data warehouse and skip the lakehouse.
A is correct.
Explanation: In an ELT process, a pipeline extracts and loads the data into a destination such as a lakehouse. A Dataflow Gen2 then connects to the lakehouse data to cleanse and transform it, and you can offer the dataflow as a curated semantic model.
B is incorrect: Extracting and transforming before loading is an ETL process, not an ELT process.
C is incorrect: Transforming before loading is an ETL order. The requirement is to load first and transform afterward.
D is incorrect: Dataflows aren't a replacement for a data warehouse, and the requirement is to load the data into a lakehouse first.
Q005 - Question
You are designing a data architecture using Dataflows Gen2 in Microsoft Fabric. You need to identify the limitations of Dataflows Gen2 to ensure they meet your security and architectural requirements. Which feature is unsupported in Dataflows Gen2?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Row-level security
- B. Scheduled data refreshes
- C. Integration with data pipelines
- D. Extracting data once for reuse
A is correct.
Explanation: Row-level security isn't supported in Dataflows Gen2. If analysts must see only specific rows, you need a different mechanism and cannot rely on the dataflow for this control.
B is incorrect: Dataflows can be run manually, on a refresh schedule, or as part of a data pipeline orchestration.
C is incorrect: Dataflows can be run as part of a data pipeline orchestration.
D is incorrect: Optimizing performance with dataflows enables extracting data once for reuse, reducing data refresh time for slower sources.
Q006 - Question
A retail company has stores in several countries. Each store provides data from a different source. The business requests a semantic model that consolidates these sources. You must make the data consistent, land the cleansed data in a destination, and avoid manually extracting and transforming data from every source. Which approach should you use?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Use a data pipeline with a Copy data activity to land the raw data directly into a semantic model.
- B. Create a Dataflow Gen2 that ingests and transforms the data, and then lands the cleansed data in a destination.
- C. Create a separate Dataflow Gen2 for each store and load them into individual semantic models.
- D. Connect reports directly to each store source and skip the transformation step.
B is correct.
Explanation: Use a Dataflow Gen2 to ingest and transform data from multiple sources and land the cleansed data in another destination. This gives you consistent data and removes the need to process each source by hand.
A is incorrect: A Copy data activity copies raw data but does not transform it to ensure consistency, and semantic models are not direct destinations for raw copy activities.
C is incorrect: Creating separate dataflows and individual semantic models does not consolidate the disparate data sources into a single semantic model as requested.
D is incorrect: Skipping transformation does not make the data consistent across stores, and it does not land cleansed data in a destination.
Q007 - Question
A Dataflow Gen2 ingests and transforms sales data and lands it in a Fabric data store. A stored procedure must run after the dataflow completes, and the data must refresh without anyone running the dataflow manually. What should you do?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Configure a refresh schedule on the Dataflow Gen2 and add a stored procedure step within the Power Query Online interface.
- B. Schedule a refresh for the dataflow and run the stored procedure separately using a Spark notebook.
- C. Create a pipeline that uses a Copy data activity to run the dataflow and the stored procedure.
- D. Add the dataflow to a pipeline, add an activity to run the stored procedure after it, and schedule the pipeline or use a trigger.
D is correct.
Explanation: Incorporate the dataflow into a pipeline to orchestrate extra activities, such as executing a stored procedure after the dataflow completes. A pipeline can be scheduled or activated by a trigger to run the dataflow, so the data refreshes without a manual run.
A is incorrect: Power Query Online in Dataflows Gen2 is used for data transformation, not for orchestrating post-load stored procedures.
B is incorrect: Scheduling the dataflow and running the stored procedure separately does not orchestrate the stored procedure to run automatically after the dataflow completes.
C is incorrect: A Copy data activity copies data; it does not execute a Dataflow Gen2 or a stored procedure.
Q008 - Question
A data engineer wrote a Python script that ingests and transforms files for a lakehouse. The script uses functions defined in a separate Python code file. The process must run on a schedule without interactive use. You need to configure how Spark runs the script in Microsoft Fabric. What should you do?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Create a notebook and use markdown cells to document the script.
- B. Create a temporary view of the transformed data in the Spark catalog.
- C. Create a Spark job definition that specifies the script, the reference file, and the lakehouse.
- D. Create a custom Spark pool that has autoscale enabled.
C is correct.
Explanation: A Spark job definition runs a script on demand or on a schedule as part of an automated process. You can specify a reference file that contains functions used by the script and a reference to the lakehouse that contains the data to process.
A is incorrect: Notebooks are intended for interactive exploration and analysis. Markdown cells document code but do not define a scheduled script run.
B is incorrect: A temporary view makes dataframe data queryable in the current session and is deleted at the end of the session. It does not run a script on a schedule.
D is incorrect: A custom Spark pool defines the compute nodes. It does not define the script, the reference file, or the schedule.
Q009 - Question
Your team uses one Microsoft Fabric workspace for several Spark workloads. One workload needs a specific Spark runtime version and a public library from the Python Package Index (PyPI). The other workloads must keep the default configuration. You need to define the runtime and library requirements for only the first workload. What should you do?
Domain: Ingest and transform data (30–35%) Type: Single choice
- A. Change the node family of the starter pool to memory optimized nodes.
- B. Create a custom environment that specifies the Spark runtime and installs the PyPI library.
- C. Enable high concurrency mode in the workspace settings.
- D. Enable the native execution engine by setting spark.native.enabled to true.
B is correct.
Explanation: A custom environment lets you specify the Spark runtime, install public libraries from PyPI, and set the Spark pool and configuration properties. Data engineers can then select that environment for the task that needs it, and other workloads keep the default configuration.
A is incorrect: The node family sets the type of virtual machines used for the nodes. It does not set the runtime version or install libraries.
C is incorrect: High concurrency mode shares Spark sessions across multiple users or processes. It does not define a runtime or install libraries.
D is incorrect: The native execution engine can improve query performance on Parquet and Delta data. It does not select a runtime or install libraries.
Q010 - Question
A data engineer loads product data into a Spark dataframe named df in a Fabric notebook. Analysts need the data to persist after the Spark session ends, to be stored in the Tables storage location in Delta format, and to be queried by using SQL code in a notebook cell. Which two actions should you take?
Domain: Ingest and transform data (30–35%) Type: Multiple choice
- A. Run df.createOrReplaceTempView("products_view") to make the data available to analysts.
- B. Run df.write.format("delta").saveAsTable("products") to save the dataframe as a managed table.
- C. Query the products table by using the %%sql magic in a notebook cell.
- D. Run spark.catalog.createExternalTable over a folder in the Files storage area.
B and C are correct.
Explanation: The saveAsTable method saves the dataframe as a table in the catalog. In Microsoft Fabric, data for managed tables is stored in the Tables storage location, and Delta is the preferred format. The %%sql magic runs SQL code in a notebook cell that queries objects in the catalog, and the result set is displayed as a table.
A is incorrect: A temporary view is deleted automatically at the end of the current session, so it does not meet the persistence requirement.
D is incorrect: An external table defines metadata in the catalog but gets its data from an external storage location, typically a folder in the Files area. It does not store the data in the Tables location.
Q011 - Question
Your organization uses Microsoft Fabric. A Fabric administrator must determine which warehouse processes are consuming capacity units (CUs) and whether the purchased capacity is being exceeded. Which approach should the administrator use?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. Query sys.dm_exec_sessions in the data warehouse and review the authenticated sessions.
- B. Install the Microsoft Fabric Capacity Metrics app and filter the interface to show only warehouse activity.
- C. Query queryinsights.long_running_queries and sort the results by median_total_elapsed_time_ms.
- D. Query queryinsights.frequently_run_queries and sort the results by number_of_runs.
B is correct.
Explanation: The Microsoft Fabric Capacity Metrics app is an app that an administrator can install in a Fabric environment and use to monitor capacity utilization. You can filter it to show only warehouse activity and observe utilization trends to determine what processes are consuming CUs and whether any throttling is occurring.
A is incorrect: sys.dm_exec_sessions returns information about authenticated sessions. It does not show CU consumption or throttling.
C is incorrect: queryinsights.long_running_queries returns details of query execution time. It does not show capacity utilization.
D is incorrect: queryinsights.frequently_run_queries returns details of frequently run queries. It does not show capacity utilization.
Q012 - Question
You want to tune query performance in a Fabric data warehouse. You need to find SQL commands that have run more than once and that have the longest median time to complete. Which approach should you use?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. Query sys.dm_exec_requests and order the results by total_elapsed_time descending.
- B. Query queryinsights.frequently_run_queries and order the results by number_of_runs descending.
- C. Query queryinsights.long_running_queries, filter on number_of_runs greater than 1, and order by median_total_elapsed_time_ms descending.
- D. Query queryinsights.exec_requests_history and filter on start_time for the previous hour.
C is correct.
Explanation: The queryinsights.long_running_queries view returns details of query execution time. It includes number_of_runs and median_total_elapsed_time_ms. You can filter on number_of_runs greater than 1 and sort by the median time to find commands that are repeatedly slow.
A is incorrect: sys.dm_exec_requests returns information about active requests only. It does not provide historical median completion times.
B is incorrect: queryinsights.frequently_run_queries ranks commands by how often they run and shows successful and failed runs. It does not rank by median completion time.
D is incorrect: queryinsights.exec_requests_history returns details of each completed query. A time filter on this view does not give aggregated median execution times for repeated commands.
Q013 - Question
A data analyst uses query insights views to review how often the following statements run in a Fabric data warehouse: SELECT * FROM sales WHERE orderdate > '01/01/2023' and SELECT * FROM sales WHERE orderdate > '12/31/2021'. The analyst also runs a query and then immediately checks the views for it. Which two statements should the analyst use to interpret the results? (Select two.)
Domain: Monitor and optimize an analytics solution (30–35%) Type: Multi-select
- A. The two statements are considered the same query because queries with predicates are parameterized and the parameterized statements match exactly.
- B. The views show each query as soon as it completes, regardless of concurrent workloads.
- C. The two statements are always counted as separate queries because the date values are different.
- D. Depending on concurrent workloads, queries can take up to 15 minutes to appear in the query insights views.
A and D are correct.
Explanation: Query insights views provide aggregated metrics by parameterizing queries that have predicates. Two statements are treated as the same query when the parameterized statements are an exact match, so the two sales queries are counted together. Queries can also take up to 15 minutes to appear in the views, so a query that was just run might not be listed yet.
B is incorrect: Depending on concurrent workloads, queries can take up to 15 minutes to be reflected in the views. Do not expect a query to appear immediately.
C is incorrect: The different date values do not make the queries separate. After parameterization, the two statements match exactly and are counted as the same query.
Q014 - Question
A Fabric administrator reviews the Microsoft Fabric Capacity Metrics app and sees that throttling occurs repeatedly during warehouse workloads. The administrator needs to interpret this result and decide what to do next. Which conclusion and action are supported?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. The warehouse queries are not parameterized. Rewrite the queries so that they use predicates.
- B. The warehouse sessions are not authenticated. Review the connections in sys.dm_exec_connections.
- C. The file operations to OneLake storage do not consume CUs. Stop monitoring storage activity.
- D. The processes require more capacity than the purchased capacity license provides. Use the utilization trends to optimize the capacity license.
D is correct.
Explanation: Throttling indicates that your processes require more capacity than is available within the constraints of your purchased capacity license. You can use the utilization trends in the Microsoft Fabric Capacity Metrics app to optimize the capacity license for your needs.
A is incorrect: Query parameterization is used so that query insights views can aggregate metrics. It is not a cause of throttling.
B is incorrect: Throttling is not an authentication condition. The DMVs describe connections, sessions, and requests, not capacity limits.
C is incorrect: In data warehouse workloads, CUs are consumed by data read and write activities. This includes the underlying file operations to OneLake storage, so storage activity still matters for cost.
Q015 - Question
Users report that reports built on a Fabric data warehouse are slow right now. You need a list of the requests that are currently running, with the login name and client network address of each user, ordered by how long each request has been executing. What should you do?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. Join sys.dm_exec_connections, sys.dm_exec_sessions, and sys.dm_exec_requests, filter on requests that have a status of running, and order by total_elapsed_time descending.
- B. Query queryinsights.exec_requests_history and filter on start_time for the previous hour.
- C. Query queryinsights.frequently_run_queries and order by number_of_runs descending.
- D. Open the Microsoft Fabric Capacity Metrics app and filter the interface to warehouse activity.
A is correct.
Explanation: The dm_exec DMVs return information about the current state of the data warehouse. Joining connections, sessions, and requests gives you the login name, client address, command, and elapsed time. Filtering on running requests and ordering by total_elapsed_time descending lists the longest-running active requests first.
B is incorrect: queryinsights.exec_requests_history returns details of completed SQL queries. Queries can take up to 15 minutes to appear, so it is not a view of current activity.
C is incorrect: queryinsights.frequently_run_queries returns historical, aggregated details about frequently run commands. It does not list requests that are running now.
D is incorrect: The Microsoft Fabric Capacity Metrics app shows capacity utilization trends and throttling. It does not return login names, client addresses, or elapsed time for active requests.
Q016 - Question
You share a lakehouse with a data scientist and grant only the Read permission. The data scientist has no workspace role. The data scientist must read lakehouse data from Spark notebooks and through OneLake APIs. Which additional permission should you grant when you share the lakehouse?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. Build reports on the default semantic model
- B. Read all SQL endpoint data
- C. The Viewer workspace role
- D. Read all Apache Spark and subscribe to events
D is correct.
Explanation: The Read permission lets the recipient see item metadata and view associated reports. It does not grant access to underlying data in SQL or OneLake. Read all Apache Spark and subscribe to events lets the recipient read lakehouse data through Apache Spark and OneLake APIs. This permission grants access to all data in the lakehouse by default and adds the recipient to the DefaultReader OneLake security role.
A is incorrect: This permission lets the user create Power BI reports on the default semantic model. It does not give access to data through Spark or OneLake APIs.
B is incorrect: This permission lets the user read data from the SQL analytics endpoint by using T-SQL. It does not cover Spark or OneLake API access.
C is incorrect: Viewers have no access to the underlying data stored in OneLake by default. The role also applies to the whole workspace, not one lakehouse.
Q017 - Question
You shared a lakehouse with a user and granted the Read all Apache Spark and subscribe to events permission. You then created a custom OneLake security role that grants Read access to two patient tables and added the user to it. The user can still read every table in the lakehouse through Spark. What should you do to restrict the user to the two tables?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. Remove the user from the DefaultReader role.
- B. Change the custom role permission from Read to ReadWrite.
- C. Add a row filter constraint to the custom role.
- D. Assign the user the Viewer workspace role.
A is correct.
Explanation: Sharing a lakehouse with the Read all Apache Spark and subscribe to events permission adds the recipient to the DefaultReader role, which grants read access to all data. When you restrict a user to a custom role, also remove the user from DefaultReader. Otherwise the user keeps full read access through the default role.
B is incorrect: ReadWrite lets users view and edit data in specific tables or folders. It does not remove the read access that DefaultReader grants.
C is incorrect: A row filter is an optional constraint on the data in the custom role. It does not change the access that the user has through DefaultReader.
D is incorrect: Viewers have no OneLake data access by default, but the user already has access through DefaultReader. Assigning the Viewer role does not remove that membership.
Q018 - Question
You develop Fabric notebooks in VS Code. A development workspace is already connected to the main branch of a Git repository. You must keep your work isolated from the shared workspace and test it in Fabric before merging. Which two actions should you perform? Select two.
Domain: Implement and manage an analytics solution (30–35%) Type: Multi-select
- A. Clone the repository on your local machine.
- B. Edit the notebooks in the shared workspace that is associated with the main branch.
- C. Disable Git integration for the development workspace.
- D. Push your changes to the remote repository, and test them by connecting your isolated branch to a separate workspace.
A and D are correct.
Explanation: When you use client tools, you clone the repository on your local machine and work in your own branch. When you are ready to test in Fabric, you push the changes to the remote repository and connect your isolated branch to a separate workspace. You then issue a pull request in Git to merge the changes into the main branch.
B is incorrect: Editing in the shared workspace affects all other workspace users. Development work should stay outside shared workspaces.
C is incorrect: Disabling Git integration removes the sync between the workspace and the repository. The development workspace stays connected to the main branch so that merged changes can be synchronized.
Q019 - Question
A data pipeline copies data, runs a Dataflow Gen2, and refreshes a semantic model. One activity in the pipeline is optional. The pipeline shows a status of Succeeded, but analysts report that some expected data is missing from a report. What should you do first?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. Treat the pipeline as healthy because the overall status is Succeeded.
- B. Review the status of each individual activity in the pipeline run.
- C. Check only the semantic model refresh, because it is the last step in the pipeline.
- D. Wait for the next scheduled run and compare the overall pipeline status again.
B is correct.
Explanation: A pipeline can show as succeeded even if an optional activity failed. Review the status of each activity in the pipeline to see the full picture and find the activity that caused the missing data.
A is incorrect: The overall pipeline status does not show whether an optional activity failed, so it can hide the problem.
C is incorrect: The pipeline contains several activities with dependencies. Checking only the last step can miss a failed earlier activity.
D is incorrect: Waiting delays the investigation. Analysts already report missing data, and the overall status will not show activity-level failures.
Q020 - Question
A team uses Development, Test, and Production workspaces. They need version control while they develop, and they need to promote content to Test and Production. They want to avoid potential Git synchronization conflicts when content is deployed across stages. Which configuration should you implement?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. Connect all three workspaces to the same Git branch, and synchronize each workspace after every change.
- B. Connect only the Test and Production workspaces to Git, and develop directly in Test.
- C. Do not use Git, and rely on the deployment pipeline to track code history.
- D. Connect only the Development workspace to Git, and use a deployment pipeline with a workspace assigned to each stage to promote content to Test and Production.
D is correct.
Explanation: You can connect only the Development workspace to a Git repository and branch. Git integration provides version control during development. The deployment pipeline then copies content from Development to Test and Production, which avoids potential Git synchronization conflicts across multiple stages.
A is incorrect: Connecting every stage to Git is the situation that can cause Git synchronization conflicts when content is deployed across stages.
B is incorrect: This configuration places version control on the pre-production and production stages instead of the development stage. Content changes should be made in the Development workspace and committed to Git.
C is incorrect: Deployment pipelines move content between stages. Git provides version control and code history, so a pipeline does not replace it.
Q021 - Question
A pipeline fails each morning because a schema change at the source breaks a table load. The on-call team works in Microsoft Teams. Which two actions should you perform to investigate the failure and notify the team?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Multiple choice
- A. Configure Activator to run the same pipeline again on every failure.
- B. Configure an Activator rule on the job failed event that posts a message to the on-call Teams channel.
- C. Wait for analysts to report missing data before checking the monitoring hub.
- D. Open the activity details in the monitoring hub to review the error message.
B and D are correct.
Explanation: An Activator rule can post a message to a Teams channel when a job fails, which gives the on-call team immediate visibility. The activity details show the error message and error codes, which help identify the root cause, such as a schema change.
A is incorrect: If a job failed because of a source schema change, running a pipeline again just fails again. Activator is not a substitute for investigating and fixing the root cause.
C is incorrect: Relying on manual checks lets failures go undetected until users report missing data. You should configure notifications so the right people know about problems immediately.
Q022 - Question
You are a workspace Contributor. You want to configure email alerts for scheduled item failures across the whole workspace from one place. You do not want to open each item individually. Which approach should you use?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. Create an Activator rule for each scheduled item in Real-Time hub.
- B. Enable workspace monitoring and query the Eventhouse database for failures each morning.
- C. Open Historical runs for each item and review the last 30 days of runs.
- D. Use the Schedule failures page in the monitoring hub, select Configure notifications, choose an item, and add recipients.
D is correct.
Explanation: The Schedule failures page in the monitoring hub lets you configure email alerts for scheduled item failures across the workspace from one place. You need at least the Contributor role in the workspace.
A is incorrect: Activator can send alerts, but it requires a separate rule for each source. It is not the centrally managed email option for scheduled failures.
B is incorrect: Workspace monitoring stores diagnostic logs for querying with KQL or SQL. It does not configure failure notifications, and a manual daily query does not send alerts.
C is incorrect: Historical runs show up to 30 days of run history for one item. They do not send notifications and require you to open each item.
Q023 - Question
A user has the Viewer workspace role. The user must view and edit data in two specific lakehouse tables without receiving a workspace write role. Which two actions should you take? Select two.
Domain: Implement and manage an analytics solution (30–35%) Type: Multiple choice
- A. Assign the user the Contributor workspace role.
- B. Have a workspace Admin or Member create a OneLake security role with ReadWrite permission on the two tables.
- C. Have a user with the Contributor workspace role create the OneLake security role.
- D. Add the user as a member of the OneLake security role.
B and D are correct.
Explanation: The ReadWrite permission in a OneLake security role lets users view and edit data in specific tables or folders without a workspace write role. Only workspace Admin and Member roles can create or modify OneLake security roles. The user must also be assigned to the role as a member to receive the access.
A is incorrect: Contributor gives full read and write access to all OneLake data. It is not limited to two tables and uses a workspace write role.
C is incorrect: Only workspace Admin and Member roles can create or modify OneLake security roles. A Contributor cannot create the role.
Q024 - Question
A shared development workspace is connected to the main branch in a Git repository. You develop in the Fabric web interface. You must build a new feature without affecting other workspace users or the main branch. What should you do?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. Edit the items directly in the shared workspace, and commit the changes to the main branch.
- B. Disconnect the shared workspace from Git, and edit the items without a branch.
- C. In the development workspace, select Source control and Branch out to new workspace. Make and commit your changes in the new workspace, and then create a pull request to the main branch.
- D. Use a deployment pipeline to copy the shared workspace content to another stage, and edit the items there.
C is correct.
Explanation: Branching out to a new workspace creates an isolated branch that syncs with the new workspace. You commit your changes to that branch and create a pull request in Git to merge them into the main branch. After the merge, the shared development workspace prompts you to synchronize the new content.
A is incorrect: Changes made directly in a shared workspace override and affect all other workspace users. Feature work should be in a dedicated branch instead of the main branch.
B is incorrect: Disconnecting from Git removes version control for the changes. An isolated workspace connected to its own branch keeps the work separate and tracked.
D is incorrect: Deployment pipelines promote content between stages such as development, test, and production. They do not create an isolated branch for feature development.
Q025 - Question
A data engineering team wants to query raw diagnostic logs and metrics from Fabric items by using KQL. They also want to correlate failures across pipelines and notebooks and build custom Real-Time dashboards. Which action meets these requirements?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. Enable workspace monitoring in the workspace settings on the Monitoring tab.
- B. Filter the monitoring hub by item type and add the Duration column.
- C. Select Historical runs for a single pipeline.
- D. Configure notifications on the Schedule failures page.
A is correct.
Explanation: When you enable workspace monitoring, Fabric creates an Eventhouse database in the workspace that collects diagnostic logs and metrics. You can query the raw log data with KQL or SQL, correlate failures across items, and build custom Real-Time dashboards. Workspace users need at least the Contributor role to access the data, and the data is retained for 30 days.
B is incorrect: Filters and column options change the view of recent activity in the monitoring hub. They do not store raw logs that you can query with KQL.
C is incorrect: Historical runs show up to 30 days of run history for one item. They do not support correlation across pipelines and notebooks.
D is incorrect: The Schedule failures page configures email alerts for scheduled item failures. It does not provide queryable log data.
Q026 - Question
Several developers each maintain a separate branch on their local machines for Fabric items. They merge to the main codebase only after their work is finished. Conflicts and bugs are found late and slow down releases. You need to reduce late-found conflicts. What should you do?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. Extend the time that developers work on separate branches so that each branch contains more finished work before the merge.
- B. Commit code frequently to a shared branch, and validate each merge with a build process and automated testing.
- C. Deploy each developer's changes directly to production so that conflicts appear in the live environment.
- D. Stop using version control, and make changes directly in one shared workspace.
B is correct.
Explanation: In continuous integration (CI), you commit code frequently to a shared branch or trunk. After the merge, a build process and automated testing validate the changes. Conflicts between new and existing code are identified earlier and are easier and faster to fix.
A is incorrect: Working on separate branches for longer periods increases the likelihood of conflicts and bugs that are found only in later stages.
C is incorrect: Deploying unvalidated changes to production does not detect conflicts early. Continuous delivery follows CI and deploys to a staging environment for more automated testing before production.
D is incorrect: Without version control, you cannot track revisions or revert to a prior version. Changes made directly in a shared workspace also affect all other workspace users.
Q027 - Question
A healthcare company stores patient data in a Fabric lakehouse. An analyst needs access to the lakehouse but must see only specific folders. The restriction must apply the same way when the analyst uses Spark, SQL, or OneLake APIs. Which approach should you use?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. Assign the analyst the Contributor workspace role.
- B. Create a OneLake security role that grants access to the specific folders.
- C. Share the lakehouse with the analyst and grant only the Read item permission.
- D. Configure T-SQL permissions on the SQL analytics endpoint.
B is correct.
Explanation: The evidence states that OneLake security adds control within an item by using security roles that grant access to specific tables or folders. These restrictions apply consistently across Spark, SQL, and OneLake APIs.
A is incorrect: A workspace role applies to all items in the workspace. The Contributor role gives broad access, not access limited to specific folders.
C is incorrect: Sharing an item gives access at the item level. Read permission alone does not grant access to specific folders, and it does not create a folder-level restriction.
D is incorrect: T-SQL permissions are compute permissions for the SQL analytics endpoint only. They do not restrict access that uses Spark or OneLake APIs.
Q028 - Question
A pipeline load sometimes fails and leaves partial data in a lakehouse. You want a cleanup notebook to run automatically when the job fails, without waiting for someone to read an alert. Which solution meets this requirement?
Domain: Monitor and optimize an analytics solution (30–35%) Type: Single choice
- A. Configure the Schedule failures page to email the data engineering team when the pipeline fails.
- B. Add the Submitted by and Refresh type columns to the monitoring hub view.
- C. Create an Activator alert from Real-Time hub for the job failed event of the pipeline, and set the action to run a Fabric activity that starts the cleanup notebook.
- D. Create an Activator alert for the job failed event of the pipeline, and set the action to send an email.
C is correct.
Explanation: Activator connects to Fabric job events through Real-Time hub. When the job failed condition is met, the Run a Fabric activity action can trigger a notebook, such as a cleanup notebook, without human action.
A is incorrect: Schedule failures sends email alerts. It does not run a follow-up job, so someone must read the email and respond.
B is incorrect: Column options change what the monitoring hub displays. They do not trigger any action when a job fails.
D is incorrect: The email action notifies people but does not run the cleanup notebook. A person must still start the cleanup.
Q029 - Question
A data engineer has the Contributor workspace role. The engineer no longer creates Fabric items and now only reads data from one lakehouse by using T-SQL through the SQL analytics endpoint. You must follow the principle of least privilege. What should you do?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. Keep the Contributor role and ask the engineer not to create items.
- B. Change the engineer to the Viewer workspace role.
- C. Remove the engineer from the Contributor role, and share the lakehouse with the Read all SQL endpoint data permission.
- D. Change the engineer to the Member workspace role.
C is correct.
Explanation: Item permissions let you share one lakehouse instead of granting workspace-wide access. The Read all SQL endpoint data permission lets the engineer read data from the SQL analytics endpoint by using T-SQL. The engineer can then view and query that lakehouse and nothing else in the workspace.
A is incorrect: The Contributor role applies to every item in the workspace. Asking the engineer not to create items does not remove that access.
B is incorrect: Viewers can see Fabric items listed in the workspace, but they have no access to the underlying data in OneLake by default. The Viewer role also applies at the workspace level.
D is incorrect: The Member role can create, view, modify, and share all content and data in the workspace. It gives more access than the Contributor role.
Q030 - Question
You build an automated process for a workspace that is connected to a Git branch. Before the process runs, it must determine which items have incoming changes and which items have changes that were not committed to Git. Which Fabric CI/CD REST API capability should the process use?
Domain: Implement and manage an analytics solution (30–35%) Type: Single choice
- A. The Git status API
- B. List Deployment Pipeline Stage Items
- C. Deploy Stage Content
- D. The API that updates the workspace with commits pushed to the connected branch
A is correct.
Explanation: The Git status API shows which items have incoming changes and which items have changes that were not yet committed to Git. Use it to check the state before you start other automated steps.
B is incorrect: List Deployment Pipeline Stage Items returns the supported items from the workspace assigned to a stage of a deployment pipeline. It is a deployment pipeline API, not a Git status check.
C is incorrect: Deploy Stage Content deploys items from a stage of a deployment pipeline. It performs a deployment and does not report Git state.
D is incorrect: This API updates the workspace with commits from the connected branch. It applies changes and does not report which items differ.