建筑施工设备监控管理平台的数据存储方案
2015-08-02史宏旻田延彬鲁卫涛SHIHongminTIANYanbinZHENGXuLIUYaoLUWeitao中国建筑科学研究院建筑机械化研究分院河北廊坊065000廊坊华元机电工程有限公司河北廊坊065000
史宏旻,田延彬,郑 旭,刘 垚,鲁卫涛SHI Hong-min, TIAN Yan-bin, ZHENG Xu, LIU Yao, LU Wei-tao(.中国建筑科学研究院 建筑机械化研究分院,河北 廊坊 065000;.廊坊华元机电工程有限公司,河北 廊坊 065000)
建筑施工设备监控管理平台的数据存储方案
史宏旻1,田延彬2,郑 旭1,刘 垚1,鲁卫涛1
SHI Hong-min, TIAN Yan-bin, ZHENG Xu, LIU Yao, LU Wei-tao
(1.中国建筑科学研究院 建筑机械化研究分院,河北 廊坊 065000;2.廊坊华元机电工程有限公司,河北 廊坊 065000)
[摘 要]针对监控管理平台的数据库查询访问量大的情况,分析设计了数据库分表方案,提高了并发访问量。通过实际并发测试,验证了分表的有效性,缩短了查询数据库所需时间,增加了网站效率。
[关键词]施工设备;监控;数据库;分表
利用监控管理平台对建筑施工设备进行统一管理十分便捷,已成为政府建筑施工设备安全监督管理部门必不可少的监督管理手段之一。当前,一些监控管理平台服务器对数据库仍然采用单一数据表的方式存储数据,随着监控管理平台规模的日趋增大,在线建筑施工设备监控管理系统终端的数量越来越多,服务器数据库存储的数据量越来越大,这种方式的查询访问速度已不能满足实际使用需求。鉴于上述原因,我们研究制定了一种数据库分表方案,并优化监控管理平台查询数据库的操作指令程序代码,将并发访问量高的数据分别存储在不同的数据表中,使得这些数据可以被同时查询访问,提高了监控管理平台的查询访问速度和运行效率。
1 常用的数据表结构
在一些监控管理平台的服务器数据库系统中,所有建筑施工设备的同类型数据信息全部存储在同一张数据表中,依照数据信息上报时间进行排序。在其所管理的建筑施工设备监控管理系统终端总数不多时,这种单一表的数据表结构可以节省硬盘空间,也易于编写监控管理平台运行软件的程序代码,降低由于代码复杂而出现漏洞的隐患风险。但这种单一表的数据表结构存在以下弊端。
1)由于所有同类型数据信息均存储在一张数据表内,即使想要查询某个特定建筑施工设备在某个特定时间段的数据,也需要检索整张数据表,耗费大量时间。
2)当需要集群管理(如备份某种特定类型的数据、导出某些建筑施工设备的数据信息)时,如没有合理的数据库存储结构,则需要在筛选数据上耗费时间。
3)为了确保数据安全,在需要向数据表写入数据时,会将数据表锁定,防止其被其它线程修改。因此当需要大量写入数据时,数据表会被频繁锁定,拖累运行速度。
4)单一数据表会占用特定的硬盘空间,大量读写数据会消耗硬盘该空间的可用读写次数,对硬盘寿命造成影响。
总之,数据库中的数据量是不可控的,在未进行分表的情况下,随着时间和业务的发展,表中的数据量会越来越大,数据操作的开销也会越来越大;另外,由于无法进行分布式部署,而一台服务器的资源(CPU、硬盘、内存等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。
2 数据分表策略
基于以上原因,现我们制定了一种高效的Hash分表方案,将大量数据分别存储在不同的数据表中,提高数据的存储和查询速度。例如某监控管理平台服务器数据库系统数据量较大,需要分成1 000张数据表,则可以以建筑施工设备监控管理系统终端的识别编号作为输入参数,计算出其对应的Hash值,将Hash值对1 000取余得到分表表序号,再以分表表序号与分表表缀结合的方式得出分表表名。
同时再建立一个单独的索引数据表,专门用来记录建筑施工设备监控管理系统终端的识别编号与该终端数据所存储地址的一一对应关系,通常数据量很小、查询速度很快。建立索引数据表之后,需要查询某分表数据时,不再需要重新计算Hash值并对1 000取余得到分表表序号,而只要查询索引数据表即可得到分表名称,其结构示意如图1。
图1 数据分表结构示意图
此种分表方式具有以下优点。
1)数据分表的数量适宜。由于每张数据表均需预留一定的硬盘空间存储数据表的检索信息,如果数据表过多,就会占用大量的额外硬盘空间,而且数据表的碎片化也使得数据库从硬盘上检索数据表的速度降低。
2)将同一建筑施工设备的数据信息存储在了同一张表内,避免搜索同一建筑施工设备在不同时间的数据时需要检索多个数据表。
3)此分表方案中每个分表的数据结构均与原有总表数据结构相同,在修改程序代码时只需更改存储目标的表名即可,程序代码的修改简洁、有条理。
4)由于Hash算法具有单向不可逆性和唯一性的特点,所有建筑施工设备监控管理系统终端将会有其唯一对应的分表表名,分表存储过程迅速而有序。
3 结 语
经过实际测试,这种分表方式能够提高监控管理平台运行速度,降低硬盘占用率,提高了软件程序效率。监控管理平台在并发访问量较高时也能流畅运行,可靠性显著提高。上报到监控管理平台的建筑施工设备数据信息方便了监督管理人员对建筑施工设备的监督管理,为建筑施工设备的寿命评估、日常维护和事故的判定提供强有力的数据支持。
(编辑 张磊庆)
[基金项目]国家“十二五”科技支撑计划项目(2011BAJ02B02)
[中图分类号]TH213.3
[文献标识码]B
[文章编号]1001-1366(2015)05-0033-02
[收稿日期]2015-03-20
Construction equipment monitoring management platform of data storage solution