一种面向高速列车实时监控的海量数据管理方法_3

文档序号:9489502阅读:来源:国知局
利用这一模型,为列车各种数据建立全面的管理机制,满足列车综合分析的要求。
[0081]本发明建立了面向列车对象组织关系动态耦合以及属性传导的存储模型,该存储模型将对象之间组织关系以一个独立的信息模型存储,记录上级对象组织下级对象分组的加入与撤销过程信息(上级对象会根据情况添加或者撤销下级对象的分组信息),同时对不同级别对象建立对应的属性存储模型,记录其时空数据。
[0082]2.一体化流式数据存储管理架构
[0083]如前所述,本发明所提出的数据管理技术是一种结合关系数据库与分布式文件系统的混合存储管理架构。这一架构针对流式数据的特点,以关系数据库形成窗口,面向实时性较高的业务系统提供查询支撑;以文件系统形成原始数据的同一存储。在存储过程中,以传感器标示为目录实现数据的规约存储。同时,根据数据增量的特点,以时段(例如:24小时)为基础实现数据的分集与分布存储。通过这一方式,减少数据存储节点的10吞吐压力,同时,实现基于键值关系的数据存储,为海量数据的高性能端点数据查询提供基础。图3中展示了这一存储架构的基本结构:
[0084]如图3所示,这一数据管理架构由两个层次构成:基于关系数据库的里程窗口缓存与基于分布式文件系统的原始数据文件存储目录。系统以前述的存储模型实现列车各类数据的整体存储管理。增量数据的存储由两个部分构成:
[0085]里程累积窗口缓存:里程累积窗口缓存由关系数据库构成。在关系数据库中依据上述数据存储管理模型建立库表。其增量数据主要包括列车GPS数据与传感器采集数据两个部分。在这些数据增量过程中,系统将其存储在对应的关系数据表中。同时,在GPS数据增量过程中,分别计算列车与车厢的累积里程。当车厢的累积里程达到窗口阈值设置(5000公里)时,其触发窗口调用操作。这一操作将当前数据库中该车厢所布设全部传感器数据进行提取,打包并推送给其他业务系统开展增量分析;同时,将缓存中这些数据清除,开展下一个窗口数据的累积。
[0086]原始数据文件存储:原始数据文件存储依托分布式文件系统。在数据增量过程中,其与缓存数据库存储同步,将增量的传感器采集数据写入文件系统。系统首先在全部存储节点中创建与当前传感器标识(全局唯一)对应的存储目录。该传感器所有采样数据均存储在这些存储节点中与该标识对应的目录下。同时,系统将节点构造收尾相接的“环”,环中每个节点用于存储特定时段(某天)该传感器的全部采样数据;在数据增量过程中,系统根据采样时间选择对应的节点,并将该时段中的数据全部存在对应的数据文件中。随着时间变更,系统选择“环”中下一个节点,在其与传感器标示对应的目录下,创建与该时间段对应的文件继续存储;其中,分布式环境中的存储节点定义如下:
[0087]f ileCache = {dataNode; i = 1, 2,...η}
[0088]datanode = {ID, addr, {sIDdirs j = 1, 2,...n}}
[0089]sIDdir = {sID, {timeKeyk k = 1, 2,...n}}
[0090]其由一组节点dataNode构成,dataNode的定义包括:
[0091]ID为节点标示,系统通过对其ID的哈希处理实现数据存储的映射;
[0092]addr为节点地址;
[0093]sIDdir为传感器的数据文件存储目录。每一个传感器的全部数据文件都存在该传感器标示(sID)对应的目录下,其由一组时间段命名的文件timeKey(时间分段标识)构成。每一个文件用于存储一个特定时段内(通常为24小时),该传感器的采样数据。
[0094]在前述过程中,系统需要根据传感器采样数据的时间time,在分布式存储环境中,确定10文件的存储节点位置,并写入。针对这过程本发明提出的技术如下:
[0095]i)获取当前传感器采样数据time
[0096]time ^ data^ data ^ sensorDataflow^ sensorDataflow ^ sensork
[0097]ii)确定当前time所对应的时段T,
[0098]timeKey = HASH (getTimeSpan (time)),?\ ^ time ^ ?\
[0099]iii)将分布式环境中的存储节点dataNode进行哈希处理,与timekey建立映射关系:
[0100]getNode (f ileCache, timeKey) = iif (Map (HASHCdataNodei)) = = true)
[0101]then result = dataNodei
[0102]dataNodei^ fileCache
[0103]iv)映射关系建立后,系统既可以在绑定的存储节点dataNode中传感器标示对应目录下与当前timekey对应的文件:
[0104]saveDatalOCdataNodei, data, timeKey, sID)=
[0105]iif (exist (dataNode^ sID))
[0106]then saveFile (dataNode^ sID, data, timeKey)
[0107]else create (dataNode^ sID),saveFile (dataNode^ sID,data, timeKey)
[0108]create (dataNode^ sID) = newDir(sID) — {sIDdir}OdataNodei
[0109]saveFile (dataNode^ sID, data, timeKey)=
[0110]iif (exist (timeKey, sID) = true) then putData (data, timeKey)
[0111]else createFile(sIDdir,timeKey), putData(data, timeKey)
[0112]sID = Name (sIDdir j),sIDdir dataNode
[0113]timeKey = Name (timeKeyFi 1 ek), timeKeyFi 1 ek ^ sIDdir j
[0114]v)在数据的存储过程中,数据data需要存储在当前存储节点dataNode中与传感器标示sID对应目录下的timeKey对应的文件中。在文件存储过程中,需要根据采样数据的时间在文件中的数据序列时间对比,确定序列化关系后存在合适的位置:
[0115]putData(data, timeKey) = data — t imeKeyFi 1 ek,t imeKey =Name (t imeKeyFi lek)
[0116]data ^ timeKeyFilekJ time ^ data,
[0117]time^ time ^ time j+1,timef data timej+1 ^ data j+1
[0118]本发明提出的采样数据接入与存储整体流程如图4所示,其整体步骤如下:
[0119]1)传感器数据汇入数据接入模块,系统连接10分布组织模块,创建逻辑10存储访问;
[0120]2)获取当前数据对应的分布式环境中存储节点以及节点中的10存储指针;
[0121]3)根据当前传感器数据接入的模式,写入数据,完成10存储;
[0122]4)将当前数据存储在数据缓存中,完成里程窗口的缓存;
[0123]5)结束当前数据插入操作,返回。
[0124]3.窗口管理与里程累积触发
[0125]高速列车在日常监控中,需要围绕列车、车厢收集跨专业、海量感知数据。同时,根据管理规定,当车辆行驶达到一定里程后,对前期阶段性采集的数据进行统一的分析。在这一过程中,需要针对累积里程建立触发机制。当车辆行驶累积里程达到累积里程阈值设置时,将车厢中全部的数据统一打包,为后续的数据分析提供服务。由于列车具有动态分组的特点,在多数情况下,累积里程不能简单地以列车的里程作为车厢窗口分析的依据。针对这一情况,本发明提出的里程管理总体流程如图5所示,这一流程如下:
[0126]1、系统获取列车GPS数据;
[0127]2、通过列车历史GPS轨迹数据获取最后一次的GPS位置信息;
[0128]3、根据步骤1,2的数据计算列车这一时段的累积里程数;
[0129]4、更新列车累积里程数以及GPS数据;
[0130]5、获取列车当前编组信息;
[0131]6、领i = 1,获取当前编组中第i个车厢;
[0132]7、根据当前车厢在列车编组中的加入时间,计算当前车辆这一阶段的累积里程;
[0133]8、更新当前车厢累积里程以及GPS数据;
[0134]9、当前车厢累积里程达到窗口触发阈值(5000公里)则执行步骤10,否则执行步骤11 ;
[0135]10、领i = 1+1,获取第i个车厢,如果获取成功则执行步骤7,否则执行步骤11 ;
[0136]11、结束当前更新操作。
[0137]本发明在上级对象属性(GPS)更新过程中,根据列车存储模型识别当前上下级对象的构成关系;根据下级对象加入上级对象分组的时间计算上级对象属性(GPS)对其属性(GPS)的传导(列车对象的行驶里程数据更新过程中,下级对象会通过插值计算更新传感器采样时间对应的里程信息),以获得正确的累计里程。在属性数据增量过程中,根据属性传导实现下级对象属性的累计更新;当累计达到窗口阈值设置时,设置当前对象窗口触发状态,从窗口缓存中获取该对象的全部传感器采样数
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1