我们正在研究支持HomeKit的IoT设备。 HomeKit专为消费者使用而设计,无法收集指标(功率,温度等),因此我们需要单独实施。
假设我们有10,000台设备。他们每5秒发送一次指标集合。因此,我们每秒需要接收10000/5 = 2000个集合。最终用户需要在指定的时间段(1周,月,年等)中查看每个指标的图表。因此,系统每天将收到1.278亿条记录。这里有很多问题。
首先,不需要存储所有数据,因为用户只需要指定时期的图表,因此它需要一些汇总。哪种数据库解决方案适合它?我相信没有RDMS可以处理如此大量的数据。然后,如何获取指标的平均数据以呈现给最终用户?
非常简化,我是这样想的:
有人曾经做过类似的事情吗?也许有更简单的架构?
答案 0 :(得分:0)
这需要像这样的大数据基础架构 1)Hadoop集群 2)火花 3)HDFS 4)HBase
您可以使用Spark读取流中的数据。可以将提取的数据存储在HDFS文件系统中,该系统允许您在Hadoop集群中存储大文件。您可以使用map reduce算法从HDFS获取所需的数据集,并将其存储在Hadoop数据库HBase中。 HDFS是分布式,可伸缩的大数据存储区,用于存储记录。最后,您可以使用查询工具查询hbase。
IOT数据-> Spark-> HDFS->映射/缩减-> HBase->查询Hbase。
我之所以建议使用此架构是为了 可扩展性。输入数据可以基于IOT设备的数量而增长。在以上架构中,基础架构是分布式的,集群中的节点可以不受限制地增长。
这是大数据分析应用程序中经过验证的体系结构。