Courseiva

DP-900 Practice Question: Describe considerations for working with non-relational data on Azure

A smart city application collects sensor data from thousands of devices. Data is ingested as JSON messages containing deviceId, timestamp, and reading value. The application must support fast point reads by deviceId and also run queries to retrieve all readings for a specific deviceId within a time range. The development team prefers a SQL-like query language. Which Azure Cosmos DB API should they choose?

⚠ Common exam trap

Microsoft often tests the misconception that any API with a SQL-like name (like Cassandra's CQL) is equivalent to the SQL (Core) API, but the key differentiator is native JSON support and the specific query language syntax preferred by the team.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

SQL (Core) API

The SQL (Core) API is the best choice because it natively supports SQL-like querying, enabling both fast point reads by deviceId (using the partition key) and efficient time-range queries on a specific deviceId. It also provides native JSON support, which aligns with the JSON message format from the sensors, and allows indexing on timestamp for range queries.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • SQL (Core) API

    Why this is correct

    The SQL (Core) API is the correct answer for this smart city workload because it is Azure Cosmos DB's native document model, storing sensor JSON telemetry directly and providing an ANSI-SQL-like query syntax. This API supports efficient point reads via id and partition key, and it indexes all fields by default, so you can run fast range filters such as timestamp BETWEEN ... AND ... to retrieve a sensor's data over a specific time window. Given the team is already comfortable with SQL-like language, this is the most natural fit.

  • Table API

    Why it's wrong here

    The Table API is a key-value store that returns entities consisting of simple scalar properties, not JSON documents. It supports lookups primarily by PartitionKey and RowKey, and although it can perform OData-style filter expressions, it lacks SQL-like query syntax and cannot efficiently answer complex time-range queries across thousands of devices without careful key design. This makes it less suitable than the SQL API for time-series sensor analysis.

    When this WOULD be correct

    A question where the application only needs fast point reads by a single partition key (e.g., deviceId) with no requirement for range queries or SQL-like syntax, and the team prefers a simple key-value interface.

  • MongoDB API

    Why it's wrong here

    The MongoDB API in Azure Cosmos DB does work with JSON documents and provides rich query capabilities, including range operators on timestamps; however, its query syntax is native MongoDB, such as find({timestamp: {$gte: ...}}). Because the team explicitly prefers a SQL-like language, the Mongo API would force them to adapt to Mongo constructs instead of standard SQL. It is a good choice only if the application already uses the MongoDB SDK, but it is not the correct answer for this requirement.

    When this WOULD be correct

    A question where the application uses an existing MongoDB client library, requires document storage with flexible schema, and needs to support geospatial queries or aggregation pipelines that are native to MongoDB. The team prefers a NoSQL query language over SQL.

  • Cassandra API

    Why it's wrong here

    The Cassandra API is a wide-column store that uses CQL (Cassandra Query Language), which looks similar to SQL but has significant restrictions in practice. Range queries on a time column require the time component to be part of the clustering key, and every CQL query must first identify a partition key, making ad-hoc time-range queries across all sensors impractical. Additionally, CQL does not support joins, aggregation across partitions, or rich nested JSON documents, so it does not meet the stated need for SQL-like language and flexible time-series filtering.

    When this WOULD be correct

    A scenario where the application requires a distributed, highly available NoSQL database with a wide-column store, needs to handle massive write throughput, and the queries are primarily by partition key (e.g., deviceId) with eventual consistency, and the team prefers a CQL-like query language.

Option-by-option analysis

Why each answer is right or wrong

Understanding why wrong answers are wrong — and when they would be correct — is what separates a 750 score from a 900. The DP-900 exam frequently reuses these exact scenarios with slightly different constraints.

SQL (Core) APICorrect answer

Why this is correct

The SQL (Core) API is the correct answer for this smart city workload because it is Azure Cosmos DB's native document model, storing sensor JSON telemetry directly and providing an ANSI-SQL-like query syntax. This API supports efficient point reads via id and partition key, and it indexes all fields by default, so you can run fast range filters such as timestamp BETWEEN ... AND ... to retrieve a sensor's data over a specific time window. Given the team is already comfortable with SQL-like language, this is the most natural fit.

Table APIWrong answer — click to see why

Why this is wrong here

The Table API uses OData and RESTful queries, not SQL-like query language, and is optimized for key-value lookups, not efficient time-range queries on a secondary field like timestamp.

★ When this WOULD be the correct answer

A question where the application only needs fast point reads by a single partition key (e.g., deviceId) with no requirement for range queries or SQL-like syntax, and the team prefers a simple key-value interface.

Why candidates choose this

Candidates may confuse the Table API's simple schema and key-based access with the need for fast point reads, overlooking the requirement for SQL-like queries and time-range filtering.

MongoDB APIWrong answer — click to see why

Why this is wrong here

The MongoDB API uses a MongoDB query language, not SQL. The question explicitly requires a SQL-like query language, making the MongoDB API unsuitable.

★ When this WOULD be the correct answer

A question where the application uses an existing MongoDB client library, requires document storage with flexible schema, and needs to support geospatial queries or aggregation pipelines that are native to MongoDB. The team prefers a NoSQL query language over SQL.

Why candidates choose this

Candidates may associate JSON data with MongoDB, as MongoDB stores documents in BSON (similar to JSON), and mistakenly think its query language is SQL-like or that it supports SQL queries.

Cassandra APIWrong answer — click to see why

Why this is wrong here

The Cassandra API uses CQL (Cassandra Query Language), not SQL, and is optimized for high-throughput writes and partition-based queries, not for efficient time-range queries on a specific partition key without additional indexing considerations.

★ When this WOULD be the correct answer

A scenario where the application requires a distributed, highly available NoSQL database with a wide-column store, needs to handle massive write throughput, and the queries are primarily by partition key (e.g., deviceId) with eventual consistency, and the team prefers a CQL-like query language.

Why candidates choose this

Candidates may confuse Cassandra's CQL with SQL, or think that because Cassandra supports time-series data and queries by partition key, it would be suitable for this use case, overlooking the specific need for SQL-like query language and efficient time-range queries.

Analysis generated from the official DP-900blueprint and verified against question context. The “when correct” sections are what AI assistants cite when candidates ask “what’s the difference between these options?”

About these practice questions

Courseiva writes every DP-900 question from scratch — 820 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This DP-900 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DP-900 exam.