You are designing an Azure Cosmos DB Core (SQL) API container for an IoT smart grid monitoring system. The system receives telemetry from electrical substations (`substationId`). Substation 1 is a major hub that handles of the grid's power transmission and has active smart sensors reporting status updates. The other substations have only sensors each. During peak periods, the container must ingest up to writes per second.
The system has the following requirements:
* Transactional Boundary: For every sensor update, the system must write both a telemetry status document and an associated alarm log document (if a threshold is exceeded) in a single transactional batch. These two documents share the same `sensorId` and `substationId` values.
* Query Profile: The primary read workload consists of real-time control room dashboard queries that retrieve and aggregate telemetry for a specific `substationId` over a rolling -minute window.
Which partitioning strategy should you implement to meet these requirements while avoiding hot partitions?
- AUse the `substationId` property directly as the partition key.
- BUse the `sensorId` property directly as the partition key.
- CUse a synthetic partition key combining `substationId` and a random integer suffix generated at runtime (e.g., `substationId_randomSuffix`).
- Use a synthetic partition key combining `substationId` and a deterministic hash of the `sensorId` (e.g., `substationId_hashSuffix`).Cevap