我们有一个 IoT 场景,使用 Azure Event Hub 作为我们的数据摄取服务。我们建议的架构是,我们在 EH 上有一个事件捕获(窗口 = 15 分钟),使用 Azure Batch 服务在一天结束时处理捕获的数据/全天定期间隔,然后存储在冷库(blob/数据湖)中。我们还希望有一个 Event Hub -> Function App -> Cosmos DB 管道,用于通过事件捕获方法可能无法获得的瞬时查询(因为它们不会是瞬时的)。关于 cosmos db 的存储,我们计划有一个 ttl = 24/48 小时。现在的问题是,如果我们选择 deviceId 及以上 ttl 的分区,我们将无法有效利用该分区(最大 = 10GB),并且有多个分区会影响成本。所以,我的问题是其他策略(其他数据库)
- 尝试过单分区集合 - 在移动到更高规模的设备时不会有用
- 按时间(小时/分钟)分区,这意味着预付费模型,这是不希望的