Courseiva

Choose Partition Key for Common Queries in Cosmos DB

A gaming company stores player game scores in Azure Cosmos DB. Each document contains PlayerID, GameID, Score, Timestamp. The most common query is: 'Get all scores for a specific game ordered by score descending'. Which partition key should be chosen to minimize Request Unit (RU) consumption?

Quick Answer

The answer is GameID. Choosing GameID as the partition key for common queries in Cosmos DB minimizes Request Unit (RU) consumption because the most frequent query filters on GameID, allowing Cosmos DB to route the request directly to the single physical partition holding that game’s data, avoiding a costly cross-partition fan-out. On the Microsoft Azure Data Fundamentals DP-900 exam, this scenario tests your understanding that an effective partition key should match the filter in your most common query to ensure efficient index lookup and data retrieval. A common trap is selecting PlayerID, which would scatter scores across partitions and force a scan of every partition for each game query, dramatically increasing RU cost. Remember the memory tip: “Partition key equals query filter key” — if your query says WHERE GameID = X, your partition key should be GameID.

⚠ Common exam trap

The trap here is that candidates often pick PlayerID thinking it uniquely identifies each player, but they overlook that the query filters on GameID, making GameID the only partition key that avoids cross-partition queries and minimizes RU consumption.

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

GameID

GameID is the correct partition key because the most common query filters on GameID, and Cosmos DB routes queries to the exact physical partition(s) containing that GameID. This avoids cross-partition fan-out, minimizing RU consumption. A partition key that matches the query filter ensures efficient index lookup and data retrieval.

Answer analysis

Option-by-option breakdown

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

  • PlayerID

    Why it's wrong here

    Using PlayerID would distribute a player's scores across game partitions? Actually, each document has a single PlayerID and GameID. If partitioned by PlayerID, all scores for a player are together, but querying by GameID would need to touch all partitions.

  • GameID

    Why this is correct

    Partitioning by GameID collocates all scores for a game in one partition, so the query targeting a specific GameID is a single-partition query, consuming fewer RUs.

  • Score

    Why it's wrong here

    Partitioning by Score would distribute documents with the same score across partitions, and the query by GameID would still be cross-partition, leading to high RU consumption.

  • Timestamp

    Why it's wrong here

    Partitioning by Timestamp could lead to hot partitions and does not help queries that filter by GameID; the query would require scanning across partitions.

About these practice questions

This DP-900 question is part of Courseiva's 820-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

1 more way this is tested on DP-900

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. A mobile game company stores player scores in Azure Cosmos DB. Each document contains the fields PlayerID (unique to the player), GameID, Score, and Timestamp. The most common query is: 'Retrieve all scores for a specific GameID, ordered by Score descending.' Which property should be chosen as the partition key to minimize Request Unit (RU) consumption?

medium
  • A.PlayerID
  • B.GameID
  • C.Score
  • D.Timestamp

Why B: GameID is the correct partition key because the most common query filters on GameID, and using it as the partition key ensures that all documents for a given GameID are stored in the same physical partition. This allows the query to target a single partition, minimizing cross-partition fan-out and reducing Request Unit (RU) consumption. A partition key that matches the query filter is essential for efficient, low-latency reads in Azure Cosmos DB.

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.