将大型物联网数据高频存储到云

时间:2018-10-21 22:10:39

标签: database google-cloud-platform bigdata iot

我正在构建一个IoT设备,该设备每秒将产生200Kb的数据,并且需要将此数据保存到存储中。我目前大约有500台设备,我试图找出什么是存储数据的最佳方法?而为此目的最好的数据库?过去,我已经将数据存储到GCP的BigQuery并通过使用计算引擎实例组来完成处理,但是数据的大小要小得多。

2 个答案:

答案 0 :(得分:1)

根据您问题中的信息有限,这是我的最佳答案。

第一步是记录/描述您正在处理的数据类型。它是结构化数据(SQL)还是非结构化(NoSQL)?您需要进行哪种类型的查询?您需要存储数据多长时间,以及预期的总数据大小是多少。这将确定执行查询处理和分析的后端的选择。

接下来,您需要查看传输数据的速率。在200 Kbits(或200 KBytes)乘以500个设备时,这就是每秒100 Mbits(或800 MBits)。数据的价值如何?数据丢失的设计容忍度如何?每个设备(蜂窝,无线等)的数据传输速率和连接可靠性如何?

要将数据推送到云中,我将使用Pub / Sub。然后处理数据以进行合并,合并,压缩,清除等操作,然后推送到Google Cloud Storage或BigQuery(但其他选项可能更好,例如Cloud SQL或Cloud Datastore / BigTable)。中间处理器的答案取决于前面的问题,但是您将需要一些能力来处理该速率的数据流。选项可能是运行Spark的Google Cloud Dataproc或Google Cloud Dataflow。

这种类型的设计要考虑很多因素。我的回答提出了很多问题,希望这将帮助您设计合适的解决方案。

答案 1 :(得分:0)

您还可以将IoT Core作为处理负载平衡片(自动缩放)的一种可能方法。注册所有设备会有一些前期开销,但同时还可以处理安全连接(TLS堆栈+ JWT加密,以确保使用IoT Core的设备的安全性。)

具有500个设备和200KB / s的声音,在系统处理能力范围内听起来不错。 Pub / Sub是限制器,每秒处理1-2M条消息,因此应该没问题。