暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Niagara培训系列——016.历史-大数据压力测试

Tridium技术支持 2022-02-15
894

70080000000条记录(700亿)历史数据压力测试

在IoT领域,经常看看很多人的PPT里面提到Big Data、大数据,然后话锋一转,便是数据分析,数据清洗,故障诊断等等。似乎大数据仅仅数据稍微多一点而已,给计算机多配置一点内存,多配置一点硬盘,配上更快的CPU,大数据就和普通系统处理方式一样了。完全忽略是量变必然带来质变的道理,不过可以理解,除了Niagara外,真正在项目中,集成几十万、几百万实时数据的系统比较罕见。

之前,有个重要的合作伙伴跟我咨询,因为系统规模比较大,他们希望将所有历史记录都归档到MySQL关系型数据库中,想听听的我看法。我当即表示完全多此一举,和其它关系型数据库一样,MySQL处理关系型数据功能强大,尤其是多表联合查询非常好用,但是处理单表数据规模庞大的时序型数据时,显得比较吃力,最关键的问题是,项目初期看不出任何问题,随着数据量达到一定程度,数据处理性能变得非常差,甚至影响整体系统的稳定性。

基于这个背景,我们准备了一场对比压力测试,数据规模如下:

100万个数据点,每个点15分钟记录一次历史数据,存储2年,总的历史数据量在(60/15)*24小时*365*2年*1,000,000 = 70080000000,约700亿。

为此准备2台性能一样的虚拟机,一台使用Niagara,一台使用MySQL,都处理这种规模的数据。

正式测试开始后,在Niagara上,为了生成这多模拟数据,几乎花了一周的时间才完成所有数据的生成,700亿条记录最终占用的硬盘空间大约在700G左右,下面的视频演示了查询的效率。例如,对其中20多个数据点2年所有数据进行归纳查询,查询每个月的平均值,基本都可以在一秒内完成从查询到曲线展示。


相比之下,MySQL花了几周的时候,也没能模拟生成十分之一的数据,平均的数据磁盘空间占用也是Niagara4的10倍左右。

不过这个测试并不能掩盖MySQL是一款优秀的数据库软件,只能说在处理时序数据上它并不擅长。

文章转载自Tridium技术支持,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论