一种海量数据处理方法技术

技术编号:28147567 阅读:15 留言:0更新日期:2021-04-21 19:34
一种海量数据处理方法,通过确定待存储的数据粒度和数据字段,由动态扩增的列进行存储表的组织生成,将存储单元作为最细粒度的数据存储;当进行数据存储时,先将待存储的数据存入内存中作为缓存,当定义的缓存栈超过阈值后,将存入内存的数据写入文件并落入到磁盘中;数据的组成包括索引区和数据区,索引区对存储文件内部包含的数据类型进行记录,数据区对存储的数据对象进行存放;当对存储的数据读取时,先从缓存栈中查询数据;当在底层文件存储中查找数据时,先检索数据的索引区,判断底层文件是否包含该数据,若底层文件包含查找的数据则根据索引区进行数据定位。本发明专利技术解决数据查询速度慢、大量数据的冗余、过多占用存储空间的问题。空间的问题。空间的问题。

【技术实现步骤摘要】
一种海量数据处理方法


[0001]本专利技术涉及数据存储
,具体涉及一种海量数据处理方法。

技术介绍

[0002]目前,海量定位数据存储在关系型数据库中,以车辆定位数据为例,通常一条数据为一条定位信息,其包含以下几个常用字段:
[0003]经度、纬度、时间、车牌号、车牌颜色(编码)、速度、方向、海拔、里程、所属省(编码)、所属市(编码)、所属区(编码)、地址描述、其它标识字段。数据以行为单位,存储于关系型数据库中,一行则为一个轨迹点的信息,根据不同的查询条件组织成轨迹。
[0004]现阶段,数据以行为单位,一行为一个轨迹点的信息,会出现大量的数据冗余。由于其是结构化数据,尽管便于查询,但是由于其存储结构和方式,在数据量极大的情况下,会导致出现查询速度慢、数据大量冗余、过多占用存储空间的问题。
[0005]以车辆定位数据为例,同一辆车在一个小时之内的行驶轨迹,假定一分钟一条定位数据,若该一小时都在同一市区内行驶,则会出现以下情况:
[0006]产生的60条数据中,除了经度、纬度、时间、速度、方向、海拔、里程、地址描述这几个主要字段是不尽相同的(没有停车的情况),车牌号、车牌颜色(编码)、所属省市区(编码)等字段会出现重复的情况,从而数据冗余。
[0007]由于定位数据的特点,一个系统的数据量通常为千万级甚至亿级,传统的存储方式显然不合适,有构成轨迹时查询速度慢、大量数据的冗余、过多占用存储空间的问题。
[0008]综上所述,亟需一种新的海量数据存储技术方案。
>
技术实现思路

[0009]为此,本专利技术提供一种海量数据处理方法,解决数据查询速度慢、大量数据的冗余、过多占用存储空间的问题。
[0010]为了实现上述目的,本专利技术提供如下技术方案:一种海量数据处理方法,该海量数据处理方法通过确定待存储的数据粒度和数据字段,由动态扩增的列进行存储表的组织生成,将所述存储表的一列与一行交叉作为一个存储单元,将所述存储单元作为最细粒度的数据存储;
[0011]当进行数据存储时,先将待存储的数据存入内存中作为缓存,当定义的缓存栈超过阈值后,将存入内存的数据写入文件并落入到磁盘中;
[0012]所述数据的组成包括索引区和数据区,所述索引区对存储文件内部包含的数据类型进行记录,所述数据区对存储的数据对象进行存放;
[0013]当对存储的数据读取时,先从所述缓存栈中查询数据,如果命中则直接返回,否则在底层文件存储中查找数据;
[0014]当在底层文件存储中查找数据时,先检索数据的索引区,判断底层文件是否包含该数据,若底层文件不包含查找的数据则直接跳过,若底层文件包含查找的数据则根据索
引区进行数据定位。
[0015]作为海量数据处理方法的优选方案,所述数据的种类为车辆定位数据,所述数据粒度为一个轨迹点,所述存储单元由一个轨迹点构成。
[0016]作为海量数据处理方法的优选方案,所述存储表存储的轨迹点以时间戳作为列名,且存储表的列以时间进行动态扩增。
[0017]作为海量数据处理方法的优选方案,所述数据的存储采用分布式存储架构,数据最终由文件形式存储到磁盘中;
[0018]对所述分布式存储架构进行元数据管理维护,通过所述元数据管理确定数据落入的服务节点和文件目录。
[0019]作为海量数据处理方法的优选方案,根据预设的时间定时对磁盘中的存储文件大小进行扫描,当达到预设合并条件后触发合并机制进行若干存储文件的合并。
[0020]作为海量数据处理方法的优选方案,根据预设的时间定时对磁盘中的存储文件大小进行扫描,当达到预设拆分条件后触发拆分机制进行存储文件的拆分。
[0021]作为海量数据处理方法的优选方案,当作为列的时间戳相同时,通过在后存入的数据覆盖掉在先存入的数据。
[0022]作为海量数据处理方法的优选方案,在存储单元维护一个标记位,通过所述标记位标记数据是否有效,当数据触发合并机制时,检索被标记为无效的数据,对所述无效的数据不进行合并。
[0023]作为海量数据处理方法的优选方案,所述车辆定位数据的查询方式包括:获取指定车辆的最新轨迹点、获取指定时间区间中的车辆的最新轨迹点和获取指定车辆在指定时间区间中的轨迹。
[0024]作为海量数据处理方法的优选方案,当在底层文件存储中查找数据时,通过行编码定位一行数据,再根据列来进行筛选,然后返回查找的数据。
[0025]本专利技术具有如下优点:
[0026]本专利技术通过行和列动态扩展,将大量冗余的数据抽象成频繁变化的数据和非频繁变化的数据,频繁变化的数据存储于存储单元中,非频繁变化的数据组成了行编码和列。列的动态扩展满足了定位数据的特点,由于数据源采集数据的不稳定性,有该时间的定位数据则进行存储,没有则不进行存储;通过时间戳作为列,减少了数据冗余,还能够动态扩展,有序存储,从而节省了大量磁盘空间。
[0027]本专利技术通过字典顺序进行排序存储,而其中的日期信息,也会按照时间顺序进行存储。行编码既作为了数据查询的依据,也唯一标识了一行数据。
[0028]本专利技术中,行编码的排序存储极大的适用于定位轨迹的查询场景,轨迹本身就是由一段连续的时间的轨迹点组成,而行编码的顺序存储,保证了轨迹点都是按照时间顺序进行的存储,同时,时间戳列也是按照时间依次存储的。在查询时,也提升了查询效率,可以快速定位到某车某时间段的数据,再根据时间戳列进行筛选,快速查询到指定区间的定位数据。
[0029]本专利技术基于内存的缓存栈,数据读写速度远大于文件读写,在查数据时,会先在缓存栈中查询,只有未命中时,才去磁盘文件中查询。而文件形式的数据存储,也有相应的文件合并机制和拆分机制,自动优化管理文件,保证了数据文件存储不会过小也不会过大,始
终处于一个稳定可控的状态。
[0030]本专利技术通过元数据管理和分布式存储,数据文件存放在不同的服务器节点上,避免了单点服务器负载过高的情况,同时也可以进行横向扩展,通过增加服务器数量,来存放更多的数据。
附图说明
[0031]为了更清楚地说明本专利技术的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
[0032]图1为本专利技术实施例中提供的一种海量数据处理方法中分布式存储架构图;
[0033]图2为本专利技术实施例中提供的一种海量数据处理方法中数据组成示意图;
[0034]图3为本专利技术实施例中提供的一种海量数据处理方法中获取指定车辆的最新轨迹点流程图;
[0035]图4为本专利技术实施例中提供的一种海量数据处理方法中获取指定时间区间中的车辆的最新轨迹点流程图;
[0036]图5为本专利技术实施例中提供的一种海量数据处理方法中获取指定车辆在指定时间区间中的轨迹流程图。...

【技术保护点】

【技术特征摘要】
1.一种海量数据处理方法,其特征在于,确定待存储的数据粒度和数据字段,由动态扩增的列进行存储表的组织生成,将所述存储表的一列与一行交叉作为一个存储单元,将所述存储单元作为最细粒度的数据存储;当进行数据存储时,先将待存储的数据存入内存中作为缓存,当定义的缓存栈超过阈值后,将存入内存的数据写入文件并落入到磁盘中;所述数据的组成包括索引区和数据区,所述索引区对存储文件内部包含的数据类型进行记录,所述数据区对存储的数据对象进行存放;当对存储的数据读取时,先从所述缓存栈中查询数据,如果命中则直接返回,否则在底层文件存储中查找数据;当在底层文件存储中查找数据时,先检索数据的索引区,判断底层文件是否包含该数据,若底层文件不包含查找的数据则直接跳过,若底层文件包含查找的数据则根据索引区进行数据定位。2.根据权利要求1所述的一种海量数据处理方法,其特征在于,所述数据的种类为车辆定位数据,所述数据粒度为一个轨迹点,所述存储单元由一个轨迹点构成。3.根据权利要求2所述的一种海量数据处理方法,其特征在于,所述存储表存储的轨迹点以时间戳作为列名,且存储表的列以时间进行动态扩增。4.根据权利要求3所述的一种海量数据处理方法,其特征在于,所述数据的存储采用分布式存储架构,数据最终由文件形式存储到磁盘中...

【专利技术属性】
技术研发人员:张金宝沈党云田野
申请(专利权)人:中交智运有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1