Courseiva

Microsoft Azure Data Engineer Associate DP-203 (DP-203) — Questions 151–225

509 questions total · 7pages · All types, answers revealed

Page 2

Page 3 of 7

Page 4
151
MCQeasy

You need to monitor the performance of an Azure Data Factory pipeline that copies data from an on-premises SQL Server to Azure Blob Storage. The pipeline runs on a self-hosted integration runtime. Which metric is most important to monitor to ensure the self-hosted IR is not a bottleneck?

A.Pipeline duration metric
B.Queue depth for the self-hosted IR
C.Number of active connections to the IR
D.Data read and data written metrics for the pipeline
AnswerB

Queue depth measures pending requests awaiting a free self-hosted integration runtime node, so a rising value directly signals the IR cannot keep pace with copy activity demand. This exposes the bottleneck constraint, whereas CPU or memory alone may not reflect queued work.

Why this answer

The self-hosted integration runtime (IR) queue depth metric indicates the number of activities waiting to be processed by the IR. A consistently high or increasing queue depth signals that the IR cannot keep up with the workload, making it a bottleneck. Monitoring this metric allows proactive scaling or optimization.

Exam trap

DP-203 often tests the distinction between pipeline-level metrics (duration, data read/written) and IR-specific metrics (queue depth, CPU); candidates may pick duration as a proxy for IR performance.

How to eliminate wrong answers

Option A is wrong because pipeline duration is an end-to-end metric that can be affected by many factors (source, sink, network), not specifically the IR. Option C is wrong because active connections do not directly indicate IR saturation; the IR can handle many connections if not CPU/memory bound. Option D is wrong because data read/written metrics reflect throughput but not whether the IR is the limiting factor; they are outcomes, not bottleneck indicators.

152
MCQeasy

A data engineer needs to store CSV files containing customer data in Azure Blob Storage. The files must be encrypted at rest using a customer-managed key stored in Azure Key Vault. What should they configure?

A.Azure Disk Encryption
B.Azure Storage Firewall
C.Azure Storage Service Encryption (SSE) with customer-managed keys
D.Azure Information Protection
AnswerC

Azure Storage Service Encryption with customer-managed keys wraps the account's data encryption key with a key held in Azure Key Vault, so blob data is encrypted at rest under organisational control. This meets the customer-managed key constraint for the CSV files.

Why this answer

Azure Storage Service Encryption (SSE) for Blob Storage encrypts data at rest automatically. By choosing customer-managed keys (CMK) stored in Azure Key Vault, the customer retains control over the encryption keys, meeting the requirement for customer-managed key encryption at rest. SSE with CMK is the correct service for encrypting blobs with a key the customer manages.

Exam trap

The trap here is confusing Azure Disk Encryption (which encrypts VM disks) with Azure Storage Service Encryption (which encrypts blob data), leading candidates to select Option A when the requirement is for blob-level encryption with customer-managed keys.

How to eliminate wrong answers

Option A is wrong because Azure Disk Encryption uses BitLocker or DM-Crypt to encrypt OS and data disks of virtual machines, not the data stored in Azure Blob Storage. Option B is wrong because Azure Storage Firewall controls network access to the storage account via IP rules and virtual network rules, it does not provide encryption at rest. Option D is wrong because Azure Information Protection is a classification and labeling solution for documents and emails, not an encryption mechanism for data at rest in Azure Blob Storage.

153
Multi-Selecthard

You are implementing a medallion architecture in Azure Databricks. The silver layer must contain deduplicated, conformed records, and the gold layer must serve aggregated reporting tables. You need to choose Delta Lake operations that support incremental, idempotent updates as new bronze files arrive. Which two operations should you use? (Choose two.)

Select 2 answers
A.Use CREATE OR REPLACE TABLE AS SELECT to rebuild the silver table from all bronze files each run
B.Stream bronze files into the silver table with Structured Streaming and foreachBatch applying MERGE
C.Write the gold aggregates with overwrite mode partitioned by report date
D.OPTIMIZE the silver table with ZORDER BY the business key after each load
E.MERGE INTO the silver table using the bronze staging data matched on a business key
AnswersB, E

Structured Streaming with foreachBatch lets each micro-batch run a MERGE against the silver table, combining incremental ingestion with idempotent upserts keyed on a business key. Checkpointing tracks processed offsets so already-consumed files are not reprocessed, and the MERGE guarantees that any replay converges to the same state. This matches the incremental, idempotent requirement precisely.

Why this answer

Incremental, idempotent updates in a medallion pipeline rely on keyed upserts rather than full rebuilds. MERGE INTO delivers atomic, key-based convergence, and Structured Streaming with foreachBatch applies that same MERGE per micro-batch while checkpointing progress. Together they let new bronze files flow into silver without duplication, and the gold aggregates can then be computed from the conformed silver data.

Exam trap

The trap here is equating file compaction or full-table rebuilds with idempotent incremental processing, when only keyed upserts provide that guarantee.

154
MCQeasy

An organization is using Azure Synapse Analytics and wants to implement column-level security to restrict access to sensitive columns. Which feature should they use?

A.Dynamic data masking
B.Azure Purview
C.Column-level security using GRANT
D.Row-level security
AnswerC

Column-level security in Azure Synapse Analytics is enforced through T-SQL GRANT statements, letting you deny SELECT on specific columns while permitting access to the rest of the table. This directly satisfies the requirement to restrict sensitive columns, unlike object-level permissions or dynamic data masking, which obscures values rather than blocking access.

Why this answer

Column-level security in Azure Synapse Analytics is implemented using GRANT statements on specific columns, restricting access to sensitive columns. Option A is incorrect because dynamic data masking obfuscates data at query time but does not prevent access. Option B is incorrect because Azure Purview is a data governance service, not for access control.

Option D is incorrect because row-level security filters rows, not columns.

155
MCQmedium

You are using Azure Data Lake Storage Gen2 as the data lake for your organization. You need to process files in the 'incoming' folder using a scheduled Azure Databricks notebook. After processing, the files should be moved to the 'processed' folder. The files are large (up to 10 GB) and you want to minimize the time to move them. Which approach should you use?

A.Use the Azure Databricks dbutils.fs.mv() to move the file.
B.Use Azure Data Factory with a Copy activity to move the file, then delete the source.
C.Change the file's metadata to update its directory path.
D.Use the Azure Databricks dbutils.fs.cp() to copy the file to the processed folder, then delete the original.
AnswerA

The `dbutils.fs.mv()` command performs a metadata rename operation within the same ADLS Gen2 account, so no file data is copied. This satisfies the requirement to minimise move time for files up to 10 GB, since relocating between the `incoming` and `processed` folders is near-instantaneous rather than proportional to file size.

Why this answer

`dbutils.fs.mv()` performs a metadata-only rename operation on Azure Data Lake Storage Gen2, which is instantaneous regardless of file size. This avoids any data movement, making it the fastest approach for moving large files (up to 10 GB) between folders within the same storage account.

Exam trap

The trap here is that candidates often assume moving large files requires copying, but Azure Data Lake Storage Gen2's hierarchical namespace enables instant metadata-only renames, making `dbutils.fs.mv()` the optimal choice.

How to eliminate wrong answers

Option B is wrong because Azure Data Factory Copy activity physically copies the file data across folders, which is slower and incurs additional read/write costs, even though it can delete the source afterward. Option C is wrong because Azure Data Lake Storage Gen2 does not support moving files by changing metadata; directory paths are part of the file's hierarchical namespace and cannot be updated via metadata alone. Option D is wrong because `dbutils.fs.cp()` performs a full data copy, which is time-consuming for large files, and then requires an explicit delete, adding unnecessary overhead compared to a rename.

156
MCQhard

You have an Azure Data Factory pipeline that copies data from an on-premises SQL Server to Azure Data Lake Storage Gen2. The pipeline uses a self-hosted integration runtime. You need to ensure that data is encrypted in transit and that the integration runtime authenticates to the on-premises SQL Server using Windows authentication. What should you configure?

A.Use Azure ExpressRoute to connect to the on-premises network and configure the linked service to use SQL authentication.
B.Set up a VPN gateway between Azure and the on-premises network and use a service principal for authentication.
C.Configure the self-hosted integration runtime to use a managed identity and enable Always Encrypted on the SQL Server.
D.Enable SSL encryption on the SQL Server connection and configure the linked service to use Windows authentication with a domain account.
AnswerD

To encrypt data in transit between the self-hosted integration runtime and the on-premises SQL Server, you must enable SSL/TLS on the SQL Server connection by setting Encrypt=True in the connection string. For Windows authentication, the linked service must use a domain account with the necessary permissions. This combination ensures both secure transmission and proper authentication, meeting the requirements.

Why this answer

For a self-hosted integration runtime copying from on-premises SQL Server, data in transit is encrypted by enabling SSL on the SQL Server connection (Encrypt=True). Windows authentication requires a domain account configured in the linked service. Combining these ensures secure transmission and proper authentication.

The other options either do not provide the necessary encryption, use incompatible authentication methods, or address network-level security instead of the application-level requirements.

Exam trap

The trap here is confusing network-level encryption (VPN, ExpressRoute) with application-level encryption (SSL/TLS) and assuming that Azure AD authentication works for on-premises SQL Server.

157
Drag & Dropmedium

Drag and drop the steps to set up Azure Purview for data cataloging and lineage tracking into the correct order.

Drag or tap steps into the slots.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

First create the Purview account, then register sources, scan them, set classifications, and finally explore the catalog.

158
MCQhard

You are implementing a real-time analytics solution using Azure Stream Analytics. The job ingests data from Azure Event Hubs and must output to an Azure SQL Database. You need to ensure that the job can handle out-of-order events and produce accurate aggregations over 5-minute windows. Which setting should you configure?

A.Set the 'Late arrival tolerance' to 5 minutes and use a Sliding Window of 5 minutes.
B.Set the 'Event ordering' to 'Adjust' and use a Session Window with a 5-minute timeout.
C.Set the 'Out-of-order tolerance' to 0 and use a Hopping Window of 5 minutes with a 1-minute hop.
D.Set the 'Out-of-order tolerance' to 5 minutes and use a Tumbling Window of 5 minutes.
AnswerD

The out-of-order tolerance allows events to be accepted up to 5 minutes late, and a Tumbling Window aggregates events into non-overlapping 5-minute intervals. This combination ensures that late events are included in the correct window, producing accurate aggregations.

Why this answer

To handle out-of-order events and aggregate over fixed 5-minute windows, configure the out-of-order tolerance to 5 minutes and use a Tumbling Window. The tolerance allows late events to be processed, and the Tumbling Window provides non-overlapping, fixed-duration aggregations. Other window types or settings do not meet both requirements simultaneously.

Exam trap

The trap here is mixing up out-of-order tolerance with late arrival tolerance, and choosing overlapping or dynamic windows instead of the fixed Tumbling Window.

159
MCQmedium

You are designing a storage solution for a financial analytics platform that ingests CSV files into Azure Data Lake Storage Gen2. Analysts run complex T-SQL queries against the data using Azure Synapse Analytics serverless SQL pool. You need to minimize query cost and improve performance. What should you do?

A.Store the CSV files in a single folder and create a view that selects all columns.
B.Use Azure Blob Storage instead of Azure Data Lake Storage Gen2.
C.Convert the CSV files to Parquet format and partition the data by date.
D.Enable Azure Synapse Link for Azure Cosmos DB.
AnswerC

Parquet is a columnar format that enables column pruning and predicate pushdown, reducing the amount of data scanned by serverless SQL queries. Partitioning by date further limits the data read when queries filter on date, directly lowering cost and improving performance. This is the recommended approach for analytical workloads in Azure Synapse serverless SQL pools.

Why this answer

Serverless SQL pool charges based on data processed. Converting CSV to Parquet, a columnar format, allows queries to read only needed columns and push down filters, reducing data scanned. Partitioning by date further minimizes data read when queries filter on date.

Together, these changes significantly lower cost and improve performance for analytical queries over file data in Data Lake Storage Gen2.

Exam trap

The trap here is assuming that simply changing the storage service or adding a view will optimize query cost, when the real gains come from using a columnar format and partitioning the data.

160
MCQeasy

Your team runs Azure Data Factory pipelines that must copy files from an on-premises file share to Azure Data Lake Storage Gen2 on a nightly schedule. The on-premises network blocks inbound connections and the data must not be exposed to the public internet. You need to enable connectivity without opening firewall ports. What should you deploy?

A.A self-hosted integration runtime installed on a machine in the on-premises network.
B.An Azure ExpressRoute circuit provisioned through a connectivity provider.
C.An Azure VPN Gateway with a site-to-site connection to the on-premises network.
D.An Azure integration runtime with a managed virtual network enabled.
AnswerA

A self-hosted integration runtime runs inside the on-premises network and initiates outbound connections to Azure over HTTPS, so no inbound firewall ports are required. It performs the copy from the file share and transfers data to Data Lake Storage Gen2, satisfying the connectivity and exposure constraints. Data Factory dispatches activities to this runtime rather than reaching the share directly.

Why this answer

A self-hosted integration runtime is installed inside the on-premises network and opens only outbound connections to Azure, so the firewall needs no inbound rules. It executes the copy from the file share and writes to Data Lake Storage Gen2, giving Data Factory a reachable execution host without exposing the internal share to the internet.

Exam trap

The trap here is assuming that any private network connection such as a VPN or ExpressRoute also provides the execution host, when the runtime itself is what reads the on-premises file share.

161
MCQmedium

You manage an Azure Synapse Analytics workspace. A dedicated SQL pool contains a table with a column named CustomerEmail that stores email addresses. You need to ensure that users who are not members of the DataPrivacy role see only a masked version of the email addresses when they query the table, while members of DataPrivacy see the actual values. The solution must minimize administrative effort. What should you do?

A.Enable Always Encrypted with a column encryption key and configure the DataPrivacy role as the only role with access to the key.
B.Create a dynamic data masking rule on the CustomerEmail column using the email() masking function and grant UNMASK to the DataPrivacy role.
C.Apply a column-level security policy using GRANT SELECT ON the CustomerEmail column to the DataPrivacy role.
D.Implement row-level security with a predicate function that filters rows based on the user's role.
AnswerB

Dynamic data masking applies a masking rule to the column so that non-privileged users see masked data, while users with the UNMASK permission see the actual values. This directly meets the requirement with minimal administrative effort because the masking rule and UNMASK grant are set once and apply to all queries.

Why this answer

Dynamic data masking is designed to limit sensitive data exposure by masking it to non-privileged users. Applying an email() mask to the CustomerEmail column ensures that users without the UNMASK permission see a masked format, while granting UNMASK to the DataPrivacy role allows those members to see the actual values. This approach requires only a one-time configuration and no changes to queries or applications.

Exam trap

The trap here is confusing dynamic data masking with column-level security or encryption, which control access rather than present masked data to unauthorized users.

162
MCQmedium

You are reviewing a script to create an external data source in Azure Synapse Analytics serverless SQL pool. Based on the exhibit, what is the purpose of the SAS token?

A.To provide read access to the container for querying data.
B.To provide write access to the container for storing query results.
C.To encrypt the connection between the serverless pool and storage.
D.To authenticate the user to the serverless SQL pool.
AnswerA

The SAS token supplies delegated, time-limited credentials appended to the external data source location, letting the serverless SQL pool authenticate to the storage container. Without it, queries against the external data source would fail authorisation, so it grants the read access needed for querying.

Why this answer

In Azure Synapse Analytics serverless SQL pool, an external data source pointing to Azure Storage requires a SAS token to provide read access to the container so that queries can read the data. The SAS token grants limited access rights without exposing the account key, and it is used in the CREATE EXTERNAL DATA SOURCE statement to authenticate and authorize access to the storage.

Exam trap

DP-203 often tests the purpose of SAS tokens in external data sources; candidates might confuse SAS tokens with account keys or think they provide write access, but they are primarily for delegated read access.

How to eliminate wrong answers

Option B is wrong because the SAS token is used for read access to query data, not for write access to store query results; serverless SQL pool query results are typically stored elsewhere or returned to the client. Option C is wrong because encryption of the connection is handled by HTTPS, not by the SAS token; the SAS token is for authorization. Option D is wrong because authentication to the serverless SQL pool is handled by Azure AD or SQL authentication, not by a SAS token; the SAS token authenticates to the storage account.

163
MCQmedium

A media company uses Azure Data Lake Storage Gen2 to store video files and metadata. They need to ensure that when a user is deleted from Azure Active Directory, their access to the data lake is immediately revoked. They also want to minimize administrative overhead. What should they do?

A.Assign POSIX ACLs directly to each user.
B.Generate a shared access signature (SAS) token for each user.
C.Use Azure Active Directory security groups and assign ACLs to the groups.
D.Store the storage account key in Azure Key Vault and grant users access to the key.
AnswerC

Assigning ACLs to Azure Active Directory security groups means that access is managed through group membership. When a user is deleted from Azure Active Directory, they are automatically removed from all groups, and their access is revoked immediately. This minimizes administrative overhead because permissions are managed at the group level.

Why this answer

Using Azure Active Directory security groups to manage access to Data Lake Storage Gen2 ensures that when a user is deleted from Azure Active Directory, their group memberships are removed, and their access is revoked immediately. This approach centralizes permission management, reducing administrative overhead. Direct ACLs, SAS tokens, and storage account keys do not provide automatic revocation upon user deletion.

Exam trap

The trap here is assuming that SAS tokens or direct ACLs can provide immediate revocation when a user is deleted, when only Azure Active Directory group-based access does so automatically.

164
MCQmedium

You are a data engineer at a healthcare analytics company. The company uses Azure Data Factory (ADF) to orchestrate data pipelines that ingest patient data from on-premises SQL Server databases into Azure Synapse Analytics. Recently, the pipeline has been failing intermittently with the following error: 'Failure happened on 'Sink' side. ErrorCode=SqlFailedToConnect, Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Cannot connect to SQL Server Database. The TCP connection to the host <server_name>, port 1433 has failed. Error: 'Connection timed out.'.' The on-premises SQL Server is behind a corporate firewall. The ADF self-hosted integration runtime (SHIR) is installed on a VM inside the corporate network. You have verified that the SHIR is running and that the SQL Server is accessible from the SHIR VM using SQL Server Management Studio (SSMS). The error occurs sporadically, not consistently. What is the most likely cause of the intermittent connection timeout?

A.The data being transferred is skewed, causing the sink to be overwhelmed.
B.The corporate firewall or network device is closing idle TCP connections to the SQL Server database.
C.The SQL Server database is experiencing high CPU utilization during the pipeline execution window.
D.The self-hosted integration runtime is running out of memory during peak loads.
AnswerB

Firewalls often drop idle connections after a timeout period. When the pipeline uses a connection from the pool that has been idle, the connection is no longer valid, causing a timeout. This explains the intermittent nature.

Why this answer

The intermittent nature of the timeout, combined with the fact that the SHIR VM can connect to SQL Server via SSMS, strongly suggests that the corporate firewall or a network intermediary (such as a load balancer or NAT device) is closing idle TCP connections. ADF pipelines may hold connections open between activities or during long-running data transfers, and if no keep-alive packets are sent within the firewall's idle timeout window (commonly 4–30 minutes), the firewall drops the TCP session. When ADF attempts to reuse that connection, it receives a 'Connection timed out' error because the socket is no longer valid.

Exam trap

The trap here is that candidates assume the error is due to resource exhaustion (CPU, memory, or data skew) because those are common causes of intermittent failures, but the specific 'Connection timed out' error points to a network-layer issue, not a server-side performance bottleneck.

How to eliminate wrong answers

Option A is wrong because data skew would cause performance issues like slow writes or out-of-memory errors on the sink, not a TCP connection timeout to the source SQL Server. Option C is wrong because high CPU utilization on SQL Server would manifest as query timeouts or slow performance, not a TCP-level connection timeout (which occurs before any query is sent). Option D is wrong because SHIR running out of memory would produce out-of-memory exceptions or pipeline failures with different error codes, not a TCP connection timeout to the database.

165
MCQeasy

You are creating an Azure Synapse Analytics pipeline that must copy data from an Azure SQL Database into a dedicated SQL pool. The destination table already exists and the pipeline must append new rows without truncating existing data. Which staging and load option should you configure in the Copy activity?

A.Set the sink write behavior to truncate and rely on the pre-copy script to reinsert
B.Use a stored procedure sink that executes a MERGE statement against the destination table
C.Set the sink write behavior to insert and use PolyBase or COPY statement staging
D.Set the sink write behavior to upsert and provide a key column mapping
AnswerC

For a dedicated SQL pool sink, the Copy activity offers insert as the write behavior, which appends rows without truncating. Enabling staging with PolyBase or the COPY statement loads through Azure Blob Storage or Data Lake Storage, which is the recommended high-throughput path for this connector pair. This appends new rows while preserving existing data in the destination table.

Why this answer

When the destination table already exists and new rows must be appended, the dedicated SQL pool sink uses the insert write behavior, which does not truncate. Pairing it with staging through PolyBase or the COPY statement gives the high-throughput bulk load path recommended for this connector pair, preserving existing rows while adding the incoming set.

Exam trap

The trap here is reaching for a MERGE or upsert pattern when the requirement is a simple append, which the insert write behavior already provides.

166
Multi-Selecthard

Which TWO strategies can be used to optimize storage costs for historical data in Azure Data Lake Storage Gen2?

Select 2 answers
A.Enable soft delete to recover data
B.Use geo-redundant storage (GRS) for durability
C.Implement lifecycle management policies to move data to archive tier
D.Store data in compressed columnar format like Parquet
E.Encrypt data with Azure Storage Service Encryption
AnswersC, D

Lifecycle management policies automatically transition blobs from hot to cool then archive tier based on age, cutting per-GB cost for historical data. This directly satisfies the storage cost optimisation requirement without manual intervention or data deletion.

Why this answer

Option C is correct because Azure Storage lifecycle management policies can automatically transition blobs from hot/cool tiers to the archive tier after a defined age, and the archive tier has the lowest storage cost per GB for rarely accessed historical data. Option D is correct because storing historical data in a compressed columnar format such as Parquet reduces the total bytes stored and scanned, and columnar compression typically achieves much higher compression ratios than row-based formats, directly lowering storage and query costs in ADLS Gen2. Option A is not a cost-optimization strategy; soft delete retains deleted data and can actually increase storage charges during the retention period.

Option B is not cost-optimizing either, since GRS replicates data to a secondary region and costs more than LRS. Option E is also not a cost strategy; Azure Storage Service Encryption is enabled by default and does not reduce storage cost.

Exam trap

The trap here is that candidates confuse data protection features (soft delete, encryption, replication) with cost optimization strategies, but only tiering and compression directly reduce the amount or cost of stored data.

167
Multi-Selecthard

Which THREE are best practices for optimizing query performance in Azure Synapse Analytics dedicated SQL pool?

Select 3 answers
A.Use materialized views for complex aggregations
B.Use the largest resource class for all queries
C.Create clustered columnstore indexes
D.Use hash distribution on columns used in JOINs
E.Use round-robin distribution for large fact tables
AnswersA, C, D

Materialized views persist precomputed results of complex aggregations, so repeated queries read stored data instead of rescanning the large fact table. This directly reduces compute and elapsed time for the aggregation-heavy workloads the dedicated SQL pool must optimise.

Why this answer

Option A is correct because materialized views in a dedicated SQL pool precompute and persist the results of complex aggregations (such as SUM, COUNT, AVG over large fact tables), letting the optimizer rewrite queries to read the smaller materialized result instead of rescanning and re-aggregating the base tables, which dramatically reduces I/O and CPU. Option C is correct because clustered columnstore indexes are the default and recommended storage format for dedicated SQL pools, providing high compression and batch-mode vectorized execution that speeds up large-scale analytical scans and aggregations on fact tables. Option D is correct because hash distribution on columns frequently used in JOINs co-locates matching rows on the same distribution, enabling collocated joins that avoid costly data movement (shuffle) across the 60 distributions.

Option B is not a best practice because assigning the largest resource class to every query consumes excessive memory and concurrency slots, reducing overall workload throughput; resource classes should be sized to each query's needs. Option E is not a best practice because round-robin distribution is suited to staging or temporary tables, whereas large fact tables benefit from hash distribution on a join/filter column to minimize data movement during queries.

Exam trap

The trap here is that candidates often confuse resource class with performance optimization, assuming larger resource classes always speed up queries, when in fact they reduce concurrency and can cause resource contention, making them a poor general-purpose best practice.

168
MCQhard

You are analyzing a Kusto query in Azure Data Explorer that calculates total sales per product for January 2024 and filters for products with sales over 10,000. The query uses the materialize() function. You notice that the query runs slower than expected. What is the primary reason the materialize() function may not be providing the expected performance benefit in this query?

A.The join with the Products table forces a shuffle that bypasses the materialized result
B.The query uses summarize, which already materializes results internally
C.The datetime range filter is not sargable, causing full table scan
D.The materialize() result is referenced only once in the query, so materialization adds unnecessary overhead
AnswerD

materialize() caches an intermediate result to avoid recomputation when referenced multiple times. With only a single reference, the query pays the cost of writing and reading the cached table without any reuse benefit, so the overhead outweighs the saving and slows execution.

Why this answer

Materialize() only provides performance benefit when the materialized result is referenced multiple times. In this query, the materialized result is used only once, so the overhead of materialization (storing the result in memory) outweighs any benefit, potentially making the query slower. Option A is incorrect because there is no join with a Products table; the query uses a single table.

Option B is incorrect because summarize does not inherently materialize results; it computes aggregations on the fly. Option C is incorrect because datetime range filters in Kusto are sargable and do not cause full table scans.

169
Multi-Selecteasy

You are optimizing a Spark DataFrame transformation in Azure Synapse Analytics. The DataFrame has 20 columns and 100 million rows. You notice that the job is slow due to many small files being written to the output. Which two actions can you take to reduce the number of output files? (Choose two.)

Select 2 answers
A.Use coalesce() to reduce the number of partitions without a shuffle.
B.Enable caching on the DataFrame before writing.
C.Apply bucketing on a column to group data.
D.Increase the number of partitions using repartition() with a larger number.
E.Use repartition() with a smaller number of partitions.
AnswersA, E

coalesce() merges partitions into the requested count without a full shuffle, so each task writes fewer, larger files. On a 100-million-row DataFrame this directly reduces the small-file problem while avoiding the network cost of repartitioning.

Why this answer

Option A is correct because coalesce() reduces the number of partitions by merging existing partitions without performing a full shuffle, which directly decreases the number of output files written and is efficient when reducing partitions. Option E is correct because repartition() with a smaller number of partitions also reduces the partition count, and although it triggers a shuffle, it results in fewer output files being written. Option B is incorrect because caching only stores the DataFrame in memory or disk to speed up repeated access; it does not change the number of partitions or output files.

Option C is incorrect because bucketing organizes data into buckets for join or query optimization and does not reduce the number of files written by a DataFrame write operation. Option D is incorrect because increasing partitions with repartition() using a larger number would create more partitions and therefore more output files, worsening the small-file problem.

Exam trap

The trap here is that candidates often confuse `coalesce()` with `repartition()`, assuming both cause a shuffle, or they mistakenly think increasing partitions (Option D) will improve performance when it actually exacerbates the small-file issue.

170
MCQmedium

You are building an Azure Stream Analytics job that reads JSON telemetry from an Azure Event Hub, calculates a 5-minute tumbling window average per device, and writes results to an Azure Synapse Analytics dedicated SQL pool. The stream must handle occasional bursts of late-arriving events by including events that arrive up to 3 minutes after the window closes. You need to configure the job's event ordering settings to meet the late-arrival requirement while minimizing memory usage. What should you do?

A.Increase the streaming units for the job and leave the default event ordering settings unchanged.
B.Set the late arrival tolerance to 3 minutes and the out-of-order tolerance to 0 seconds.
C.Set the out-of-order tolerance to 3 minutes and the late arrival tolerance to 0 seconds.
D.Set both the late arrival tolerance and the out-of-order tolerance to 3 minutes.
AnswerB

Late arrival tolerance defines how long Stream Analytics waits for events that arrive after the window end before finalizing window results. Setting it to 3 minutes directly satisfies the requirement. Out-of-order tolerance controls reordering of events within the stream, not late arrivals, so setting it to 0 seconds minimizes buffering and memory, which is appropriate here because the scenario only requires handling late-arriving events.

Why this answer

Late-arriving events are handled by the late arrival tolerance, which delays window finalization to include events that arrive after the window end. Out-of-order tolerance is separate and controls reordering within the stream. To meet the 3-minute late-arrival requirement while minimizing memory, set late arrival tolerance to 3 minutes and keep out-of-order tolerance low, as only late arrivals need extended buffering.

Exam trap

The trap here is confusing late arrival tolerance with out-of-order tolerance, assuming both control late events when only late arrival tolerance extends the window past its end time.

171
MCQmedium

You are designing a data transformation solution for a retail company. The company receives daily CSV files from 200 stores via SFTP. The files must be cleaned, validated, and aggregated before loading into Azure Synapse dedicated SQL pool. The solution must minimize administrative overhead and support easy monitoring. Which approach do you recommend?

A.Use Azure Functions to process each file and write to Synapse via REST API
B.Use PolyBase external tables to load raw data and then use T-SQL stored procedures for transformation
C.Use Azure Databricks with Python notebooks to process the files and write to Synapse
D.Use Azure Data Factory with Mapping Data Flows to clean, validate, and aggregate the data, then load into Synapse SQL pool
AnswerD

Mapping Data Flows provide a code-free, visually monitored transformation canvas inside Azure Data Factory, handling the clean, validate and aggregate steps across 200 SFTP sources without managing clusters. This satisfies the low administrative overhead and easy monitoring constraints while loading into the dedicated SQL pool.

Why this answer

Azure Data Factory (ADF) with Mapping Data Flows provides a fully managed, code-free ETL service that can read CSV files from SFTP, perform cleaning, validation, and aggregation at scale using Spark clusters, and load the results directly into Azure Synapse dedicated SQL pool via the PolyBase sink. This minimizes administrative overhead by eliminating infrastructure management and supports easy monitoring through ADF’s built-in integration with Azure Monitor and pipeline run views.

Exam trap

The trap here is that candidates often overestimate the simplicity of Azure Functions for batch ETL or assume PolyBase alone handles transformations, when in fact ADF Mapping Data Flows are purpose-built for visual, scalable, and monitorable ETL with minimal overhead.

How to eliminate wrong answers

Option A is wrong because Azure Functions are stateless, event-driven compute units that lack native connectors for SFTP and Synapse, requiring custom code for file parsing, state management, and batch loading, which increases administrative overhead and complexity. Option B is wrong because PolyBase external tables can only load raw data into staging tables, but the transformation logic (cleaning, validation, aggregation) would need to be implemented in T-SQL stored procedures, which are harder to monitor, scale, and maintain compared to a visual ETL tool like ADF. Option C is wrong because Azure Databricks with Python notebooks introduces significant administrative overhead for cluster management, notebook orchestration, and monitoring, and requires more specialized skills than ADF’s low-code Mapping Data Flows, making it less suitable for minimizing overhead.

172
Multi-Selecteasy

Which TWO features are available in Azure Data Lake Storage Gen2 but not in Azure Blob Storage? (Choose two.)

Select 2 answers
A.Hierarchical namespace
B.Immutable storage
C.Soft delete for blobs
D.Lifecycle management policies
E.POSIX-compliant access control lists
AnswersA, E

A hierarchical namespace arranges objects into true directories, so operations like atomic directory renames and POSIX-style access control lists become possible. Flat Blob Storage merely simulates folders through naming conventions, meaning renames require copying every blob individually — the specific capability the stem demands.

Why this answer

Azure Data Lake Storage Gen2 is built on top of Blob Storage but adds a hierarchical namespace (option A), which organizes objects into true directories and enables atomic directory operations and efficient rename/delete semantics that flat Blob Storage cannot provide. It also supports POSIX-compliant access control lists (option E), allowing fine-grained, file- and directory-level permissions (read/write/execute) that map to Hadoop and POSIX-style security models, which plain Blob Storage does not offer. The other options are not unique to ADLS Gen2: immutable storage (option B) is a Blob Storage feature (time-based retention and legal holds), soft delete for blobs (option C) is a Blob Storage data-protection feature, and lifecycle management policies (option D) are available for Blob Storage to transition or expire data across hot/cool/archive tiers.

Exam trap

The trap here is that candidates often assume features like soft delete or lifecycle management are exclusive to ADLS Gen2, when in fact they are shared with Blob Storage, while the hierarchical namespace and POSIX ACLs are the true differentiators.

173
MCQeasy

You need to monitor the performance of an Azure Stream Analytics job that processes real-time IoT data. Which metric indicates the number of events that are being dropped or delayed due to insufficient processing capacity?

A.Watermark delay.
B.Output events.
C.Backlogged input events.
D.Input events.
AnswerC

Backlogged input events counts events queued but not yet processed because the job lacks sufficient streaming units. Rising values indicate the job cannot keep pace with incoming IoT data, signalling that events are delayed or dropped due to inadequate processing capacity.

Why this answer

Backlogged input events (C) measures the number of events that are queued awaiting processing, indicating that the job is unable to keep up with the input rate. High backlog suggests insufficient processing capacity, leading to dropped or delayed events. Watermark delay (A) measures the time lag in processing, but does not directly count events dropped.

Input events (D) is the total received, not dropped/delayed. Output events (B) is the total sent.

174
MCQhard

You are designing a near-real-time analytics pipeline for a retail company. Transaction data is generated in Azure SQL Database and must be replicated to Azure Synapse Analytics (dedicated SQL pool) with less than 5 minutes latency. The source table has 50 million rows and 200 columns, but only 30 columns are needed for analytics. Which approach should you recommend?

A.Use Azure SQL Database Change Tracking and push changes to Azure Event Hubs, then use Azure Stream Analytics to write to Synapse.
B.Enable Change Data Capture (CDC) on the source table and use Azure Data Factory with a 1-minute tumbling window to copy changes into Synapse.
C.Use Azure Synapse PolyBase to directly query the source SQL database every 5 minutes.
D.Schedule a full copy of the entire table every 5 minutes using Azure Data Factory.
AnswerB

CDC captures only changed rows, and ADF can run frequently to meet latency target.

Why this answer

Azure Data Factory (ADF) with Change Data Capture (CDC) on the source SQL database can incrementally copy only changed rows (inserts, updates, deletes) into Azure Synapse Analytics using a 1-minute tumbling window, meeting the sub-5-minute latency requirement while minimizing data volume. This approach efficiently handles 50 million rows by transferring only the 30 needed columns, avoiding full table scans and reducing network load.

Exam trap

The trap here is that candidates often confuse Change Tracking (which only tracks that a row changed, not the actual changes) with Change Data Capture (which captures the before-and-after values), leading them to choose Option A without realizing the missing push mechanism and the need for additional services to achieve near-real-time replication.

How to eliminate wrong answers

Option A is wrong because Azure SQL Database Change Tracking does not natively push changes to Event Hubs; it requires custom logic or additional services (e.g., Azure Functions) to bridge the gap, adding complexity and potential latency that may not guarantee sub-5-minute replication. Option C is wrong because PolyBase in Synapse is designed for batch querying of external data sources, not for near-real-time incremental replication; querying the source SQL database every 5 minutes would perform full table scans on 50 million rows, causing high source database load and failing to meet latency requirements. Option D is wrong because scheduling a full copy of the entire 50-million-row table every 5 minutes is extremely inefficient, consumes excessive bandwidth and Synapse storage resources, and would likely exceed the latency window due to the time required for a full data transfer.

175
MCQeasy

A manufacturing company uses Azure Data Lake Storage Gen2 with hierarchical namespace enabled and Azure Databricks for analytics. The security team requires that all data stored in the 'raw' container be encrypted at rest using customer-managed keys. The data is ingested via Azure Data Factory. What should the data engineer configure to meet the requirement?

A.Assign an Azure Policy that requires encryption at rest.
B.Enable Azure Information Protection on the storage account.
C.Configure the storage account to use Azure Key Vault for customer-managed key encryption.
D.Enable the 'require secure transfer' setting on the storage account.
AnswerC

Customer-managed keys require a key store outside the storage account; configuring Azure Key Vault as the key provider lets the account wrap its encryption key with your RSA key, satisfying the mandate that raw container data be encrypted at rest under customer-controlled keys.

Why this answer

Azure Data Lake Storage Gen2 with hierarchical namespace supports encryption at rest using customer-managed keys (CMK) via Azure Key Vault. To meet the security requirement, the data engineer must configure the storage account's encryption settings to use a key from Azure Key Vault, which allows the organization to control and rotate the encryption keys independently of Azure.

Exam trap

The trap here is that candidates may confuse encryption at rest (which is always enabled by default) with the specific requirement for customer-managed keys, leading them to pick Azure Policy or 'require secure transfer' as a catch-all security measure.

How to eliminate wrong answers

Option A is wrong because an Azure Policy can enforce encryption at rest, but it does not specify the use of customer-managed keys; it only ensures that encryption is enabled (which is already default with Microsoft-managed keys). Option B is wrong because Azure Information Protection is a classification and labeling service for data, not an encryption-at-rest mechanism for storage accounts. Option D is wrong because 'require secure transfer' enforces HTTPS for data in transit, not encryption at rest, and does not involve customer-managed keys.

176
MCQmedium

You have an Azure Synapse Analytics dedicated SQL pool. You notice that some queries are taking longer than expected. After reviewing the query plans, you see that some queries are spilling to tempdb. What should you do to reduce tempdb spills?

A.Increase the resource class for the user executing the queries.
B.Redistribute the tables using hash distribution.
C.Rebuild all columnstore indexes.
D.Add partitioning to the tables.
AnswerA

A higher resource class grants the query more memory per distribution, so sort and hash operations fit in memory rather than spilling to tempdb. This directly addresses the memory pressure causing the spills observed in the query plans.

Why this answer

Tempdb spills occur when a query requires more memory than is allocated to it, forcing intermediate results to be written to disk. Increasing the resource class for the user executing the queries allocates more memory to that user's queries, reducing the likelihood of spills. This directly addresses the memory constraint that causes spills in a dedicated SQL pool.

Exam trap

The trap here is that candidates often confuse performance tuning techniques like indexing or partitioning with memory management, assuming any optimization will fix spills, when only increasing memory allocation (via resource class) directly addresses the root cause.

How to eliminate wrong answers

Option B is wrong because redistributing tables using hash distribution improves data movement and join performance but does not directly increase per-query memory allocation to prevent tempdb spills. Option C is wrong because rebuilding columnstore indexes improves compression and scan performance but does not address the memory grant issue that causes spills. Option D is wrong because adding partitioning can improve partition elimination and manageability but does not increase the memory available to individual queries, so it will not reduce tempdb spills.

177
MCQmedium

A data engineer is designing a solution to store historical sales data for a retail company. The data is append-only and accessed infrequently for compliance reports. The solution must minimize storage costs while allowing retrieval within 24 hours. Which storage tier should be used for the data?

A.Hot tier
B.Archive tier
C.Cool tier
D.Premium tier
AnswerC

Cool tier suits append-only data accessed infrequently, offering lower storage cost than hot while retaining millisecond access and a 30-day minimum retention. It satisfies the requirement to minimise storage costs while still permitting retrieval well within the 24-hour compliance window.

Why this answer

The Cool tier is the correct choice because it is optimized for data that is infrequently accessed and stored for at least 30 days, offering low storage costs with retrieval times in the range of seconds to hours, which meets the 24-hour retrieval requirement. The data is append-only and used for compliance, so the Cool tier balances cost and accessibility without the high retrieval costs or long rehydration delays of the Archive tier.

Exam trap

The trap here is that candidates often choose the Archive tier because it has the lowest storage cost, overlooking the rehydration latency and the fact that retrieval within 24 hours is not guaranteed with standard priority rehydration, especially under heavy demand.

How to eliminate wrong answers

Option A is wrong because the Hot tier is designed for frequently accessed data and has higher storage costs, which would unnecessarily increase expenses for infrequently accessed compliance data. Option B is wrong because the Archive tier has the lowest storage cost but requires a rehydration process that can take up to 15 hours (and often longer), which may not guarantee retrieval within 24 hours and incurs significant read and data retrieval costs. Option D is wrong because the Premium tier is for high-performance, low-latency access (e.g., for transactional or real-time workloads) and is the most expensive option, making it unsuitable for cost-minimized, infrequently accessed historical data.

178
MCQhard

A company uses Azure Synapse Analytics dedicated SQL pool to store sales data. The fact table is partitioned by date and distributed by product ID. Queries often join the fact table with a small dimension table on product ID. You notice that these joins cause significant data movement. You need to minimize data movement for these joins. What should you do?

A.Change the distribution of the fact table to round-robin.
B.Replicate the dimension table and distribute the fact table by product ID.
C.Partition the dimension table by product ID and use hash distribution on the fact table.
D.Create a materialized view that pre-joins the fact and dimension tables.
AnswerB

Replicating the dimension table creates a full copy on every compute node. When the fact table is distributed by product ID, each node can join its local fact rows with the replicated dimension without shuffling data. This eliminates data movement for the join. Replication is ideal for small dimension tables (typically under 2 GB compressed) and is a recommended pattern in dedicated SQL pool.

Why this answer

Replicating a small dimension table and hash-distributing the large fact table on the join key eliminates data movement because each compute node has a local copy of the dimension and only its subset of fact rows. This is a standard technique in Azure Synapse Analytics dedicated SQL pool to optimize join performance. Other options either increase data movement or do not address the distribution mismatch.

Exam trap

The trap here is confusing partitioning with distribution; partitioning does not co-locate rows across compute nodes, so it cannot eliminate join data movement.

179
Multi-Selecthard

Which THREE metrics should you monitor to evaluate the performance of an Azure Stream Analytics job?

Select 3 answers
A.Input Events Backlogged
B.Output Events
C.Conversion Errors
D.SU (Memory) Utilization
E.Watermark Delay (seconds)
AnswersA, B, E

Input Events Backlogged counts events awaiting processing, exposing whether the job's streaming units or query logic cannot keep pace with incoming throughput. Rising backlog directly signals a performance bottleneck in the Azure Stream Analytics pipeline.

Why this answer

Input Events Backlogged (A) is a correct metric because it measures the number of input events that are waiting to be processed, directly revealing whether the job is falling behind its input rate. Output Events (B) is correct because it counts the events emitted to the output sink, letting you verify the job is actually producing results and detect drops in throughput. Watermark Delay (seconds) (E) is correct because it quantifies how far behind real time the job is running, which is the key indicator of streaming latency and timeliness.

Conversion Errors (C) is not one of the three performance metrics for evaluating job throughput/latency; it reflects data-format deserialization problems rather than performance. SU (Memory) Utilization (D) is a Streaming Unit resource metric that indicates capacity consumption, not the job's runtime performance as measured by backlog, output, and watermark delay.

180
Multi-Selecteasy

Which TWO of the following are supported sources for Azure Data Factory Copy activity? (Choose two.)

Select 2 answers
A.Power BI Dataset
B.Azure DevOps
C.Amazon S3
D.Azure Blob Storage
E.Azure Analysis Services
AnswersC, D

Amazon S3 is supported via the Amazon S3 connector.

Why this answer

Amazon S3 is correct (C) because Azure Data Factory provides a native Amazon S3 connector that the Copy activity can use as a source, reading objects via the S3 API with linked-service credentials. Azure Blob Storage is correct (D) because it is one of ADF's core supported stores, and the Copy activity can read blobs through the Azure Blob Storage connector. Power BI Dataset (A) is not a Copy activity source; ADF interacts with Power BI only for certain dataset-based scenarios, not as a copy source.

Azure DevOps (B) is not a data store connector for Copy activity sources. Azure Analysis Services (E) is an analytical model, not a supported Copy activity source store.

Exam trap

The trap here is that candidates often confuse Azure Analysis Services (a semantic model) with Azure SQL Database or Azure Synapse, which are valid sources, leading them to incorrectly select it as a supported source for Copy activity.

181
MCQmedium

You have a dedicated SQL pool in Azure Synapse that stores a fact table with over 100 billion rows. Query performance is degrading over time. You notice that the table is hash-distributed on a column with many duplicate values. What is the most likely impact?

A.Statistics on the table are outdated.
B.The table is not properly partitioned.
C.Data compression is not working efficiently.
D.Data is unevenly distributed across distributions, causing some distributions to be overloaded.
AnswerD

Hash distribution on a high-duplicate column funnels many identical values into the same distribution, producing data skew. Some distributions hold disproportionate rows, so those nodes process far more data, degrading query performance across the pool.

Why this answer

D is correct because a hash-distributed table with a column that has many duplicate values leads to data skew. When the hash function maps many rows to the same distribution, some distributions become overloaded with data while others are underutilized. This imbalance causes query performance to degrade as the overloaded distributions become bottlenecks for processing.

Exam trap

The trap here is that candidates often confuse distribution skew with partitioning or statistics issues, but the key clue is the mention of 'many duplicate values' in the hash-distributed column, which directly points to data skew as the root cause.

How to eliminate wrong answers

Option A is wrong because outdated statistics can cause suboptimal query plans, but the primary issue described is data skew due to hash distribution on a column with many duplicates, not statistics freshness. Option B is wrong because partitioning is a separate concept from distribution; while partitioning can help with partition elimination, it does not address the fundamental data skew caused by hash distribution on a high-duplicate column. Option C is wrong because data compression efficiency is affected by data patterns and storage, not directly by distribution skew; compression works at the page level and is not the root cause of query performance degradation from uneven distribution.

182
MCQeasy

You have an Azure Data Factory pipeline that copies data from an on-premises SQL Server to Azure Blob Storage. The pipeline uses a self-hosted integration runtime and runs successfully during business hours. However, after a recent network security update, the pipeline fails with a connection error to the on-premises SQL Server. What is the most likely cause?

A.A firewall rule on the on-premises SQL Server is blocking the self-hosted integration runtime.
B.The Azure Blob Storage account has been moved to a different subscription.
C.The self-hosted integration runtime node has been de-registered from Azure Data Factory.
D.The blob container has reached its maximum capacity.
AnswerA

The self-hosted integration runtime initiates outbound connections to the on-premises SQL Server, so a new firewall rule on that server blocking the runtime's host is the most likely cause. The runtime itself is unaffected by Azure-side network changes, and credentials were unchanged.

Why this answer

The self-hosted integration runtime (SHIR) connects to on-premises SQL Server via TCP port 1433 by default. A recent network security update likely added a firewall rule on the SQL Server or the on-premises network that blocks outbound or inbound traffic on this port, preventing the SHIR from establishing a connection. Since the pipeline ran successfully before the update, the most probable cause is a new firewall restriction targeting the SHIR's IP address or subnet.

Exam trap

The trap here is that candidates may confuse a source-side connectivity failure with a sink-side or authentication issue, but the question explicitly states a 'connection error to the on-premises SQL Server,' which points directly to network or firewall blocking at the source, not to storage capacity or SHIR registration status.

How to eliminate wrong answers

Option B is wrong because moving an Azure Blob Storage account to a different subscription does not affect the connectivity between the on-premises SHIR and the on-premises SQL Server; it would only change the storage account's resource ID and require updating linked service credentials, not cause a connection error to SQL Server. Option C is wrong because if the SHIR node were de-registered, the pipeline would fail with an integration runtime not found error, not a connection error to the on-premises SQL Server; the error message would reference the SHIR status, not a network-level timeout or refused connection. Option D is wrong because a blob container reaching maximum capacity (5 TB per container) would result in a storage write error (e.g., 403 or 409) when copying data, not a connection error to the on-premises SQL Server; the error would occur at the sink, not the source.

183
MCQmedium

You are designing a storage solution for a financial analytics platform. The data consists of large Parquet files stored in Azure Data Lake Storage Gen2. Analysts run complex queries that scan entire partitions, but only a subset of columns is needed for each query. You need to minimize the amount of data read from storage and improve query performance. What should you do?

A.Enable Azure Data Lake Storage Gen2 hierarchical namespace and organize files into folders by date.
B.Use Parquet format with column pruning and predicate pushdown enabled in the query engine.
C.Store the data in a row-based format such as Avro to enable faster full-row retrieval.
D.Convert the data to JSON and compress it with GZip to reduce storage size.
AnswerB

Parquet is a columnar format that allows query engines to read only the columns referenced in a query, drastically reducing I/O. Predicate pushdown further filters data at the storage layer. In Azure Synapse Analytics and Databricks, Parquet supports these optimizations natively. This directly addresses the need to minimize data read and improve performance for column-subset queries.

Why this answer

Parquet is a columnar storage format that enables column pruning, so only the columns needed by a query are read from storage. This significantly reduces I/O and improves performance for analytical queries that access a subset of columns. Predicate pushdown further optimizes by filtering data at the source.

Other formats like Avro or JSON are row-based and cannot provide these benefits.

Exam trap

The trap here is assuming that any compression or file organization automatically reduces data read during queries, when only columnar formats with column pruning achieve that.

184
MCQmedium

You are designing a data processing solution in Azure Synapse Analytics. The solution must ensure that sensitive columns containing personally identifiable information (PII) are masked at query time for users without explicit permissions. Which Azure Synapse Analytics feature should you use?

A.Row-Level Security
B.Transparent Data Encryption
C.Dynamic Data Masking
D.Always Encrypted
AnswerC

Dynamic Data Masking applies masking rules to designated columns so unauthorised users see obfuscated values at query time, while privileged users retain full data. This satisfies the requirement to mask PII without altering stored data.

Why this answer

Dynamic Data Masking (DDM) in Azure Synapse Analytics masks sensitive column data at query time for users without explicit UNMASK permissions, returning masked values (e.g., XXXX or 0) instead of the real data. It is applied via a MASKED WITH clause on the column definition and does not alter the stored data, making it the correct choice for query-time PII obfuscation.

Exam trap

The trap here is confusing encryption-at-rest (TDE, Always Encrypted) with query-time masking; candidates often pick Always Encrypted thinking it hides data from unauthorized users, but it actually requires the client to decrypt, so it does not mask for users without permissions.

How to eliminate wrong answers

Option A is wrong because Row-Level Security filters which rows a user can see based on a predicate, not which column values are masked. Option B is wrong because Transparent Data Encryption encrypts data at rest on disk and is transparent to all authorized queries — it does not mask values for specific users. Option D is wrong because Always Encrypted encrypts data client-side and requires the client to hold the column master key; it protects data in transit and at rest but does not provide query-time masking for users lacking permissions.

185
MCQeasy

You are designing a security strategy for an Azure Data Lake Storage Gen2 account that stores sensitive data. You need to ensure that data is encrypted at rest using customer-managed keys. What should you configure?

A.Enable Azure Storage Service Encryption with Microsoft-managed keys.
B.Enable infrastructure encryption (double encryption) on the storage account.
C.Use Azure Disk Encryption on the virtual machines that access the data lake.
D.Configure a customer-managed key in Azure Key Vault and associate it with the storage account.
AnswerD

To use customer-managed keys for Azure Storage encryption, you create a key in Azure Key Vault (or Managed HSM) and then configure the storage account to use that key for encryption at rest. This allows you to control key lifecycle, rotation, and access. The storage account must have a managed identity with permissions to access the key vault. This is the standard method to meet the requirement of customer-managed keys for data at rest.

Why this answer

Customer-managed keys for Azure Storage encryption require you to create and manage a key in Azure Key Vault and then configure the storage account to use that key. This gives you control over encryption at rest. Microsoft-managed keys are the default but do not meet the requirement.

Infrastructure encryption adds a second layer but does not change key management. Azure Disk Encryption protects VM disks, not the data lake. Therefore, the correct approach is to use a customer-managed key from Key Vault.

Exam trap

The trap here is confusing default storage encryption (Microsoft-managed keys) or infrastructure encryption with the specific configuration needed for customer-managed keys.

186
Multi-Selecthard

You are designing a storage layer in Azure Data Lake Storage Gen2 for a data engineering pipeline. You need to store Parquet files that will be queried by Azure Synapse Analytics serverless SQL pools and Azure Databricks. You must optimize for query performance and minimize data scanned. Which two actions should you perform? (Choose two.)

Select 2 answers
A.Partition the data by a commonly filtered column such as TransactionDate.
B.Store the data in CSV format to ensure compatibility with all query engines.
C.Partition the data by a high-cardinality column such as TransactionId.
D.Enable hierarchical namespace and store all files in a single directory.
E.Store the data in Parquet format with a columnar layout.
AnswersA, E

Partitioning by a frequently filtered column allows queries with predicates on that column to skip entire partitions, reducing the amount of data scanned. This is especially effective when the column has a moderate number of distinct values, such as dates. It aligns with the goal of minimizing data scanned and improving performance in both Synapse and Databricks.

Why this answer

Using Parquet with a columnar layout enables column pruning and compression, reducing the data scanned. Partitioning by a commonly filtered column such as TransactionDate allows partition elimination, further reducing the amount of data read. Together, these actions optimize query performance for both Synapse serverless SQL pools and Databricks.

Exam trap

The trap here is assuming that any partitioning improves performance, when high-cardinality partitioning creates many small files and degrades it.

187
MCQhard

You are optimizing a data pipeline in Azure Synapse Analytics that loads data from a CSV file in ADLS Gen2 into a dedicated SQL pool using PolyBase. The load is slow and you need to improve performance. Which action would be MOST effective?

A.Increase the service level (DWU) of the dedicated SQL pool.
B.Change the file format from CSV to Avro.
C.Combine the CSV files into fewer, larger files before loading.
D.Use Azure Data Factory to stage the data in Azure Blob Storage before loading.
AnswerC

PolyBase parallelises reads across files, so many small CSVs create excessive per-file overhead and metadata operations. Consolidating into fewer, larger files lets each reader stream more data per task, directly addressing the throughput bottleneck in the load.

Why this answer

Combining many small CSV files into fewer, larger files reduces the number of file open/close operations and minimizes the overhead of PolyBase's external file enumeration and parallel split logic. PolyBase performs best when each file is at least 256 MB, as it can then assign a full file to each distribution, avoiding the overhead of splitting tiny files across multiple threads.

Exam trap

The trap here is that candidates assume scaling up (DWU) or changing file formats always improves performance, but the exam specifically tests the understanding that PolyBase's parallel processing is most efficient when file sizes align with distribution boundaries, making file consolidation the most effective optimization.

How to eliminate wrong answers

Option A is wrong because increasing DWU scales resources but does not address the root cause of slow PolyBase loads—file fragmentation and metadata overhead—and may incur unnecessary cost. Option B is wrong because changing to Avro improves compression and schema evolution but does not reduce the number of file operations; the performance gain from file count reduction is more direct. Option D is wrong because staging in Azure Blob Storage adds an extra copy step without reducing the number of files PolyBase must process; the bottleneck remains the file enumeration and split overhead.

188
MCQeasy

Your team has deployed an Azure Stream Analytics job that writes output to Azure Cosmos DB. You need to monitor the job for data latency and ensure it meets a service-level agreement (SLA) of under 10 seconds from input to output. Which metric should you track in Azure Monitor?

A.Output events.
B.Runtime errors.
C.Watermark delay.
D.Input events.
AnswerC

Watermark delay measures the difference between the latest event processed and the newest event received, expressed in seconds. It directly quantifies end-to-end processing lag, so comparing it against the 10-second SLA threshold tells you whether the job meets the required latency.

Why this answer

Watermark delay is the correct metric to monitor for data latency because it measures the maximum time between an input event being received and the corresponding output being produced. A watermark delay consistently under 10 seconds ensures the SLA is met. Output events (A) track the number of output events, not latency.

Runtime errors (B) indicate failures, not latency. Input events (D) track the number of input events, not latency.

189
Multi-Selecteasy

Which of the following are valid activities in an Azure Data Factory pipeline? (Choose three.)

Select 3 answers
A.Copy
B.Databricks Notebook
C.Assign
D.Execute Pipeline
AnswersA, B, D

Correct. Copy activity is a core data movement activity in ADF.

Why this answer

Option A, Copy, is a valid Azure Data Factory pipeline activity that moves data from a source dataset to a sink dataset, supporting dozens of connectors and optional staging, so it is correct. Option B, Databricks Notebook, is a valid ADF activity that runs an Azure Databricks notebook against a linked Databricks workspace, passing parameters and returning output, so it is correct. Option D, Execute Pipeline, is a valid ADF activity that invokes another pipeline as a child pipeline, enabling modular and reusable orchestration, so it is correct.

Option C, Assign, is not an ADF pipeline activity; variable assignment in ADF is done with the Set Variable activity (and Append Variable), while Assign is a control-flow activity in Azure Logic Apps, so it does not belong here.

Exam trap

The trap here is that candidates may think 'Execute Pipeline' is invalid because it's missing 'Activity' in the name, but in practice it is a valid activity. Also, 'Assign' is easily confused with 'Set Variable'.

Why the other options are wrong

C

No such activity in ADF; the correct term is 'Set Variable'.

190
MCQeasy

Your organization uses Microsoft Purview to catalog data assets. You need to ensure that sensitive data such as credit card numbers are automatically detected and labeled. Which Purview feature should you configure?

A.Create an Azure Policy to enforce tagging.
B.Configure a scan rule set with built-in classification rules for sensitive data types.
C.Enable the Data Catalog self-service search.
D.Enable Microsoft Information Protection for the data sources.
AnswerB

Scan rule sets bundle classification rules, including built-in system rules for credit card and other sensitive types, which Purview applies during scans to detect and label matching data automatically. This satisfies the automatic detection requirement in the stem.

Why this answer

Microsoft Purview automatically detects sensitive data types such as credit card numbers through classification rules that are part of a scan rule set. When you configure a scan rule set and include the built-in system classification rules (e.g., Credit Card Number, which matches patterns like 16-digit numbers with Luhn validation), Purview applies those classifications during scans and can then apply sensitivity labels. This is the native mechanism for automated sensitive data detection and labeling in Purview.

Exam trap

The trap is confusing classification with labeling or with policy enforcement; Purview scans and classifies sensitive data, but labels are applied through auto-labeling policies or MIP, not by Azure Policy or the catalog search.

How to eliminate wrong answers

Option A is wrong because Azure Policy enforces resource tagging and compliance at the Azure control plane; it does not scan data contents or classify sensitive data types like credit card numbers. Option C is wrong because Data Catalog self-service search is a discovery/browsing feature for users, not a detection or labeling mechanism. Option D is wrong because Microsoft Information Protection (MIP) provides labeling and protection capabilities but does not itself perform the automated content scanning and classification of data sources; that is done by Purview's scanning and classification engine, which can then integrate with MIP labels.

191
MCQhard

Your organization uses Azure Data Lake Storage Gen2 with hierarchical namespace enabled. You need to grant a service principal read and write access to a specific directory without granting access to the parent directories. What should you use?

A.Assign the Storage Blob Data Contributor role at the directory level using RBAC.
B.Use a managed identity and assign it to the directory.
C.Create a stored access policy on the directory.
D.Set ACLs on the directory with default ACLs for the service principal.
AnswerD

Default ACLs apply only to new child items created within the directory, not to the directory itself or to existing objects, so they cannot grant the service principal read and write access to the target directory directly. This option is tempting because default ACLs are designed to propagate permissions to future files and subdirectories, making them correct when the requirement is to control access for newly created content rather than the existing directory.

Why this answer

Azure RBAC roles for Azure Storage cannot be scoped to a directory or file; they are assigned at the storage account or container level. To grant a service principal read and write access to a specific directory in an Azure Data Lake Storage Gen2 account with hierarchical namespace enabled, use access control lists (ACLs) on that directory. Default ACLs on the directory will be inherited by newly created child items.

Option A is incorrect because the Storage Blob Data Contributor role cannot be assigned at the directory level. Option B is incorrect because a managed identity is an identity, not a permission mechanism. Option C is incorrect because stored access policies are used for shared access signatures (SAS), not for granting directory access.

192
MCQmedium

You are implementing a mapping data flow in Azure Data Factory that processes data from an Azure SQL Database. The data flow includes a derived column transformation that adds a new column based on a complex expression. You need to ensure the expression handles null values appropriately. Which function should you use to replace null values with a default?

A.nullIf
B.iif
C.coalesce
D.isNull
AnswerC

The coalesce function returns the first non-null value from a list of expressions. In a derived column transformation, you can use coalesce(column, default) to replace nulls with a default value. This is the standard way to handle nulls in Azure Data Factory mapping data flows. It is efficient and works with various data types, ensuring that null values are substituted appropriately.

Why this answer

The coalesce function is designed to return the first non-null value from a list, making it ideal for replacing nulls with a default. In a derived column transformation, you can write coalesce(column, 'default') to substitute nulls. Other functions like isNull, nullIf, and iif serve different purposes: isNull checks for null, nullIf creates null, and iif requires a condition.

Therefore, coalesce is the correct function for this scenario.

Exam trap

The trap here is confusing functions that check for nulls with those that replace them, or using a more complex conditional expression when a dedicated function exists.

193
MCQhard

You are designing a data storage solution in Azure Synapse Analytics. You need to load data incrementally from an Azure Data Lake Storage Gen2 source into a dedicated SQL pool. The source files are appended daily with new data, and you must ensure that only new records are loaded without duplicating existing records. The target table has a column named LoadDate that records when each row was inserted. Which approach should you use?

A.Use the COPY statement to load all source files directly into the target table, relying on the primary key to reject duplicates.
B.Use Azure Data Factory to copy all source files to the target table with a daily schedule, and use a tumbling window trigger to avoid duplicates.
C.Use PolyBase to load all source files into a staging table, then use a MERGE statement to insert only rows that do not exist in the target.
D.Use CREATE TABLE AS SELECT (CTAS) to create a new table from the source each day, replacing the target table.
AnswerC

PolyBase efficiently loads data from ADLS Gen2 into a staging table. A MERGE statement can then compare the staging data with the target using a key and insert only new rows, preventing duplicates. This approach supports incremental loads and leverages the LoadDate column if needed for filtering, meeting the requirement without reloading historical data.

Why this answer

Loading into a staging table with PolyBase and then using MERGE to insert only new rows is a standard pattern for incremental loads in a dedicated SQL pool. It avoids reloading historical data and prevents duplicates by comparing keys. The LoadDate column can be used to filter or track inserted rows, ensuring that only new records are added to the target.

Exam trap

The trap here is assuming that a primary key or a scheduled copy automatically prevents duplicates, when deduplication requires an explicit comparison such as MERGE.

194
MCQmedium

You are designing a storage solution in Azure Synapse Analytics for a financial services company. The company ingests trade data into a dedicated SQL pool. The data is partitioned by trade date and queried primarily by date ranges. To improve query performance and reduce data movement, you need to choose an appropriate distribution type for the fact table. The table is large (over 2 billion rows) and frequently joined with a smaller dimension table on a non-distributed key. Which distribution type should you use?

A.Hash-distributed on the join key column
B.Hash-distributed on the trade date column
C.Round-robin distribution
D.Replicated distribution
AnswerA

Hash-distributing on the join key column co-locates rows with the same key on the same distribution, enabling collocated joins that eliminate data movement. This is optimal for large fact tables frequently joined on that key. It also distributes data evenly if the key has high cardinality, improving query performance for joins and aggregations.

Why this answer

For a large fact table frequently joined on a specific key, hash-distributing on that join key ensures that matching rows from both tables reside on the same distribution, enabling collocated joins and avoiding costly data movement. This distribution strategy is recommended when the join key has high cardinality and is used in most queries.

Exam trap

The trap here is assuming that hash-distributing on the most frequently filtered column (like date) is best, but the primary goal is to minimize data movement during joins, not to optimize for filters alone.

195
MCQhard

Your team uses Azure Synapse Analytics serverless SQL pool to query Parquet files in Azure Data Lake Storage Gen2. The query performance is inconsistent, and some queries take a long time to execute. You need to improve query performance. What should you do?

A.Increase the MAXDOP setting in the query
B.Create statistics on the columns used in joins and filters
C.Move the data to a dedicated SQL pool
D.Convert the Parquet files to CSV format
AnswerB

Statistics help the optimizer generate efficient plans.

Why this answer

(Create statistics on the columns used in joins and filters) is correct because serverless SQL pool relies on statistics for optimal query plans. Option A (Increase the maximum degree of parallelism) is not directly applicable. Option C (Convert to CSV) would degrade performance.

Option D (Use a dedicated SQL pool) may be an option but not the best immediate step.

196
MCQmedium

A data engineering team is building a batch processing solution for a financial services company. Data is ingested daily from multiple sources into Azure Data Lake Storage Gen2 in CSV format. The data must be transformed (filtered, aggregated, joined) and loaded into Azure Synapse Analytics dedicated SQL pool. The team must optimize for cost and performance. The total data volume is 2 TB per day. The team has the following options: Option A: Use Azure Data Factory pipelines with copy activity to load raw CSV files into Synapse staging tables, then use T-SQL stored procedures in Synapse to perform transformations. Option B: Use Azure Databricks with Auto Loader to incrementally ingest CSV files, perform transformations in Spark, and write the results to Synapse using the Spark Synapse connector. Option C: Use Azure Data Factory with mapping data flows to transform the data in a serverless environment and then write to Synapse. Option D: Use Azure Synapse Pipelines (built on ADF) with a notebook activity that runs a PySpark notebook in Synapse Spark pool to transform and load data. Which option should the team choose to minimize cost and management overhead while meeting performance requirements?

A.Option B
B.Option C
C.Option A
D.Option D
AnswerB

Serverless, cost-effective, low overhead.

Why this answer

Correct answer: B (Option C — Azure Data Factory mapping data flows). Mapping data flows execute on a serverless Azure Data Factory integration runtime, scaling automatically and costing only per run, which minimizes cost and management overhead. Answer choice A (Option B, Azure Databricks with Auto Loader) requires managing Spark clusters.

Answer choice C (Option A, Azure Data Factory copy activity plus T-SQL stored procedures) requires staging tables and stored procedures. Answer choice D (Option D, Synapse Pipelines with a notebook activity) requires managing Synapse Spark pools. Therefore, mapping data flows are the most cost-effective and lowest-overhead option.

197
MCQeasy

A data engineer needs to process a large dataset stored in Azure Blob Storage using Azure Databricks. The dataset consists of millions of small CSV files. The processing job is slow due to the overhead of reading many small files. Which technique should be used to improve performance?

A.Increase the number of worker nodes in the cluster
B.Convert the CSV files to Parquet format
C.Coalesce the small files into larger files using a Databricks notebook
D.Use Delta Lake caching to store the data in memory
AnswerC

Consolidating millions of small CSVs into fewer large files removes per-file listing and open overhead, which is the stated bottleneck. Databricks reads large files far more efficiently, so coalescing directly addresses the small-file problem and speeds up the job.

Why this answer

Coalescing the millions of small CSV files into larger files reduces the metadata overhead and I/O operations when reading from Azure Blob Storage. Databricks can then process fewer, larger files more efficiently, as each task handles a substantial data chunk rather than incurring the cost of opening and closing many small files.

Exam trap

The trap here is that candidates often assume performance issues are always solved by scaling out (Option A) or by switching formats (Option B), but the DP-203 exam specifically tests the understanding that small file overhead is a distinct problem requiring file consolidation.

How to eliminate wrong answers

Option A is wrong because simply adding more worker nodes does not address the root cause of small file overhead; it may even exacerbate the problem by increasing the number of tasks that each try to read a small file, leading to more scheduler and I/O contention. Option B is wrong because converting CSV to Parquet improves compression and columnar read performance but does not reduce the number of files; the overhead of opening millions of small Parquet files remains similar to CSV. Option D is wrong because Delta Lake caching stores data in memory after it is read, but it does not reduce the initial read overhead of millions of small files; the first read still suffers from the same small file penalty.

198
Multi-Selectmedium

You are monitoring an Azure Data Factory pipeline that copies data from an on-premises SQL Server to Azure Data Lake Storage Gen2. The pipeline runs daily and has recently started taking longer than expected. You need to identify the cause of the performance degradation. Which two actions should you perform? (Choose two.)

Select 2 answers
A.Increase the DIU (Data Integration Units) for the copy activity to improve throughput.
B.Check the on-premises SQL Server performance counters for CPU, memory, and disk I/O during the pipeline run.
C.Review the Data Factory activity run logs in Azure Monitor to identify the duration of each activity.
D.Reconfigure the pipeline to use a self-hosted integration runtime with more nodes.
E.Enable Azure Data Factory diagnostic settings to send logs to Log Analytics and analyze with Kusto queries.
AnswersB, C

The source SQL Server could be the bottleneck due to resource contention. Monitoring its performance counters during the pipeline run can reveal if the server is under heavy load, causing slower data reads. This helps identify whether the degradation is due to source-side issues, which is a common cause in on-premises to cloud copy scenarios.

Why this answer

Reviewing activity run logs helps identify which activity is slow and its duration, while checking on-premises SQL Server performance counters determines if the source is a bottleneck. Together, these diagnostic steps pinpoint the cause of the performance degradation. The other options are either remediation actions or broader monitoring setups that do not directly diagnose the recent slowdown.

Exam trap

The trap here is jumping to remediation like increasing DIU or scaling integration runtime without first diagnosing the root cause of the performance degradation.

199
MCQeasy

You are monitoring an Azure Data Factory pipeline that runs hourly. The pipeline executes a stored procedure in an Azure SQL Database. Recently, you have observed that the pipeline occasionally fails with a 'Deadlock' error when the stored procedure runs. The Azure SQL Database is configured with the 'Read Committed Snapshot' isolation level enabled. You need to resolve the deadlock issue with minimal impact on performance. The stored procedure updates multiple tables in a single transaction and is critical for reporting. What should you do?

A.Change the stored procedure to use NOLOCK hints
B.Remove the transaction from the stored procedure
C.Add retry logic in the Data Factory pipeline for the stored procedure activity
D.Disable the 'Read Committed Snapshot' isolation level
AnswerC

Retry logic in the Data Factory activity handles transient deadlock failures without altering the stored procedure's transaction semantics or isolation level. Since the procedure updates multiple tables in one transaction and is critical for reporting, retrying the activity preserves Read Committed Snapshot behaviour and avoids performance penalties, satisfying the minimal-impact constraint.

Why this answer

Adding retry logic in the Data Factory pipeline for the stored procedure activity is the least invasive fix. Deadlocks are transient by nature — SQL Server chooses a victim and rolls back its transaction — so retrying the activity typically succeeds on the next attempt without changing isolation levels or query semantics.

Exam trap

DP-203 often tests the misconception that disabling RCSI or adding NOLOCK will fix deadlocks — in reality deadlocks are transient and the correct minimal-impact fix is retry logic, not isolation-level changes.

How to eliminate wrong answers

Option A is wrong because NOLOCK hints introduce dirty reads and do not prevent deadlocks; they only reduce shared locks and can cause incorrect reporting data. Option B is wrong because removing the transaction breaks atomicity across the multiple table updates, risking inconsistent reporting data. Option D is wrong because disabling Read Committed Snapshot Isolation would revert to locking reads, increasing blocking and deadlock likelihood rather than reducing it.

200
MCQhard

You are implementing dynamic data masking on an Azure Synapse Analytics dedicated SQL pool. A table named Customers contains columns: CustomerID (int), Email (varchar), Phone (varchar), and CreditCard (varchar). You need to mask the Email and Phone columns so that users without elevated permissions see only the last four characters of the Email and Phone, while users with elevated permissions see the full values. You also need to ensure that the masking does not affect the storage size of the columns. What should you do?

A.Implement row-level security (RLS) on the Customers table to filter rows based on user permissions.
B.Encrypt the Email and Phone columns using Always Encrypted with deterministic encryption and grant decryption keys only to elevated users.
C.Create a masked view that concatenates '****' with the last four characters of Email and Phone, and grant SELECT on the view to users.
D.Use the MASKED WITH (FUNCTION = 'partial(0,"****",4)') clause on the Email and Phone columns and grant UNMASK permission to elevated users.
AnswerD

Dynamic data masking with the partial function allows you to mask a portion of the data while revealing the last four characters. The MASKED WITH clause is applied at the column level without changing storage size. Granting UNMASK permission to elevated users allows them to see the full data. This meets all requirements: masking for regular users, full access for privileged users, and no storage impact.

Why this answer

Dynamic data masking in Azure Synapse Analytics dedicated SQL pools allows you to define masking rules at the column level using the MASKED WITH clause. The partial function can reveal the last four characters while masking the rest. This does not change the underlying storage size because masking is applied at query time.

Granting UNMASK permission to privileged users allows them to see the full data, fulfilling the access requirements.

Exam trap

The trap here is confusing dynamic data masking with encryption or row-level security, which serve different purposes and do not provide partial masking without storage impact.

201
MCQhard

You are designing a real-time analytics solution for IoT devices that emit telemetry data every second. The data must be aggregated every minute and stored in Azure SQL Database for historical analysis. You need to minimize latency and operational overhead. Which approach should you recommend?

A.Use Azure Databricks with Structured Streaming to aggregate and write to SQL Database
B.Use Event Hubs Capture to store raw data in blob storage, then use Azure Data Factory to load into SQL Database hourly
C.Use Azure Stream Analytics with a tumbling window of 1 minute and output to Azure SQL Database
D.Use Azure Functions to process events and write to SQL Database
AnswerC

A tumbling window aggregates each minute's one-second telemetry into a single row, cutting write volume and latency while satisfying the one-minute aggregation requirement. Stream Analytics is fully managed, so operational overhead stays low, and its native Azure SQL Database output sinks results directly for historical analysis.

Why this answer

Azure Stream Analytics natively supports real-time stream processing with tumbling windows, allowing you to aggregate IoT telemetry data every minute and output directly to Azure SQL Database with minimal latency. This approach avoids the overhead of managing clusters (Databricks) or orchestrating batch loads (Data Factory), directly meeting the requirement for low latency and operational simplicity.

Exam trap

The trap here is that candidates often over-engineer the solution by choosing Databricks (Option A) for its flexibility, overlooking that Stream Analytics is purpose-built for low-latency, windowed aggregations with minimal operational overhead, while Databricks adds unnecessary complexity for simple time-based aggregations.

How to eliminate wrong answers

Option A is wrong because Azure Databricks with Structured Streaming introduces significant operational overhead for cluster management and is overkill for simple minute-level aggregation, plus it adds latency from Spark job initialization and checkpointing. Option B is wrong because Event Hubs Capture stores raw data in blob storage, and using Azure Data Factory to load hourly into SQL Database introduces at least 60 minutes of latency, failing the real-time requirement. Option D is wrong because Azure Functions are stateless and event-driven, lacking built-in windowing capabilities for time-based aggregation, so you would need to implement custom state management (e.g., using Durable Functions or external storage), increasing complexity and latency.

202
MCQeasy

You are an administrator for an Azure Synapse Analytics dedicated SQL pool. You execute the T-SQL statements shown in the exhibit. The external table 'dbo.Orders' is created. Which statement about querying this external table is true?

A.Querying the external table automatically imports data into a round-robin distribution.
B.The table cannot be queried until the data is imported into the dedicated SQL pool.
C.You can query the external table using standard T-SQL SELECT statements.
D.You must first create a PolyBase external table before querying.
AnswerC

Dedicated SQL pools expose external tables through the PolyBase engine, so standard T-SQL SELECT statements work against them exactly as with internal tables. The external table definition supplies the schema and the LOCATION pointing to the data in Azure Data Lake Storage, satisfying the requirement to query without loading.

Why this answer

An external table in Azure Synapse Analytics dedicated SQL pool is a read-only abstraction over data stored externally (e.g., in Azure Blob Storage or Azure Data Lake Store). You can query it directly using standard T-SQL SELECT statements without importing data into the pool, leveraging PolyBase to push down predicate filtering and read only the required data.

Exam trap

The trap here is that candidates often assume external tables require an explicit import step before querying, but in reality, PolyBase allows direct querying of external data without any data movement into the dedicated SQL pool.

How to eliminate wrong answers

Option A is wrong because querying an external table does not automatically import data into a round-robin distribution; external tables remain external and data is not stored in the pool unless you explicitly use CREATE TABLE AS SELECT (CTAS) to import it. Option B is wrong because the external table can be queried immediately after creation without importing data; the data stays in external storage and is accessed on-the-fly by PolyBase. Option D is wrong because the T-SQL statements in the exhibit already create a PolyBase external table (using CREATE EXTERNAL TABLE with an external data source and file format), so no additional PolyBase external table creation is needed before querying.

203
MCQmedium

Your organization is using Azure Synapse Analytics dedicated SQL pool. You notice that queries are running slower than expected. Upon reviewing the execution plans, you see that some queries are performing table scans instead of seeks on large fact tables. What is the most likely cause?

A.The statistics on the tables are outdated or missing.
B.The tables are distributed using round-robin distribution.
C.Result-set caching is disabled.
D.The resource class for the user is set to smallrc.
AnswerA

Dedicated SQL pool relies on statistics to estimate cardinality and choose seeks over scans. Outdated or missing statistics mislead the optimiser into underestimating selectivity, producing full table scans on large fact tables. Updating statistics restores accurate costing and enables index seeks.

Why this answer

Outdated or missing statistics prevent the Azure Synapse Analytics dedicated SQL pool query optimizer from accurately estimating row counts and data distribution. Without reliable statistics, the optimizer may incorrectly choose a table scan over a more efficient index seek or partition elimination, leading to slower query performance on large fact tables.

Exam trap

The trap here is that candidates often confuse performance issues caused by distribution type or resource class with the optimizer's reliance on statistics, overlooking that even with optimal distribution and sufficient resources, stale statistics force scans instead of seeks.

How to eliminate wrong answers

Option B is wrong because round-robin distribution evenly distributes data across distributions without considering join keys, which can cause data movement but does not directly cause table scans instead of seeks; scans are a symptom of missing statistics or poor index usage. Option C is wrong because result-set caching only affects repeated execution of the same query by storing results, not the initial query plan choice between scan and seek. Option D is wrong because the resource class (e.g., smallrc) controls memory and concurrency slots for the user, not the query optimizer's decision to use scans versus seeks; scans occur regardless of resource class if statistics are stale.

204
Multi-Selecteasy

Which TWO methods can you use to optimize the cost of storing data in Azure Data Lake Storage Gen2?

Select 2 answers
A.Use customer-managed keys for encryption.
B.Configure lifecycle management policies to move older data to the cool or archive tier.
C.Enable soft delete for blobs.
D.Use Azure Blob Storage access tiers: hot, cool, and archive.
E.Enable geo-redundant storage (GRS) for disaster recovery.
AnswersB, D

Lifecycle management policies automatically transition blobs between hot, cool and archive tiers based on age or last-access rules, directly reducing storage cost for ageing data. This satisfies the requirement to optimise Data Lake Storage Gen2 costs without manual intervention.

Why this answer

Option B is correct because Azure Data Lake Storage Gen2 lifecycle management policies automatically transition blobs to cooler access tiers (cool or archive) or delete them based on age or last-access rules, directly lowering storage costs for infrequently accessed data. Option D is correct because ADLS Gen2 is built on Azure Blob Storage, so data can be stored in the hot, cool, or archive access tiers, and choosing the appropriate tier for each dataset's access pattern minimizes per-GB storage charges. Option A is incorrect because customer-managed keys affect encryption key management and security/compliance, not storage cost.

Option C is incorrect because soft delete retains deleted blobs for a retention period, which adds storage consumption rather than reducing cost. Option E is incorrect because geo-redundant storage increases durability and disaster-recovery capability but raises cost compared with locally redundant storage.

205
MCQeasy

You are developing an Azure Data Factory pipeline that must call an external REST API, parse the JSON response, and load selected fields into an Azure SQL Database. The API requires a bearer token that expires every hour, so the pipeline must obtain a fresh token before each call. You need to implement the token acquisition and header injection without writing custom code in a data flow. What should you use?

A.A Web activity to fetch the token, followed by a Copy activity whose REST source uses the token in an Authorization header.
B.A REST linked service configured with a system-assigned managed identity.
C.A Web activity that calls the token endpoint and a Set variable activity to store the token.
D.A Mapping Data Flow with a REST source and a derived column that generates the token.
AnswerA

This approach uses a Web activity to call the token endpoint and capture the bearer token, then passes it as an Authorization header on the REST source of a Copy activity. It keeps everything declarative within the pipeline, refreshes the token per run, and avoids custom code, which matches the stated requirement.

Why this answer

The pipeline needs to fetch a short-lived bearer token and attach it to an outgoing REST call. A Web activity can invoke the token endpoint and return the token value, which is then supplied as an Authorization header on the REST source of a Copy activity. This pattern is fully declarative, refreshes the token on every run, and satisfies the no-custom-code constraint.

Exam trap

The trap here is reaching for managed identity for any REST authentication, when managed identity only works with services that accept Azure AD tokens and cannot retrieve a third-party bearer token.

206
MCQeasy

You are designing a data storage solution for a company that uses Azure Data Lake Storage Gen2. The company needs to store data in a hierarchical namespace and requires fine-grained access control at the folder and file level. The solution must also support POSIX-style permissions. Which feature should you enable?

A.Enable Azure Defender for Storage.
B.Enable static website hosting on the storage account.
C.Enable blob soft delete on the storage account.
D.Enable hierarchical namespace on the storage account.
AnswerD

Hierarchical namespace is the feature that enables Azure Data Lake Storage Gen2 capabilities, including a true directory hierarchy, POSIX-style permissions, and fine-grained access control lists (ACLs) at the folder and file level. Without it, the storage account behaves like Blob Storage, which lacks these features. Enabling it is the correct action to meet the requirements.

Why this answer

Azure Data Lake Storage Gen2 is built on Blob Storage and adds a hierarchical namespace, which enables directory operations, POSIX-style permissions, and fine-grained ACLs. Enabling hierarchical namespace on the storage account is the required step to gain these capabilities. Other options are unrelated features that do not provide the needed functionality.

Exam trap

The trap here is assuming that any storage account feature can enable hierarchical namespace, but only the hierarchical namespace setting provides ADLS Gen2 capabilities.

207
MCQmedium

A company uses Azure Databricks for data processing. They want to monitor the performance of Spark jobs and set up alerts for job failures. Which Azure service should they use?

A.Azure Advisor
B.Azure Sentinel
C.Azure Log Analytics
D.Azure Monitor
AnswerD

Azure Monitor ingests Azure Databricks diagnostic logs and Spark metrics, enabling alert rules on job failures and performance thresholds. It is the native monitoring plane for the workspace, satisfying the requirement to track Spark job performance and trigger failure alerts.

Why this answer

Azure Monitor is the central service for collecting metrics and logs from Azure Databricks, enabling performance monitoring and alerting on Spark jobs. Option A is incorrect because Azure Advisor provides recommendations but not real-time monitoring or alerts. Option B is incorrect because Azure Sentinel is a SIEM solution for security incidents, not for job performance monitoring.

Option C is incorrect because Azure Log Analytics is a component of Azure Monitor used for log analysis, but the overarching service for monitoring and alerts is Azure Monitor.

Exam trap

Candidates often confuse Azure Monitor with Azure Log Analytics, but Log Analytics is a subset of Monitor. The question asks for the service to use, which is Azure Monitor.

208
Multi-Selectmedium

You are designing a storage solution for a healthcare analytics platform. The data lands in Azure Data Lake Storage Gen2, and analysts must query it through Azure Synapse Analytics serverless SQL pools. Security policy requires that analysts see only the columns relevant to their role, and that access be governed by Microsoft Entra ID identities rather than shared keys. Which two actions should you include in the design? (Choose two.)

Select 2 answers
A.Grant analysts the Storage Blob Data Reader role on the ADLS Gen2 container through Microsoft Entra ID.
B.Enable anonymous public read access on the ADLS Gen2 container so that serverless queries do not require credentials.
C.Create a database scoped credential in the serverless database that stores the storage account access key.
D.Define a SQL view or stored procedure in the serverless database that projects only the columns each role is permitted to see, and grant SELECT on that object.
E.Configure a shared access signature with read permissions and distribute it to each analyst for use in their queries.
AnswersA, D

Synapse serverless SQL pools authenticate to ADLS Gen2 using the caller's Microsoft Entra identity, so granting Storage Blob Data Reader on the container lets analysts read the underlying files. This satisfies the requirement to avoid shared keys while providing least-privilege read access at the storage layer.

Why this answer

Serverless SQL pools in Synapse authenticate to ADLS Gen2 through the caller's Microsoft Entra identity, so Storage Blob Data Reader on the container provides the necessary file access without shared keys. Column-level restriction is then achieved by exposing only approved columns through a view or stored procedure and granting SELECT on that object. Together these actions satisfy both the identity governance and least-privilege column visibility requirements.

Exam trap

The trap here is assuming that storage-layer permissions alone can restrict which columns an analyst sees, when column projection requires a logical SQL object layered over the files.

209
MCQeasy

You are a data engineer at a financial services company. The company uses Azure Cosmos DB for NoSQL to store customer transaction data. The data is partitioned by customerId. The application team needs to run analytical queries that aggregate transactions by date across all customers. These queries are currently slow and consume high RUs. You need to enable faster analytical queries without impacting the transactional workload. What should you do?

A.Increase the provisioned RU/s on the container to handle both transactional and analytical queries.
B.Change the partition key to /date to optimize for analytical queries.
C.Create a materialized view using the change feed and store aggregated data in a separate container.
D.Enable the Azure Cosmos DB analytical store (Synapse Link) and query the data using Azure Synapse Serverless SQL.
AnswerD

Enabling the analytical store (Synapse Link) replicates NoSQL data into a column-oriented store, separate from the transactional row store. Azure Synapse serverless SQL then queries this columnar copy, so cross-partition aggregations by date avoid consuming RUs on the transactional workload — satisfying the isolation constraint.

Why this answer

Enabling the Azure Cosmos DB analytical store (Synapse Link) creates a separate column-oriented store optimized for large-scale analytical queries without consuming RUs from the transactional workload. By querying this analytical store using Azure Synapse Serverless SQL, you can run fast aggregations across all customers by date while the transactional container remains unaffected.

Exam trap

The trap here is that candidates may think increasing RU/s or changing the partition key is a simpler fix, but the DP-203 exam specifically tests the understanding that analytical workloads must be isolated from transactional workloads using a dedicated analytical store like Synapse Link.

How to eliminate wrong answers

Option A is wrong because simply increasing provisioned RU/s does not separate the analytical workload from the transactional workload; both would still compete for the same throughput, and analytical queries would continue to consume high RUs, potentially throttling transactions. Option B is wrong because changing the partition key to /date would destroy the existing container's partitioning strategy, causing hot partitions for high-volume dates and severely degrading transactional performance for customer-based lookups; partition keys cannot be changed after creation without data migration. Option C is wrong because creating a materialized view using the change feed requires custom code to maintain the view, adds operational complexity, and still consumes RUs on the source container for change feed processing, whereas the analytical store provides a fully managed, zero-ETL solution.

210
MCQmedium

You are designing a data storage solution for real-time analytics on IoT telemetry. The system must ingest 10,000 events per second and support sub-second query latency. Which Azure data store should you use?

A.Azure Table Storage.
B.Azure SQL Database with in-memory OLTP.
C.Azure Cosmos DB with analytical store.
D.Azure Data Explorer (ADX).
AnswerD

Azure Data Explorer ingests telemetry at high throughput and indexes it for sub-second queries, satisfying both the 10,000 events per second and low-latency constraints. Its columnar store and Kusto engine suit time-series IoT analytics, unlike row-store or batch-oriented alternatives.

Why this answer

Azure Data Explorer (ADX) is purpose-built for high-velocity telemetry and log analytics, ingesting 10,000+ events per second with sub-second query latency via its columnar storage and distributed query engine. It supports real-time analytics on streaming IoT data without requiring pre-defined schemas or indexing, making it the optimal choice for this scenario.

Exam trap

The trap here is that candidates often confuse Azure Cosmos DB's analytical store with a real-time analytics solution, but it is designed for hybrid transactional/analytical processing (HTAP) on operational data, not for high-velocity streaming telemetry analytics where ADX excels.

How to eliminate wrong answers

Option A is wrong because Azure Table Storage is a NoSQL key-value store designed for simple lookups and batch operations, not for real-time analytics with sub-second query latency on high-velocity streaming data. Option B is wrong because Azure SQL Database with in-memory OLTP is optimized for transactional workloads (OLTP) with high concurrency, not for analytical queries on high-volume telemetry; it cannot sustain 10,000 events per second with sub-second analytical latency. Option C is wrong because Azure Cosmos DB with analytical store is designed for globally distributed operational data with eventual consistency for analytics, but its analytical store uses a separate columnar format optimized for read-heavy workloads, not real-time sub-second queries on streaming IoT telemetry; it introduces higher latency for ingestion and query compared to ADX.

211
MCQhard

You are implementing a Spark Structured Streaming job in Azure Databricks that reads from an Azure Event Hubs topic. The job must handle late-arriving data up to 10 minutes and produce aggregated results every 5 minutes. You need to configure the watermark and window. Which code snippet should you use?

A.df.withWatermark("eventTime", "10 minutes").groupBy(window("eventTime", "5 minutes", "5 minutes")).agg(avg("temperature"))
B.df.withWatermark("eventTime", "5 minutes").groupBy(window("eventTime", "10 minutes")).agg(avg("temperature"))
C.df.withWatermark("eventTime", "10 minutes").groupBy(window("eventTime", "5 minutes")).agg(avg("temperature"))
D.df.withWatermark("eventTime", "10 minutes").groupBy(window("eventTime", "10 minutes", "5 minutes")).agg(avg("temperature"))
AnswerC

This snippet sets a watermark of 10 minutes to allow late data up to that threshold and groups by a 5-minute tumbling window. The watermark defines how long the system waits for late events before finalizing a window, and the window defines the aggregation interval. This matches the requirement to handle late data up to 10 minutes and produce results every 5 minutes, assuming output mode is set appropriately.

Why this answer

The correct configuration requires a watermark of 10 minutes to accommodate late data up to that limit, and a 5-minute tumbling window to produce results every 5 minutes. The withWatermark method sets the watermark on the event time column, and the window function with a single duration creates a tumbling window. The output mode must be set to update or append depending on the sink requirements.

Exam trap

The trap here is swapping the watermark duration and window duration, or using a sliding window when a tumbling window is needed.

212
MCQeasy

You need to monitor the health of your Azure Data Lake Storage Gen2 account. Which metric should you use to track the number of successful and failed requests?

A.Transactions.
B.Success E2E Latency.
C.Blob Capacity.
D.Ingress.
AnswerA

Transactions counts the total number of successful and failed requests against the storage account, directly satisfying the health-monitoring requirement. It is the only metric that surfaces both outcomes, letting you alert on failure spikes without enabling diagnostic logging.

Why this answer

Transactions metric tracks all requests. Option B is wrong because Success E2E Latency measures latency, not count. Option C is wrong because Blob Capacity measures storage size.

Option D is wrong because Ingress is about data incoming, not request count.

213
MCQmedium

You manage an Azure Data Lake Storage Gen2 account containing a large volume of JSON logs. Users frequently query only the last seven days of data, but each query scans the entire dataset, causing high costs and slow response times. You need to reduce the amount of data scanned by queries without changing the data format or moving the data. What should you do?

A.Partition the data by date into separate folders and update queries to filter on the date path.
B.Enable hierarchical namespace on the storage account.
C.Convert the JSON files to Parquet format.
D.Increase the throughput of the storage account.
AnswerA

Partitioning data by date into folders, such as year=2024/month=10/day=01, enables query engines to skip irrelevant folders when a query includes a filter on the partition column. This reduces the amount of data scanned, lowering cost and improving performance. Because the data format remains JSON and the files stay in the same account, no format conversion or data movement is required.

Why this answer

Partitioning the dataset by date and aligning queries with the partition path allows the query engine to prune unnecessary folders, dramatically reducing the bytes scanned. This approach keeps the original JSON format and location, satisfying the constraints. It directly addresses the root cause: lack of data organization that forces full scans.

Exam trap

The trap here is assuming that enabling hierarchical namespace or converting to a columnar format automatically reduces scanned data, when the real benefit comes from physically partitioning the data and filtering on the partition key.

214
Multi-Selectmedium

You are designing a data processing solution in Azure that must handle both batch and streaming data. The solution should use a common storage layer for both and support schema evolution. Which TWO technologies should you recommend?

Select 2 answers
A.Azure Event Hubs
B.Azure SQL Database
C.Apache Kafka on HDInsight
D.Delta Lake (on Azure Databricks)
E.Azure Data Lake Storage Gen2
AnswersD, E

Supports batch and streaming, schema evolution.

Why this answer

Delta Lake (on Azure Databricks) is correct because it provides ACID transactions, scalable metadata handling, and unifies batch and streaming data processing on a data lake, with native schema evolution. Azure Data Lake Storage Gen2 is correct because it provides the common storage layer for both batch and streaming data. Azure Event Hubs is a streaming ingestion service, not a common storage layer, and it does not provide batch processing or unified storage; therefore it is not a correct recommendation for this requirement.

Exam trap

Do not choose Event Hubs just because it handles streaming data. Event Hubs is an ingestion service and is not the common storage layer that supports both batch and streaming workloads with schema evolution. The common storage layer is Azure Data Lake Storage Gen2, while Delta Lake adds unified batch/stream processing and schema evolution.

215
MCQeasy

Your organization needs to ensure that all data stored in Azure Data Lake Storage Gen2 is encrypted at rest using Microsoft-managed keys. What is the default encryption method?

A.Storage Service Encryption (SSE) with Microsoft-managed keys.
B.Transparent Data Encryption (TDE) on the storage account.
C.Client-side encryption with keys stored in Azure Key Vault.
D.Azure Disk Encryption on the storage nodes.
AnswerA

Storage Service Encryption is enabled by default on every Azure Data Lake Storage Gen2 account, encrypting data at rest with Microsoft-managed keys automatically. No configuration is required, satisfying the requirement for Microsoft-managed key encryption without customer key setup.

Why this answer

Azure Data Lake Storage Gen2 is built on Azure Blob Storage, which automatically encrypts all data at rest using Storage Service Encryption (SSE) with Microsoft-managed keys by default. This encryption is always enabled and cannot be disabled. Microsoft-managed keys are used unless you choose to use customer-managed keys.

Exam trap

DP-203 often tests the default encryption method for storage services, and candidates may confuse TDE (for databases) or client-side encryption with the default SSE, leading to incorrect answers.

How to eliminate wrong answers

Option B is wrong because Transparent Data Encryption (TDE) is used for Azure SQL Database and SQL Managed Instance, not for storage accounts. Option C is wrong because client-side encryption is an optional feature where you encrypt data before uploading, not the default. Option D is wrong because Azure Disk Encryption is for VM disks, not for Data Lake Storage.

216
MCQeasy

Your team is developing a data processing solution in Azure Synapse Analytics. You need to ensure that the solution can automatically scale compute resources based on workload demand for serverless SQL pools. Which feature should you configure?

A.Set a cache size for the serverless SQL pool
B.Configure a dedicated SQL pool with auto-scaling
C.Use workload classification to assign resources
D.Enable auto-resume and auto-pause on the serverless SQL pool endpoint
AnswerD

Incorrect. Auto-resume and auto-pause do not scale compute resources; they only manage when the pool is active. Serverless SQL pools scale automatically without this feature.

Why this answer

Serverless SQL pools in Azure Synapse Analytics automatically scale compute resources based on workload demand without requiring any configuration. None of the provided options enable this automatic scaling. Auto-resume and auto-pause only control the pool's active state, not its compute size.

Dedicated SQL pool features like auto-scaling, cache sizing, and workload classification do not apply to serverless pools.

Exam trap

Candidates often assume that serverless SQL pools require a scaling configuration or that auto-resume/auto-pause scales compute resources. In reality, scaling is automatic and not configurable; auto-resume/auto-pause only manage availability.

How to eliminate wrong answers

Option A is wrong because serverless SQL pools do not have a configurable cache size; caching is managed automatically by the service and cannot be set by the user. Option B is wrong because a dedicated SQL pool with auto-scaling is a separate resource type that scales compute by adding or removing Data Warehouse Units (DWUs), but the question specifically asks about serverless SQL pools, which do not use dedicated compute resources. Option C is wrong because workload classification is a feature for dedicated SQL pools (formerly SQL Data Warehouse) to assign resources and priorities to different workloads; serverless SQL pools do not support workload classification as they automatically manage resource allocation.

217
MCQeasy

You need to incrementally load new and updated records from a source SQL Server database to Azure Synapse Dedicated SQL Pool. The source table has a LastModifiedDate column. Which Azure Data Factory feature should you use to implement incremental loading efficiently?

A.Alter Row transformation
B.Incremental copy (watermark) pattern using a Lookup activity and a Copy activity
C.Schedule trigger
D.Lookup activity alone
AnswerB

The watermark pattern uses a Lookup activity to retrieve the maximum LastModifiedDate already copied, then a Copy activity filters the source on LastModifiedDate greater than that value. This satisfies the incremental requirement, moving only new and updated rows rather than reloading the whole table each run.

Why this answer

The incremental copy (watermark) pattern using a Lookup activity and a Copy activity is the correct approach because it allows you to query the source table for the maximum LastModifiedDate value (the watermark), store it in a control table or variable, and then use a Copy activity with a WHERE clause to load only rows where LastModifiedDate is greater than the last run's watermark. This pattern is purpose-built for efficiently handling new and updated records in Azure Data Factory without reprocessing the entire dataset.

Exam trap

The trap here is that candidates often confuse a scheduling mechanism (Schedule trigger) with the actual data processing logic required for incremental loads, or they mistakenly think a single activity like Lookup or Alter Row can handle the entire incremental copy workflow without understanding the need for a watermark pattern.

How to eliminate wrong answers

Option A is wrong because Alter Row transformation is a data flow transformation used to mark rows for insert, update, upsert, or delete in a sink, but it does not provide the incremental loading logic or watermark mechanism needed to identify new/updated rows from a source. Option C is wrong because a Schedule trigger only defines when a pipeline runs (e.g., every hour), but it does not implement the incremental copy logic itself; you still need the watermark pattern inside the pipeline. Option D is wrong because a Lookup activity alone can retrieve the watermark value but cannot copy data; it must be combined with a Copy activity to actually move the incremental rows.

218
MCQmedium

You are designing a data pipeline in Azure Synapse Analytics to ingest data from Azure Blob Storage into a dedicated SQL pool. The source files are CSV with varying row lengths, and you need to ensure optimal performance for reads. Which file format and compression should you recommend?

A.Avro with Deflate compression
B.CSV with Gzip compression
C.Parquet with Snappy compression
D.ORC with Zlib compression
AnswerC

Parquet is columnar, so Synapse reads only referenced columns and skips irrelevant data, while Snappy decompresses quickly at low CPU cost. This combination delivers the optimal read performance the variable-length CSV source rows cannot provide.

Why this answer

Parquet with Snappy compression is optimal for dedicated SQL pools in Azure Synapse Analytics because Parquet is a columnar format that enables efficient predicate pushdown and column pruning, reducing I/O. Snappy provides fast compression/decompression with minimal CPU overhead, which is critical for high-throughput reads in a distributed MPP environment.

Exam trap

Microsoft often tests the misconception that row-based formats like Avro or CSV are suitable for analytical workloads, but the trap here is that columnar formats (Parquet/ORC) are required for optimal read performance in Synapse dedicated SQL pools, and Snappy is preferred over Zlib for speed-critical pipelines.

How to eliminate wrong answers

Option A is wrong because Avro is a row-based format that does not support columnar pruning, leading to higher I/O for analytical queries on dedicated SQL pools. Option B is wrong because CSV with Gzip compression is row-oriented and not splittable at the row level, causing poor parallelism and slower read performance in Synapse. Option D is wrong because ORC with Zlib compression offers higher compression ratios but significantly slower decompression compared to Snappy, which can bottleneck read performance in Synapse's MPP engine.

219
MCQeasy

You are creating an Azure Data Factory data flow that transforms data from an Azure SQL Database. The data flow must filter rows based on a column value and then aggregate the results. Which transformation should you use first?

A.Filter transformation
B.Derived Column transformation
C.Join transformation
D.Aggregate transformation
AnswerA

The Filter transformation allows you to select rows based on a condition. Applying it first reduces the number of rows that subsequent transformations must process, improving performance and ensuring that aggregation only includes relevant data. In a data flow, transformations are executed in the order they are defined, so placing Filter before Aggregate is the correct sequence to meet the requirement of filtering then aggregating.

Why this answer

Filtering rows before aggregation reduces the amount of data processed by the Aggregate transformation, improving performance and ensuring that only relevant rows are aggregated. The Filter transformation is designed to select rows based on a condition, making it the appropriate first step. Other transformations like Aggregate, Derived Column, or Join do not directly filter rows and would be less efficient or incorrect in this context.

Exam trap

The trap here is assuming that the order of transformations doesn't matter or that aggregation should come first for performance, when actually filtering first reduces the data volume and ensures correct aggregation results.

220
MCQeasy

You are developing a data processing solution that requires aggregating sales data from multiple CSV files stored in Azure Data Lake Storage Gen2. The data should be cleansed and transformed before loading into Azure Synapse Analytics. Which Azure service should you use to implement a code-free transformation pipeline?

A.Azure HDInsight with Hive
B.Azure Analysis Services
C.Azure Data Factory with Mapping Data Flows
D.Azure Databricks with PySpark
AnswerC

Mapping Data Flows provide a visual, code-free canvas for joins, aggregations and transformations that run on Spark clusters. This satisfies the code-free transformation requirement while reading CSV files from Data Lake Storage Gen2 and loading Synapse.

Why this answer

Azure Data Factory with Mapping Data Flows allows code-free visual transformations. Azure Databricks and HDInsight require code. Azure Analysis Services is for tabular modeling, not data processing.

221
MCQmedium

You are designing a data storage solution for a retail company that expects high volumes of small, time-series sensor data from thousands of IoT devices. The data must be stored cost-effectively and queried by time range with low latency. Which Azure data store should you recommend?

A.Azure Cosmos DB with analytical store
B.Azure SQL Database with columnstore indexes
C.Azure Blob Storage with Azure Data Lake Storage Gen2
D.Azure Data Explorer (ADX)
AnswerD

Azure Data Explorer is purpose-built for time-series telemetry, using columnar storage and time-based partitioning to return range queries over billions of small IoT records with low latency. It ingests high-volume streaming data cost-effectively, matching the retail scenario's throughput and query pattern.

Why this answer

Azure Data Explorer (ADX) is optimized for high-volume, time-series data ingestion and low-latency queries over time ranges. It uses a columnar storage engine and automatic indexing, making it cost-effective for sensor data from thousands of IoT devices.

Exam trap

The trap here is that candidates often choose Azure Blob Storage with Data Lake Storage Gen2 because it is cheap for storage, but they overlook that it lacks native query capabilities for low-latency time-series queries, requiring additional compute layers.

How to eliminate wrong answers

Option A is wrong because Azure Cosmos DB with analytical store is designed for globally distributed, multi-model data with operational and analytical workloads, not specifically for high-throughput time-series ingestion and time-range queries at low cost. Option B is wrong because Azure SQL Database with columnstore indexes is a relational database optimized for transactional workloads and analytical queries on structured data, but it cannot efficiently handle the high ingestion rates and time-series query patterns of thousands of IoT devices without significant cost and performance overhead. Option C is wrong because Azure Blob Storage with Azure Data Lake Storage Gen2 is a hierarchical file storage for big data analytics, not a query engine; it requires additional compute services like Azure Synapse or Spark to query time-series data, adding latency and complexity.

222
MCQhard

You are implementing a solution in Azure Databricks that reads from a Delta Lake table and writes to another Delta Lake table. The pipeline must process data incrementally and handle updates and deletes from the source. Which feature should you use to read the changes?

A.Change data feed (CDF) on the source Delta table.
B.Auto Loader with schema inference.
C.Delta Lake's ACID transactions with optimistic concurrency.
D.Time travel using the versionAsOf option.
AnswerA

Change data feed (CDF) on a Delta table records row-level changes (inserts, updates, deletes) and allows downstream consumers to read only the changes since a specific version. This enables incremental processing and correctly handles updates and deletes, which is essential for maintaining an accurate target table without full reprocessing.

Why this answer

Change data feed (CDF) is the correct feature because it records row-level changes in a Delta table and allows reading them as a stream. This enables incremental processing that includes inserts, updates, and deletes, ensuring the target table stays in sync. Other options either do not provide change data or are not designed for this purpose.

Exam trap

The trap here is confusing time travel with change data capture; time travel lets you query old versions but does not give you the delta of changes between versions.

223
MCQmedium

Your organization uses Azure Synapse Analytics dedicated SQL pool. You need to ensure that all data at rest in the SQL pool is encrypted using a customer-managed key stored in Azure Key Vault. What should you configure?

A.Implement Always Encrypted with column encryption keys stored in Azure Key Vault.
B.Configure Dynamic Data Masking to obfuscate sensitive data.
C.Enable Azure Storage Service Encryption with a customer-managed key.
D.Enable Transparent Data Encryption (TDE) with a customer-managed key in Azure Key Vault.
AnswerD

Transparent Data Encryption operates at the storage layer, encrypting data and log files at rest, and supports a customer-managed key held in Azure Key Vault — satisfying the stem's requirement that the dedicated SQL pool's data at rest be encrypted under organisational key control.

Why this answer

Transparent Data Encryption (TDE) with a customer-managed key in Azure Key Vault encrypts the dedicated SQL pool's data at rest (data files, log files, backups) and allows the organization to control and rotate the encryption key. TDE is the native at-rest encryption mechanism for Azure Synapse dedicated SQL pools. Configuring it with a customer-managed key in Key Vault meets the requirement precisely.

Exam trap

DP-203 often tests the confusion between TDE (at-rest encryption of the whole database), Always Encrypted (column-level, client-side), and Storage Service Encryption (storage account level) — candidates must match the encryption scope to the requirement.

How to eliminate wrong answers

Option A is wrong because Always Encrypted protects individual columns from the database engine itself and is designed for client-side encryption of specific sensitive columns, not for encrypting all data at rest in the pool. Option B is wrong because Dynamic Data Masking only obfuscates data in query results for non-privileged users; it does not encrypt data at rest. Option C is wrong because Azure Storage Service Encryption applies to Azure Storage accounts (blobs, files), not to the dedicated SQL pool's internal storage, which is managed by the SQL engine.

224
MCQhard

You have an Azure Data Lake Storage Gen2 account that contains sensitive data. You need to implement a solution that enforces access control at the file and folder level, and also allows you to audit access. You want to minimize administrative effort. What should you do?

A.Use shared access signatures (SAS) with specific permissions and IP restrictions, and enable Azure Defender for Storage.
B.Configure Azure Private Endpoints and enable firewall rules to restrict access to the storage account.
C.Enable hierarchical namespace and configure POSIX access control lists (ACLs) on files and folders, and enable Azure Storage logging to capture access.
D.Enable Azure role-based access control (RBAC) on the storage account and assign the Storage Blob Data Contributor role to users.
AnswerC

Hierarchical namespace enables file and folder level ACLs, allowing granular permissions similar to a file system. Azure Storage logging (or Azure Monitor integration) can capture access details for auditing. This combination provides fine-grained access control and auditing with minimal administrative effort, as ACLs can be inherited and managed via tools like Azure Storage Explorer or scripts.

Why this answer

To enforce access control at the file and folder level, you need to enable hierarchical namespace and use POSIX ACLs. This allows granular permissions on directories and files. To audit access, enable Azure Storage logging or integrate with Azure Monitor.

This solution minimizes administrative effort because ACLs can be inherited and managed centrally. The other options either provide only coarse-grained access control or focus on network security rather than access auditing.

Exam trap

The trap here is assuming that Azure RBAC or SAS tokens provide file-level access control, when they are either too coarse or not designed for persistent granular access.

225
Multi-Selectmedium

You are designing a data storage solution in Azure Synapse Analytics. You need to store large fact tables that are frequently joined with dimension tables on a common column. The solution must minimize data movement during query execution and support high-concurrency queries. Which two actions should you take? (Choose two.)

Select 2 answers
A.Use hash distribution on the join column for the fact table.
B.Use round-robin distribution for the fact table.
C.Use replicated tables for dimension tables.
D.Use a columnstore index on the fact table.
E.Use hash distribution on a column with high cardinality for the fact table.
AnswersA, C

Hash distribution on the join column colocates rows with the same key on the same distribution, minimizing data movement during joins. This is especially effective for large fact tables joined with dimension tables on that key. It improves query performance by reducing shuffling across distributions, which is critical for high-concurrency workloads.

Why this answer

Hash distributing the fact table on the join column and replicating the dimension tables minimizes data movement by colocating matching rows and eliminating shuffling of dimension data. These actions directly address the need for efficient joins and high concurrency in Azure Synapse Analytics dedicated SQL pools.

Exam trap

The trap here is focusing solely on indexing or distribution method without considering the join column alignment, which is key to minimizing data movement.

Page 2

Page 3 of 7

Page 4

All pages