分布式快速清单查询系统及方法与流程

文档序号:12825032阅读:304来源:国知局
分布式快速清单查询系统及方法与流程

本发明涉及一种分布式快速清单查询系统及方法。



背景技术:

对于电信清单的存储,以往一般采用非分布式的关系型数据库,这种存储模式简单方便,能提供较复杂的查询条件组合,并很好的支持表关联查询,查询响应也比较迅速。但这种存储模式存在压缩比低,扩容困难等问题,当数据海量增长时,往往很难满足快速线性扩容的要求。再以后发展成采用分布式部署的列存储数据库来存储海量清单数据,分布式的列存储数据库能提供更高的压缩比,扩容也相对简单,但由于列存储数据库在数据查询时需要进行数据解压,并且将列数据拼接为行数据,这样在查询响应速度上就很难满足要求,特别是在高并发查询的情况下。



技术实现要素:

为了解决清单查询系统响应慢、存储压缩比低,以及不易线性扩展的问题,本发明提供一种分布式快速清单查询系统及方法,具体方案如下:

一种分布式快速清单查询系统,包括:

分布式高速缓存服务模块,采用分布式内存计算技术,基于内存的数据管理引擎,作为热数据的存储介质,提供高速的基于内存的数据存储和查询服务;

分布式磁盘存储服务模块,包括分布式部署的列存储数据库,支持pb级的数据压缩存储和分析查询,支持高压缩率和线性扩展,作为冷数据的存储系统,提供相对较长时间内的数据存储和查询服务。

优选的,还包括:

采集模块,负责数据文件的采集,并进行登记;

预处理模块,对数据文件进行文件去重、完整性检查、规整、增强、抽取过滤以及拆分;

入库模块,把预处理过的数据插入到分布式高速缓存服务模块或分布式磁盘存储服务模块中。

优选的,还包括:

服务管理器,对服务节点中的分布式高速缓存服务模块、分布式磁盘存储服务模块进行管理,并接受查询服务器的服务注册请求,以及客户端的服务订阅请求并回复可用的已经注册的查询服务器的地址;

查询服务器,分布于各服务节点,用于对所述服务节点内的分布式高速缓存服务模块、分布式磁盘存储服务模块进行数据查询。

一种分布式快速清单查询方法:采用数据分级治理的思路,将热数据、冷数据分开,采用不同的技术和产品来存储和处理热数据、冷数据。

优选的,对于热数据采用分布式高速缓存组件技术,满足高并发、低延时的查询要求,提升客户体验;

对于冷数据,则保存在分布式磁盘数据库中,提供高容量高压缩的存储。

优选的,所述热数据、冷数据由采集模块、预处理模块以及入库模块依次对数据处理获得。

优选的,所述入库模块处理流程包括:

1)入库进程启动后,先获取已经预处理的清单文件列表;

2)打开清单文件并读取清单记录;

3)把清单记录入库到分布式高速缓存;

4)把清单记录入库到分布式磁盘数据库;

5)更新文件列表,标志为入库;

6)删除已入库清单文件。

优选的,建立服务管理器以及分布于服务节点的查询服务器,客户端通过向服务管理器得到服务列表,然后根据列表连接到查询服务器,客户端通过传入用户号码、清单类型和时间范围进行清单查询,查询服务器按照预定的格式组装成查询结果包,返回给服务调用方。

优选的,查询服务器支持注册订阅机制,查询服务器在进行服务之前先注册到服务管理器,是为服务注册,将能提供的服务告诉服务管理器,服务管理器把这些信息写入服务列表,并在退出之前向服务管理器进行注销;

客户端在使用查询服务器提供的服务时须先向服务管理器发起服务订阅请求,在获得服务管理器返回的服务列表后,使用相应的查询服务器;服务管理器根据已经注册的服务信息以及各查询服务器当前的状态决定返回的服务列表内容,客户端通过服务名来请求想要的服务。

优选的,数据查询流程如下:

1)客户端向清单查询服务器发起查询请求,内容包括号码、时间段、清单类型;

2)查询服务器根据时间段拆分为热数据、冷数据查询,对于热数据查询请求,向分布式高速缓存发查询请求,对于冷数据查询请求,则向分布式磁盘数据库发查询请求;

3)分布式高速缓存接到查询请求后,在缓存中找到相应数据,并返回给查询服务器;分布式磁盘数据库接到查询请求后在磁盘库中找到相应数据,也返回给查询服务器;

4)查询服务器做冷热结果数据做合并,返回给客户端。

本发明提供的分布式快速清单查询系统及方法可基于x86分布式部署,可动态快速扩容;支持服务注册/订阅机制,可动态发现服务;冷热数据分治管理,常用热数据存储于主机内存中,可提供快速查询服务。本发明产品可应用于电信运营支撑的清单查询,并且扩展后还可应用于需要大规模存储并快速响应查询的更广泛领域;其设计思路领先于业界同行。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的不当限定,在附图中:

图1为本发明实施例框架图;

图2是本发明实施例清单入库流程图;

图3是本发明实施例清单查询服务器架构图;

图4清单查询流程图;

图5是本发明实施例根据数据冷热清单分治存储示意图。

具体实施方式

下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定;

实施例

如图1所示,一种分布式快速清单查询系统,包括:

分布式高速缓存服务模块,采用分布式内存计算技术,基于内存的数据管理引擎,作为热数据的存储介质,提供高速的基于内存的数据存储和查询服务;高速缓存组件是完全基于内存的数据管理引擎,致力于解决现有数据库性能慢、扩展难、成本高等固有问题。高速缓存组件支持分布式集群部署,支持完整的acid一致性,支持持久化。为了获得最大化吞吐量,数据保存在内存中(而不是在硬盘),这样可以有效消除缓冲区管理。集群环境下的高速缓存组件,把数据分发给集群服务器的每个cpu进行处理。每个单线程分区自主执行,消除锁定和闩锁的需求。它还可以通过简单的在集群中增加附加节点的方式实现性能的线性增加。

分布式磁盘存储服务模块,包括分布式部署的列存储数据库,支持pb级的数据压缩存储和分析查询,支持高压缩率和线性扩展,作为冷数据的存储系统,提供相对较长时间内的数据存储和查询服务。

本实施例方案中的数据采集及处理包括:

采集模块,负责数据文件的采集,并进行登记,ocs系统提供完计费服务后,把生成的话单以文件的形式保存在固定地方,清单库系统的文件采集模块负责及时的把这些话单文件使用ftp协议采集过来,并进行登记。

预处理模块,对数据文件进行文件去重、完整性检查、规整、增强、抽取过滤以及拆分,采集过来的话单文件,必须经过预处理后才能入库使用,预处理的内容包括:

1)文件去重,根据文件名进行查重。ocs在工程期间,可能会重复采集同一个文件,预处理查重功能确保不会重复对同一个文件进行入库。

2)记录完整性检查,对话单记录做合理性检查,对一些明显不完成的记录进行登记和告警。

3)记录信息增强和规整,为了入库格式的需要,需要对原始话单记录进行必要的规整,如号码区号规整等。另外为了方便统计,需求在每条话单记录末尾增加文件名信息等。

4)记录信息抽取过滤,根据清单库表设计要求,去掉原始话单记录的一些冗余字段,只抽取有用的信息。

5)话单文件拆分,清单库的记录是按月分表的,为了方便入库和统计,需要对待入库话单文件按月进行拆分。

入库模块,清单入库为常驻运行的服务,把预处理过的数据插入到分布式高速缓存服务模块或分布式磁盘存储服务模块中,为了保持高速缓存和磁盘数据库中的数据的一致性,同一份话单数据将分别入到分布式高速缓存和分布式磁盘数据库中。

本实施例方案中还包括:

服务管理器,对服务节点中的分布式高速缓存服务模块、分布式磁盘存储服务模块进行管理,并接受查询服务器的服务注册请求,以及客户端的服务订阅请求并回复可用的已经注册的查询服务器的地址;

查询服务器,分布于各服务节点,用于对所述服务节点内的分布式高速缓存服务模块、分布式磁盘存储服务模块进行数据查询。

由上述实施例方案可知,本发明采用数据分级治理的思路,将热数据、冷数据分开,采用不同的技术和产品来存储和处理热数据、冷数据。

具体地,本发明实施例中,对于热数据采用分布式高速缓存组件技术,满足高并发、低延时的查询要求,提升客户体验;基于内存访问的分布式高速缓存,数据查询处理全部都是在内存中完成,无磁盘io,因此可以获得1~2数据量级的性能提升。并且高速缓存以行为单位组织记录,因此无需做数据解压、多列拼行处理,而是直接返回清单记录,处理效率大大提升。分布式内高速缓存,在单机缓存的基础上增加了水平扩展的能力,因此容量上不再有限制,可以通过增加服务器数量来存储海量数据。

对于冷数据,则保存在分布式磁盘数据库中,提供高容量高压缩的存储。

所述热数据、冷数据由采集模块、预处理模块以及入库模块依次对数据处理获得。

如图2所示,上述实施例方案中的入库模块处理流程包括:

1)入库进程启动后,先获取已经预处理的清单文件列表;

2)打开清单文件并读取清单记录;

3)把清单记录入库到分布式高速缓存;

4)把清单记录入库到分布式磁盘数据库;

5)更新文件列表,标志为入库;

6)删除已入库清单文件。

进一步的,建立服务管理器以及分布于服务节点的查询服务器,客户端通过向服务管理器得到服务列表,然后根据列表连接到查询服务器,客户端通过传入用户号码、清单类型和时间范围进行清单查询,查询服务器按照预定的格式组装成查询结果包,返回给服务调用方。

上述实施例提供的分布式快速清单查询方法中,查询服务器支持注册订阅机制,查询服务器在进行服务之前先注册到服务管理器,是为服务注册,将能提供的服务告诉服务管理器,服务管理器把这些信息写入服务列表,并在退出之前向服务管理器进行注销;服务注册的内容包括:动作标志(注册1,注销0)、服务名、服务类型、服务ip、服务端口、协议类型、协议版本、服务生效时间、服务失效时间。

客户端在使用查询服务器提供的服务时须先向服务管理器发起服务订阅请求,在获得服务管理器返回的服务列表后,使用相应的查询服务器;服务管理器根据已经注册的服务信息以及各查询服务器当前的状态(健康状态和闲忙状态)决定返回的服务列表内容,客户端通过服务名来请求想要的服务。

如图3所示,查询服务主线程启动后建立到高速缓存和磁盘数据库的连接池,在向服务管理平台注册服务成功后,启动socket监听,等待为客户端提供查询服务。在接收到连接请求后,建立连接,并启动新的服务子线程为客户端服务。客户和子线程之间是socket长连接,服务完成后客户端主动断开。

高速缓存集群存放热数据(1+1个月内数据),gbase集群存放冷数据(t>1+1),

子线程获取连接后执行查询操作,当查询日期大于1+1即查磁盘数据库,当日期小于1+1即查高速缓存,如果查不到数据再去查磁盘数据库。

服务管理平台除了处理注册和订阅请求外,还对清单系统内的各个服务节点进行管理:接收各节点返回的健康和闲忙状态;主动撤离服务节点或接收新的服务节点;调整各节点的闲忙系数,进行负载均衡处理等。

如图4所示,上述实施例提供的分布式快速清单查询方法,数据查询流程如下:

1)客户端向清单查询服务器发起查询请求,内容包括号码、时间段、清单类型;

2)查询服务器根据时间段拆分为热数据、冷数据查询,对于热数据查询请求,向分布式高速缓存发查询请求,对于冷数据查询请求,则向分布式磁盘数据库发查询请求;

3)分布式高速缓存接到查询请求后,在缓存中找到相应数据,并返回给查询服务器;分布式磁盘数据库接到查询请求后在磁盘库中找到相应数据,也返回给查询服务器;

4)查询服务器做冷热结果数据做合并,返回给客户端。

如图5所示,本方案采用数据分级治理的思路,将热数据、冷数据分开,采用不同的技术和产品来存储和处理不同级别热度的数据。

对于热数据(如当月和上月数据)采用分布式高速缓存组件技术,满足高并发、低延时的查询要求,提升客户体验。对于冷数据(如非当月和上月数据),则保存在分布式磁盘数据库中,提供高容量高压缩的存储。

具体实现中,数据在入库时同时入库到分布式高速缓存和磁盘数据库,转月后把非当月和上月的数据从高速缓存中删除即可。由于数据在内存库中是按月分表,删除数据时只要执行truncate截断可快速进行数据清理。查询时根据当前时间,确定是查询高速缓存还是磁盘库。

基于内存访问的分布式高速缓存,数据查询处理全部都是在内存中完成,无磁盘io,因此可以获得1~2数据量级的性能提升。并且高速缓存以行为单位组织记录,因此无需做数据解压、多列拼行处理,而是直接返回清单记录,处理效率大大提升。

分布式内高速缓存,在单机缓存的基础上增加了水平扩展的能力,因此容量上不再有限制,可以通过增加服务器数量来存储海量数据。

以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1