我正在开展物联网项目。我们将从每个设备向DB发送每分钟15KB的JSON文档。我想过使用Azure DocumentDB。我很担心Azure DocumentDB。
假设有5000个IoT设备,我必须购买的预期RU应该是什么?
当请求数量(假设客户数量增加到7000)增加到固定的请求单位以上时会发生什么情况,是否会使应用程序变慢?
当我们在documentDB中执行长时间运行的查询(如复杂报告)时会发生什么?
任何人都可以建议其他适合上述个人资料的NoSQL数据库吗?
提前致谢
答案 0 :(得分:1)
虽然对于您使用哪个数据库没有客观的答案,但我可以用Cosmos DB(在您的情况下使用DocumentDB API,但适用于任何支持的API)客观地回答您的具体问题。
我必须购买的预期RU应该是什么?
这需要您进行一些基准测试,以确定要分配多少RU。每个操作在返回的标头中返回RU成本。根据该成本,您可以计算持续写入工作负载所需的RU。此外,如果更改索引以使用延迟索引和一致索引,则可以略微降低每个操作的RU成本。
当请求数量(Say客户数量增加到)时会发生什么 7000)增加超过固定的请求单位,它会使应用程序变慢吗?
通常情况下,如果超过分配的RU,您将被限制一段时间。因此,例如,如果您有一个1000 RU设置,并且在插入过程中消耗3000 RU,那么您将被限制约2-3秒。
为避免(或最小化)此类限制,您可以启用每分钟RU突发,这是一个10x RU缓冲区(适用于60秒间隔)。在我之前的1000 RU示例中,这将为您提供10,000 RU的余量,在1分钟的时间内分散。这样,如果你有瞬态RU尖峰推动你超过分配的基线RU,你就可以预留RU消耗,以防止限制。
当我们在documentDB中执行长时间运行的查询时会发生什么(比如 复杂的报道)?
不确定长期运行的查询究竟是什么意思,但......就像我上面描述的那样:如果你的消耗超过你的RU /秒,那么在你的下一个查询运行之前你会受到限制(除非你启用每分钟RU)。
答案 1 :(得分:0)
关于你的问题大卫有所有的答案。我想略微放大四号。
恕我直言,你问的是错误的问题。 (NoSQL)DB仅用于存储(顺便说一下,为什么仅限于NoSQL存储?)。而是专注于您感兴趣的分析,并深入研究提供此类分析的服务,如Azure Data Lake Analytics,Azure Stream分析等。如果您清楚了解所需的分析,则更容易确定Azure服务是什么最合适的。
我建议写下您的确切要求,然后考虑正确的存储类型,并且不要将范围限制为仅限NoSQL服务。还有Azure数据仓库和Azure Analysis Services,Blob存储等。
Power BI或Azure Data Lake Analytics等分析工具可以处理多种类型的天蓝色数据库和存储
顺便说一下,还有一个Azure物联网指南,而不是https://azure.microsoft.com/en-us/services/iot-hub/
编辑:我知道这可能不是那种可以像Davids一样解决所有问题的答案,但在我看来,你需要知道正确的存储类型需要进行何种分析