Microsoft DP-203 Data Engineering on Azure 1-10

表示モード
画像位置
文字位置
理解度の自動記録
STATUS FILTER

Choose confidence levels to display

Loading...
Q1DP-203
Show answer
Correct answer: B. Create a pull request and merge the changes into the main branch.

With Git integration in Azure Data Factory, you must integrate changes into the collaboration branch before publishing to the live environment.
Changes in the feature branch xyz cannot be published directly; you first merge them into the main branch through a pull request so they become the team’s shared state.
After that, running the Publish operation applies them to the live environment.
Therefore the first action to take is to merge into main, and correctly understanding the branching strategy and the publish flow is important.
Source control in Azure Data Factory

Q2DP-203
P1

P2

Show answer
Correct answer: Set the copy method to PolyBase / Set the copy method to Bulk insert

P1 moves data from the dedicated SQL pool of WS1 to Azure Data Lake Storage Gen2.
In this configuration, using PolyBase lets you load large volumes of data in parallel and delivers the highest performance.
P2, on the other hand, handles text-delimited files, so PolyBase cannot be used and you must choose Bulk insert.
Understanding the compatibility between the data format and the load method, and using the copy method appropriately, is what maximizes Synapse performance.
What is Azure Synapse Analytics?

Q3DP-203
Show answer
Correct answer: C. Azure Stream Analytics

Because the requirements are real-time processing and reuse of existing C# code, Azure Stream Analytics is the best fit.
In particular, when running on IoT Edge, you can reuse the existing logic as-is through C# user-defined functions (UDFs).
Databricks is mainly for batch processing with Spark, Event Grid is for event notification, and Data Factory is for batch integration, so none of them meet the requirement.
Therefore Stream Analytics, which supports both real-time analytics and C# reuse, is the correct answer.
Azure Stream Analytics on IoT Edge

Q4DP-203
Storage (destination)

Format

Show answer
Correct answer: Time-slice partitions within the folder / Apache Parquet

To efficiently ingest the large number of files added each day, it is important to partition the folder by time (time slices).
This lets you load only the new data and minimizes the scan range.
For the file format, using Apache Parquet, which is columnar and highly compressible, improves I/O and query performance.
Row-oriented CSV or JSON is inefficient because it reads even unnecessary columns.
The combination of time partitioning and Parquet is optimal for minimizing the incremental load time.
Create and use external tables

Q5DP-203
[1] (clause that creates the object)

[2] (function that references Parquet)

Show answer
Correct answer: CREATE VIEW / OPENROWSET

When directly referencing Parquet on Data Lake Storage Gen2 from a serverless SQL pool, you use OPENROWSET to read the external data.
The SQL in this question retrieves only the id and address columns from Parquet, so OPENROWSET goes in [2].
Also, rather than CREATE TABLE, which creates a physical table, it is common to use CREATE VIEW, which exposes only the required columns without moving the data.
Therefore [1] is CREATE VIEW and [2] is OPENROWSET.
Create and use external tables

Q6DP-203
Show answer
Correct answer: C. Create an external table that contains a subset of the columns in the Parquet files.

Because Parquet is a columnar format, a configuration that references only the columns you need is effective for optimizing both storage and query cost.
By limiting the external table to only the necessary columns, you avoid reading unneeded columns and reduce the amount scanned by the serverless SQL pool.
OPENROWSET is merely a way to reference the data and is not a means to lower the storage cost itself.
It is important to choose a design that takes advantage of the columnar format’s characteristics.
Use external tables in Synapse SQL – Azure

Q7DP-203
Statement Yes No
This query creates a table named datarows.
The file https://mydatalake.blob.core.windows.net/data/file1 is read.
The file https://mydatalake.blob.core.windows.net/data/folder1/file1.csv is read.
Show answer
Correct answer: Statement 1 “No” / Statement 2 “No” / Statement 3 “Yes”

datarows is not a table name but an alias given to the OPENROWSET result set, and no table is created.
Therefore the first statement is false.
The /** at the end of the BULK path recursively traverses folders and targets files in subfolders.
file1 directly under data is not read, but data/folder1/file1.csv is read.
It is important to distinguish the meaning of the wildcard specification from that of the alias.
Query folders and multiple files by using a serverless SQL pool

Q8DP-203
Show answer
Correct answer: A. 40

In a dedicated SQL pool, data is internally split across 60 distributions, so for optimal columnstore compression, roughly one million rows per partition is the guideline.
From the total of 2.4 billion rows, 2.4 billion / (1 million x 60) = 40.
Creating too many partitions reduces the number of rows per segment and lowers columnstore compression efficiency and query performance.
A design that partitions at the appropriate granularity is important, and the optimal number of ranges is 40.
Best practices for dedicated SQL pools – Azure Synapse Analytics

Q9DP-203
[1] (aggregate function)

[2] (windowing function)

[3] (date function)

Show answer
Correct answer: MAX / TumblingWindow / DATEDIFF

To find the last event in each 10-minute interval, you first need to divide events into 10-minute units.
You use TumblingWindow, which creates fixed-length, non-overlapping time windows ([2]).
Next, to get the latest time within each window, [1] uses MAX(Time).
Furthermore, when joining the original data with the latest time, DATEDIFF is used in [3] to evaluate the difference in time, relating the target events as in DATEDIFF(minute, Input, LastInWindow) BETWEEN 0 AND 10.
Windowing functions in Azure Stream Analytics

Q10DP-203
Cost minimization

Deletion method

Show answer
Correct answer: Locally redundant storage (LRS) / Azure Storage lifecycle management

To minimize cost, you need to reduce redundancy, and choosing locally redundant storage (LRS) is the lowest cost.
For automatic deletion of blobs older than 365 days, automatically deleting them with an Azure Storage lifecycle management policy is the best approach.
An Automation runbook has high operational overhead, and soft delete is a feature for undoing deletions, so it does not meet the requirement.
Therefore the combination of LRS and lifecycle management is the optimal solution.
Overview of Azure Blob Storage lifecycle management