基于时序数据库的CGSsafety系统设计与实现

2021-12-03 07:29郑宝锋刘修国崔芳姿范振林
地理空间信息 2021年11期
关键词:数据量时序北斗

郑宝锋,刘修国,崔芳姿,范振林,张 超

(1.中国地质大学(武汉)国家地理信息系统工程技术研究中心,湖北 武汉 430000;2.中国地质调查局水文地质环境地质调查中心,河北 保定 071051)

中国地质调查局积极响应国务院《找矿突破战略行动纲要》,在进行找矿任务时,本着以人为本、安全第一的原则,结合安全生产和应急救援的工作经验,研发了一套地质调查安全保障(CGSsafety)系统,以提升地质调查单位的安全生产管理和安全保障技术水平。CGSsafety系统采用我国自主知识产权的天地图和北斗卫星导航系统(BDS),从数字化管理的角度出发,集成了BDS、移动通信网(GPRS)、地理信息系统(GIS)和终端设备,利用计算机技术、网络技术将文字信息、地理信息、图片信息、业务内容等统一建立在可实时访问的数据信息系统下,实现了地质调查野外人员、车辆、飞机、船舶的卫星定位、轨迹跟踪、紧急呼救、双向通信、应急救援,野外安全环境条件分析以及地质调查安全生产规范化、系统化、现代化管理。该系统于2013年1月正式运行,是中国地质调查局以及局属单位日常安全生产管理、年度安全考核的重要抓手,也是地质调查生产调度的重要依据。CGSsafety系统由网络中心(服务器、网络环境)、调度指挥中心(指挥大屏、远程会商)、软件(安全保障平台、手机App和野外安全保障终端软件)、北斗集群式指挥机和野外安全保障终端设备等组成[1-2]。

随着地质调查任务以及与地质调查单位、野外工作者、物力等配套的北斗设备、车辆、船舶、飞机的逐年增加,数据量逐年增大,对数据库的稳定性、安全保障时效性提出了更高的要求。为了使CGSsafety系统能更加适应今后工作的要求、更好地保障野外工作者的安全,同时建立更加全面、迅速、准确、灵活的安全生产信息平台,本文对CGSsafety系统进行了升级,重点介绍了时间序列数据库在系统中的应用,旨在解决系统中传统数据库所遇到的问题以及针对目前系统提出解决方案。

1 系统对数据库的需求分析

CGSsafety系统的数据来源以野外安全保障终端回传的定位数据和通信数据为主,还包括用户单位的日常安全生产管理数据。野外安全保障终端以北斗终端为主,主要包括两大功能:①实时定位,提供全天候的实时定位系统;②短信报文通信,民用服务每min可传送一条120个汉字以内的短信息。

截至2018年12月,CGSsafety系统注册的安全保障终端有4 000余台,个人终端每30 min自动报位 一次,车载终端每min自动报位一次,且个人终端在野外期间,每日9:00、12:00、16:00各主动报位一次。每天北斗设备的报位数据包括北斗位置信息和北斗短报文信息两类。按照目前的北斗设备数量,CGSsafety系统每日接收和处理的数据量可达几万到十几万,同时系统还要为安全生产管理提供统计、分析、管理等必要的数据支持,因此CGSsafety系统在数据存储和数据访问性能方面都有较高的要求。

1.1 存储容量的需求

目前,CGSsafety系统的大容量数据存储采用关系型数据库(SQLServer),随着时间的推移,采用的磁盘阵列设备已越来越不能满足日益增加的北斗数据的存储和管理需要。根据系统运行以来的数据统计和目前设备的采样周期计算,一年的数据量约为1 000多万条,存储空间约为10G,随着未来安全生产管理工作的进一步发展和监控频率的提高,数据量可能会呈几何级增长。随着监控频率和设备数量的增加,对磁盘阵列的空间要求将越来越高,需要不断增加磁盘空间,使得运行成本持续增长。

CGSsafety系统的实时性强、发送频率高,具有海量的数据空间要求,普通的关系型数据库虽能满足一定的要求,但随着时间的推移、监控频率和设备数量的提高,将越来越捉襟见肘,不能适应未来的发展需求。然而,时序数据库可以很好地满足CGSsafety系统未来发展的要求。时序数据累计速度非常快,时序数据库通过提高效率来处理大规模数据,能提供更高的容纳率、更快的大规模查询以及更好的数据压缩。

1.2 访问性能的需求

CGSsafety系统要求数据库具有较高的低延迟性,从而实现系统的实时展示、快速查询等功能,为地质安全生产和安全救援工作的顺利进行提供进一步的保障。这就要求数据库能适应持久的、高性能负荷的数据存储、处理和快速读写。传统的关系型数据库存在访问速度较慢的问题,且在上述环境中会产生较大的访问性能瓶颈。

1.3 应用开发的需求

传统的关系型数据库在应用开发上具有一些得天独厚的优势,可为开发者提供更加丰富的开发接口和相关的辅助功能,使开发的应用程序能更快速地读写数据。时序数据库产品具备了普遍的应用程序二次开发接口、系统开发套件,提供了标准的API方法来访问数据库管理系统(ODBC),为CGSsafety系统进一步的功能扩展提供了技术支撑,解决了系统升级改造的问题[3-5]。

2 基于时序数据库的系统设计与功能实现

中国地质调查局配备的北斗终端发送的实时位置信息和短报文都属于典型的时序数据,由设备在一段时间内连续间隔一定时间生成定位坐标信息或短报文信息。时序数据库很好地解决了物联网下的大数据存储和高并发等问题,本文采用InfoEarthThingDB进行应用。

2.1 InfoEarthThingDB简介

InfoEarthThingDB是面向物联网海量监测数据存储、管理和调度设计的一个时序数据库,采用最新的Go语言和NodeJS开发,无需任何外部依赖即可独立部署,支持Windows、Linux等操作系统[6-8]。

InfoEarthThingDB具有的特点为:①物联网系统往往需要严苛的运行环境,InfoEarthThingDB只需安装一个二进制文件,即可运行于Windows、Linux等系统,完全没有任何的外部依赖;②底层采用基于NoSQL架构的存储引擎,提供了极强的写能力和高压缩率;③提供了RESTAPI读写、查询接口以及SQLLike的查询语言,方便使用;④TimeSeries Index,对Tags进行索引,提供了高效的检索。

时序数据库解决了大量用户更新和查询定位信息的性能问题,特别是在附近点查询和最近设备查询方面能实现非常高效的性能,且具有高效的截面数据查询能力,能瞬时恢复某一时刻的整体场景。一般时序数据库支持的大量数据插入和高效单点查询,InfoEarthThingDB同样具有[9-13]。

2.2 基于时序数据库的CGSsafety系统设计

CGSsafety系统采用B/S架构,具有设备接入、大数据存储、数据分析、数据可视化等功能,能对人员、车辆等的北斗终端、通信卫星终端、手机终端上报的位置信息、短信信息、报平安信息、报警信息等进行接收、解析、存储、管理,还能对数据进行分析处理,提供位置信息展示、历史轨迹回放、报警信息反馈、数据统计等功能。系统总体逻辑架构如图1所示。

图1 系统总体逻辑架构

数据采集层通过北斗终端设备实时采集户外人员和车辆的位置信息、用户安全确认信息短报文数据,然后在卫星通信系统的支持下,将这些数据发送到系统数据接收端。数据中心负责对原始报文数据进行解析、处理、入库,并提供数据服务。监控系统面向安全监控业务人员,通过基本的业务操作和空间数据服务,实现对人员、车辆等位置、安全状态的监控以及发送危险预警信息。

2.3 系统功能实现

CGSsafety系统主要由基本操作、监控栏、图层管理、信息标牌、北斗交互、分度盘等功能模块组成,如图2所示。

图2 CGSsafety系统功能结构

1)基本操作。该模块主要包括地图窗口前进或后退,地图显示回到初始比例尺,地图漫游,移动地图,放大或缩小地图,在地图上量算任意两点间距离或多点间的累计距离,在地图上绘制任意区域并量算其面积,按省份、矩形、任意多边形以及范围面查询等功能。

2)监控栏。该模块用于记录统计所有单位工作组的野外情况,分为全局统计、本单位统计和归口管理部门统计。该模块可分别针对项目、工作组和个体进行查询,在地图上回放人员或车辆在固定时间段内的活动轨迹,按照多单位或多省份对全局所有野外工作组中配备有北斗设备的人员、车辆、飞机和轮船等个体进行查找等。监控栏界面如图3所示。

图3 监控栏界面

3)图层管理。该模块用于控制地图上显示的地图图层。

4)信息标牌。该模块用于显示当前野外作业人员、车辆或飞机的相关信息,可查看人员、车辆、飞机等的轨迹信息,为作业人员发送北斗消息等。

5)北斗交互。该模块包括交互通信、报警记录、报平安记录、短信记录、报警联系人等功能。

6)分度盘。该模块用于控制地图的缩放级别,并可控制地图移动。

系统建成后,北斗和天通设备的位置信息、短报文信息的实时展示,设备、人员、车辆等查询性能均得到了明显的提升,极大地提高了数据存储、查询、分析能力,为安全生产管理和人员财产安全提供了更加稳固的保障。

3 应用效果

本文在原有业务体系的基础上,对系统整体技术方案进行了整体升级改造,很好地解决了系统卡顿、经常没有反应的问题,首页面加载时间控制在3 s以内,系统操作平均响应时间为0.5 s。为了进一步精确分析时序数据库与关系型数据库之间的性能优势,本文分别从数据库读写性能、并发性、可扩展性等方面进行比较。

1)批量读写性能测试比较。本文分别在同一类型的3个主机上安装SQLServer 2012、MySQL 5.6和InfoEarthThingDB 1.0,对其在不同数据量下数据读写完成的响应时间进行测试,每条数据2个字段。多次测试获得的平均结果如表1所示。

表1 不同数据库读写完成的平均时间/s

从数据库写入的响应时间来看(图4),在数据量较小的情况下,MySQL和InfoEarthThingDB比SQLServer具有优势;随着数据量的增大,SQLServer与MySQL的性能接近,而InfoEarthThingDB比二者性能高出接近一倍。从数据库读取的响应时间来看(图5),随着数据量的增加,InfoEarthThingDB的响应时间依旧很短,性能远胜于SQLServer和MySQL。总体来说,InfoEarthThingDB在简单、大量数据存储方面比SQLServer 和MySQL具有更大的性能优势。

图4 数据库写入比较

图5 数据库读取比较

2)数据库并发性测试。对上述3个数据库的并发性进行测试,结果如表2所示。

表2 数据库并发性测试结果

由单机数据库并发测试结果可知(图6),InfoEarth ThingDB的数据库并发性高于MySQL和SQLServer,并发性与计算机性能有直接关系,因此数据库之间的差距都不太大。

图6 数据库并发比较

3)可扩展性比较。InfoEarthThingDB的数据存储非结构化,基于键值对,其数据结构不固定,每个元组可根据自身需求增加键值对,从而实现模式自由,支持简单复制、横向扩展、简单API等。SQLServer和MySQL属于关系型数据库,具有完整性约束,支持多表联合查询、视图、存储过程、触发器、索引等复杂查询,为保证数据库的ACID,需尽可能地按照要求的范式设计,从而难于横向扩展。

MySQL和SQLServer在复杂业务处理方面具有得天独厚的优势,但应对数据监控业务的秒级数据采集、数据量庞大、快速响应时,InfoEarthThingDB更具性能方面的优势,可缓解系统瞬时查询和写入压力,提升用户体验。

4 结 语

研究结果表明,在CGSsafety系统中采用时序数据库可以很好地解决海量数据存储和高频次数据访问的问题;且能为CGSsafety系统未来的功能扩展提供必要的功能支持。随着北斗监控在各领域的大量应用,时序数据库将在各行各业得到更多更好的应用。

猜你喜欢
数据量时序北斗
北斗时钟盘
基于Sentinel-2时序NDVI的麦冬识别研究
基于大数据量的初至层析成像算法优化
计算Lyapunov指数的模糊C均值聚类小数据量法
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
“北斗”离我们有多远
基于FPGA 的时序信号光纤传输系统
一种毫米波放大器时序直流电源的设计
首个北斗全球“厘米级”定位系统开建