哪些NoSQL DB(Azure表,Document DB,Mongo DB或其他)适用于大数据的数据分析报告?

时间:2017-08-21 16:08:38

标签: mongodb azure azure-table-storage azure-cosmosdb nosql

我正在开展物联网项目。我们将从每个设备向DB发送每分钟15KB的JSON文档。我想过使用Azure DocumentDB。我很担心Azure DocumentDB。

  1. 假设有5000个IoT设备,我必须购买的预期RU应该是什么?

  2. 当请求数量(假设客户数量增加到7000)增加到固定的请求单位以上时会发生什么情况,是否会使应用程序变慢?

  3. 当我们在documentDB中执行长时间运行的查询(如复杂报告)时会发生什么?

  4. 任何人都可以建议其他适合上述个人资料的NoSQL数据库吗?

  5. 提前致谢

2 个答案:

答案 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一样解决所有问题的答案,但在我看来,你需要知道正确的存储类型需要进行何种分析