武汉梦芯科技是在湖北省委省政府大力支持下成立的一家专业从事高集成度芯片设计和高性能室内外定位研究的高新技术企业。坐落于国家级高新技术产业开发区(武汉·中国光谷)。公司致力于为各类智能终端产品提供北斗定位核心技术和元器件,为北斗在高精度应用领域的推广提供差异化的完整解决方案。
梦芯科技自主研发的启梦芯片系列产品入选中国卫星导航专项北斗基础产品推荐名录,在国家北斗办组织的权威比测中名列前茅,以第一梯队的成绩获得国家北斗办资金支持,并两次荣膺卫星导航定位科技进步奖一等奖、荣膺卫星导航定位创新应用奖“金奖”、入选《北斗三号民用基础产品推荐名录》、《湖北省创新产品应用示范推荐目录》。同时团队还主导、参与了5项国家北斗相关的重大专项,为我国北斗系统的建设及全球化奠定了良好的基础。
作者简介:马威,武汉科技大学计算机专业,从事软件开发9年的工作经验,供职于武汉梦芯科技有限公司软件部高级工程师。在车载物联网平台、形变安全监测解算系统、AGNSS加速定位服务、DGNSS精确定位服务等多方面有着长期技术积累和大量成功经验。
项目介绍:地质灾害隐患点多分布在交通、通讯、电力保障都极为不方便的地区。地质灾害之所以会造成严重损害是因为难以事先准确预报灾害发生的地点、时间和强度。因此对地质灾害隐患特别是滑坡、泥石流等危害极大的地质灾害进行低成本、便捷、长期、自动化的监测,并及时将灾害发生的实时状况反映到相关管理部门,保障人民生命安全,减少人民财产损失是目前的当务之急。
梦芯形变安全监测解算系统,采用梦芯高精度定位方案,为应用目标提供24h不间断监测,实时掌握隐患点的位移变化情况,监测精度高。系统支持BDS、GPS、GLONASS、Galileo等卫星定位系统数据观测,支持无线网络,可实现数据的远程传输,提供日、周、月、年的数据统计结果。基准站和监测站均可采用梦芯高精度GNSS监测专用接收机,最大程度上降低成本。
在这个项目中,TDengine承担了核心数据库的角色,它帮助我们解决了高效率的记录站点的原始数据、解算后的形变数据等海量数据的存取使用的巨大难题。
选型过程:具体场景如下:
形变安全监测解算系统由数据分析管理和数据显示预警两部分组成。数据分析管理系统包括站点管理、信息管理、统计分析、隐患点管理、系统管理等组成,数据显示预警系统包括实时监控、图像监测、预警管理等。
数据分析管理服务负责对接收到的GNSS数据进行解码和解算,获取监测点的实时位置坐标,并对数据处理结果进行管理和数据共享、用户管理、定期自动备份等,以实现监测区域全天候无人值守,确保系统长期处于工作状态,满足实时监控需求,节约人力资源成本。
数据显示预警系统负责对解算出的监测点位置坐标进行集中和图形化显示,根据解算结果自动生成形变历史曲线,卫星分布图,载噪比柱状图,实时展现各监测点的实时状态。并根据预设的警戒值进行风险判别,以声光、短消息等形式进行多渠道预警信息发布,及时将灾害发生的实时状况反映到相关管理部门。
平台业务部分截图如下:
图:形变数据
图:卫星数据
因此,我们的工作场景是基于大并发,高频,大数据量,主要包含以下几类:
1.一体化智能监测站上传监测数据频率最高1赫兹;
2.解算后的实时形变数据频率最高1赫兹;
3.依据以上数据产生的更大量级衍生数据;
形变安全监测解算系统,需要针对监测目标进行实时监测,如何高效率的记录站点的原始数据、解算后的形变数据,对于整个平台的运行效率和稳定监测至关重要。 由于该项目设备量大,数据量大,频率高,单是进行存储已经不易,如果还要对数据进行查询下载等 *** 作,更是难上加难。这些问题横亘眼前,也让我们更加需要使用更满足功能、性能要求的数据库。
原来的业务架构如下图所示:
在第一版系统的实际运行过程中,我们也遇到了很多痛点。比如说,因为数据保存在MYSQL中,并且采用了分库分表,但是当我们需要查询较大跨度的时间内的数据时,由于数据量大,系统的性能会显著下降,前端查询展示一天的形变数据就需要数分钟,这显然是不能接受的。
后来,我们对需要存储的业务场景进行了梳理,如下图所示:
基于以上考虑,我们把目光锁定在时序数据库上,在技术调研阶段,我们对比了几款常用的主流数据库上。
综合对比后的结果如下:
通过严谨的对比和技术调研,TDengine满足我司支持国产数据库的初衷,并且我们认为TDengine的很多优秀特性能够满足我们的业务场景。
落地:1.目前我们整个系统采用了数台高性能的云服务器,暂时采用的是单节点部署,后续会增加多节点。从2021年10月运行至今,共创建了2张超级表以及近百张子表,总数据量超过2.5亿条,压缩后的数据量大小200G左右。
2.当前,以地灾监测站1HZ的上报的原始数据为例说明存储情况。
sraw是我们的超级表,其中存储了1.6亿条数据,分散在109张子表中,由于TDengine的标签是内存存储,再加上列式存储便于压缩,因此我们节省了大量的存贮空间(仅占用100G左右的空间),也为数据查询性能打下了良好的基础。
3.由于是初次使用开源版,中间遇到了很多问题,好在TDengine官方技术群里有专人技术支持及时回复,对我们一对一的免费指导,让我们切身体验到了开源数据库的友好和国产数据库的价值。
性能表现:
在查询方面,我们主要的查询逻辑是按时间查询所有的原始数据和解算数据。TDengine以其优异的性能完成上述查询分析过程。
具体 *** 作如下:
1.超级表统计功能测试:select avg(sat_num), max(e), min(n) from deform.scalc;
对于这张近亿行的超级表的统计 *** 作,我们用了1.9秒左右就返回了结果,实际应用中TDengine也确实表现卓越。
2.子表按时段查询功能:select * from deform.dm860936050878150 where ts > '2021-10-02 16:11:20.933' and ts < '2021-12-02 16:11:20.933' >> test.txt;
返回187681行数据,并写入test.txt文件,共300MB数据用时8.1秒, 性能超出我们的预期。
由于初期的项目需求,我们没有采用多节点部署。但是随着业务的增长,我们马上会部署多节点,而且后续会需要更大量的数据来做更复杂的分析,届时,我们将会更深入地用到TDengine的其他核心特性,如数据订阅、多表聚合查询、众多计算函数等等。但仅就当下而言,TDengine强大的存储能力和快速查询已经非常令我们惊喜,也让我们对未来更加深入的合作充满期待。最后,感谢涛思数据科技,希望贵公司能够继续完善产品,完善生态,拥抱开源,向下一个顶峰攀登。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)