Azure流分析作业降级,同时将数据推送到cosmos DB

Azure流分析作业降级,同时将数据推送到cosmos DB,azure,azure-cosmosdb,azure-iot-hub,azure-stream-analytics,Azure,Azure Cosmosdb,Azure Iot Hub,Azure Stream Analytics,我有来自Azure IoT Hub->Stream Analytics->CosmosDB的推送数据 我有一个模拟设备,我的cosmos DB收集的1000 RU/s运行良好。 现在我已经制作了10台模拟设备,我的Cosmos DB收集扩展到15000 RU/s,但我的流分析仍然在降级 是否需要增加集合的并行连接数 我们能否使其更为优化,因为Cosmos DB的Azure定价取决于吞吐量和RU 我们能否使其更为优化,因为Cosmos DB的Azure定价取决于 吞吐量和RUs 我只想在这里与大家

我有来自Azure IoT Hub->Stream Analytics->CosmosDB的推送数据

我有一个模拟设备,我的cosmos DB收集的1000 RU/s运行良好。 现在我已经制作了10台模拟设备,我的Cosmos DB收集扩展到15000 RU/s,但我的流分析仍然在降级

是否需要增加集合的并行连接数

我们能否使其更为优化,因为Cosmos DB的Azure定价取决于吞吐量和RU

我们能否使其更为优化,因为Cosmos DB的Azure定价取决于 吞吐量和RUs

我只想在这里与大家分享一些关于提高Cosmos db的写入性能的想法

1.一致性级别

根据:

根据场景需要的读取一致性级别 针对读写延迟,您可以在上选择一致性级别 您的数据库帐户

您可以尝试最终将一致性级别设置为
。详情请参阅

2.索引:

根据文件:

默认情况下,Azure Cosmos DB在每个CRUD上启用同步索引 对您的收藏进行操作。这是另一个有用的控制选项 Azure Cosmos DB中的写入/读取性能

请尝试将索引设置为惰性。此外,删除无用的索引

3.分区:

根据:

Azure Cosmos DB unlimited是推荐的解决方案 在Azure Cosmos DB自动扩展时对数据进行分区 基于工作负载的分区。当写信给无限 容器、流分析使用的并行编写器数量与以前相同 查询步骤或输入分区方案


请对集合进行分区,并在输出中传递分区键以提高写入性能。

现在,当我创建COSMOS DB集合时,我使用deviceId对其进行分区,而对于COSMOS DB,我现在使用默认索引。每条记录包含130个字段。当我想读取数据时,我所有的查询都取决于设备ID和时间(最后一小时和最后一天)。所以分区应该按设备ID和时间戳(转换为天)进行?当您在流分析中的sql查询中写入means时,该分区是什么?@AmjathKhan默认索引模式应为none,一致性级别默认值应为session。您可以调整它以查看是否有任何进展。@AmjathKhan我认为按deviceId分区是可以的。您可以调整其他2个因素,也许它优化了性能。我只是在这里分享文档中的官方建议。我已经删除了我使用的3个流作业单元和5000 RU/s cosmos DB集合的所有索引。我每秒发送的数据大小为38 KB/秒(总共20条消息),每条消息中有185个字段。这是最终的一致性,但它显示宇宙DB的吞吐量增加