我正在构建一个每秒将产生 200Kb 数据的物联网设备,我需要将这些数据保存到存储器中。我目前有大约 500 台设备,我想弄清楚存储数据的最佳方式是什么?为此目的最好的数据库是什么?以前我把数据存到GCP的BigQuery上,用计算引擎实例组做处理,但是数据量要小很多。
最佳答案
根据您问题中的有限信息,这是我的最佳答案。
第一步是记录/描述您正在处理的数据类型。它是结构化数据 (SQL) 还是非结构化数据 (NoSQL)?您需要进行什么类型的查询?您需要存储数据多长时间以及预期的总数据大小是多少。这将决定执行查询处理和分析的后端的选择。
接下来您需要查看传输数据的速率。在 200 Kbits(或 200 KBytes)乘以 500 个设备时,这是每秒 100 Mbits(或 800 MBits)。数据有多有值(value),您的设计对数据丢失的容忍度如何?每个设备(蜂窝、无线等)的数据传输速率和连接可靠性是多少?
要将数据推送到云端,我会使用 Pub/Sub。然后处理数据以进行合并、组合、压缩、清除等,并推送到 Google Cloud Storage 或 BigQuery(但其他选项可能更好,例如 Cloud SQL 或 Cloud Datastore/BigTable)。中间处理器的答案取决于前面的问题,但您将需要一些能力来处理该速率的数据流。选项可能是运行 Spark 的 Google Cloud Dataproc 或 Google Cloud Dataflow。
此类设计需要考虑很多因素。我的回答引发了一堆问题,希望这能帮助您构建合适的解决方案。
关于database - 以高频率将大量物联网数据存储到云端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52920359/