一种大数据检索方法和装置与流程

文档序号:11155156阅读:400来源:国知局
一种大数据检索方法和装置与制造工艺

本发明涉及大数据技术领域,尤其涉及一种大数据检索方法和装置。



背景技术:

现有的数据检索方法是:客户端发送请求到数据服务器,数据服务器检索出符合条件的数据集返回给客户端;客户端根据获取的数据集进行处理,统计数据集的一些相关信息,然后在前台界面分页展示给用户。这种方法易管理、易维护、技术体系成熟,但缺点是:如果检索的数据集过大时,如超过10万条数据记录,那么,在给用户进行检索展示时,数据服务器端的检索时长就会过长,且网络数据传输量过大,会导致给用户的展示延时较大,用户需等待较长时间才能看到检索结果。

为解决检索数据量大、展示延时长的问题,可采用分页展示的方式,现有的分页展示方法是:客户端在发送请求到数据服务器时,采用页码索引的方式,每次只发送需要检索的页码给数据服务器;数据服务器根据特定算法每次根据页码范围进行检索,将检索的结果集返回给客户端。这种方法通过结合缓存技术,可以适用于前台无需展示检索结果集的统计信息、只展示明细的场景;但对于需要同时展示明细及数据集统计信息的场景,仍无法使用此种方法。

另外,现有的数据检索与分页展示方法都是在数据集检索完毕后做处理展示,或者采用多次检索通过页码索引的方式完成数据检索与分页展示,都是采用同步检索数据展示的方法。

对于先进行数据查询,再在客户端进行分页处理的方法,该方法在对大数据进行实时检索时,如果检索得到的结果集过大,会造成检索时长过长,且网络数据传输量过大,会导致给用户的展示延时较大,用户需等待较长时间才能 看到检索结果。例如:用户按月检索通用分组无线服务技术(GPRS,General Packet Radio Service)流量话单,如果用户有超过10万条话单需要展示,检索响应时间会很长。

对于通过页码索引的方式,该方式由于每次检索时,无法检索出全量数据集,故无法获取数据集的某些统计信息;以GPRS话单为例,如果采用此种方式,每次检索时无法获取用户GPRS的总条数、总流量、总费用等统计信息;如果前台界面要求同步展示这些信息的检索,此种方法存在很大的缺陷无法适用;即使采用缓存技术将全量结果检索出来后进行缓存,也将面临如数据集过大、第一次检索响应时长过长的问题。

如何克服在大数据量检索中,检索响应时间长和检索结果无统计信息等问题,亟待解决。



技术实现要素:

有鉴于此,本发明实施例期望提供一种大数据检索方法和装置,能降低数据服务器的访问量,并提升用户查询与分页展示的速度。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供了一种大数据检索的方法,包括:按数据类别统计数据库数据对应的数据总表的数据,根据统计结果建立索引统计表;所述方法还包括:

建立页码数据缓存器链表,在页码数据缓存器链表中指定页码数据缓存器作为前置页码数据缓存器;

根据检索条件,从所述索引统计表中查询出符合所述检索条件的统计信息;

将所述数据总表中符合所述检索条件的数据填充到页码数据缓存器链表;

所述前置页码数据缓存器空间填充满时,返回所述前置页码数据缓存器的数据和所述统计信息到检索客户端。

上述方案中,将所述数据总表中符合所述检索条件的数据填充到页码数据缓存器链表,包括:

根据检索条件采用顺序查询和逆序查询两个进程对数据总表进行检索;

所述顺序查询检索到的数据按顺序填充到页码数据缓存器链表,所述逆序查询检索到的数据按逆序填充到页码数据缓存器链表。

上述方案中,所述页码数据缓存器链表为双向链表结构,包含一个以上的页码数据缓存器;

所述前置页码数据缓存器为填充所述页码数据缓存器链表时首先填充的页码数据缓存器;

所述前置页码数据缓存器的页码数据缓存器数量根据需求预先设定,包含一个以上的页码数据缓存器。

上述方案中,所述方法还包括:

当需求返回页的页码对应的页码数据缓存器未填满时,则等待所述页码数据缓存器被填满,再返回所述对应的页码数据缓存器的数据到检索客户端。

上述方案中,所述方法还包括:

更新所述数据总表时同步更新所述索引统计表;

如果所述索引统计表为分期建立,则对往期索引统计表进行合并处理。

上述方案中,所述方法还包括:

如果页码数据缓存器链表建立的时间超过预设的时间设定,则回收页码数据缓存器链表占用的内存。

本发明实施例还提供了一种大数据检索的装置,包括:数据存储模块、检索模块、页码数据缓存模块;其中,

所述数据存储模块,用于建立并更新数据库数据对应的数据总表,统计所述数据总表的数据,按类别建立索引统计表;

所述页码数据缓存模块,用于建立页码数据缓存器链表,并指定其中一个以上页码数据缓存器被指定为前置页码数据缓存器;

所述检索模块,用于从所述索引统计表中查询出符合检索条件的统计信息;检索所述数据总表,并将检索结果填充到所述页码数据缓存器中;确定前置页码数据缓存器空间填充满,并返回所述前置页码数据缓存器的内容和所述统计 信息到客户端。

上述方案中,所述检索模块,具体用于,

根据检索条件采用顺序查询和逆序查询两个进程对数据总表进行检索;

所述顺序查询检索到的数据按顺序填充到页码数据缓存器链表,所述逆序查询检索到的数据按逆序填充到页码数据缓存器链表;

当需求返回页的页码对应的页码数据缓存器未填满时,等待所述页码数据缓存器被填满,再返回所述对应的页码数据缓存器的数据到检索客户端。

上述方案中,所述页码数据缓存器链表为双向链表结构,包含一个以上的页码数据缓存器;

所述前置页码数据缓存器为填充所述页码数据缓存器时链表首先填充的页码数据缓存器;

所述前置页码数据缓存器的页码数据缓存器数量根据需求预先设定。

上述方案中,所述数据存储模块,还用于更新所述数据总表时同步更新所述索引统计表;

所述装置还包括:索引统计表同步模块:用于对于分期建立所述索引统计表,对往期索引统计表进行合并处理;

页码数据缓存器回收模块,用于当建立的页码数据缓存器链表超过预设的失效时间设定,则回收页码数据缓存器链表占用的内存。

本发明实施例所提供的大数据检索方法和装置,按数据类别统计数据库数据对应的数据总表的数据,根据统计结果建立索引统计表;建立页码数据缓存器链表,在页码数据缓存器链表中指定页码数据缓存器作为前置页码数据缓存器;根据检索条件,从所述索引统计表中查询出符合所述检索条件的统计信息;将所述数据总表中符合所述检索条件的数据填充到页码数据缓存器链表;所述前置页码数据缓存器空间填充满时,返回所述前置页码数据缓存器的数据和所述统计信息到检索客户端;由此,只需检索出前几页的数据就可以给用户进行展示,用户根据需要再进行页选择展示,降低了数据服务器的访问量,并提升了用户查询与分页展示的速度。

附图说明

图1为本发明实施例一种大数据检索方法的流程示意图;

图2为本发明实施例HBASE数据库大数据检索方法的流程示意图;

图3为本发明实施例页码数据缓存器双向链表组成结构示意图;

图4为本发明实施例页码数据缓存器链表数据填充的流程示意图;

图5为本发明实施例页码数据缓存器链表内存回收的流程示意图;

图6为本发明实施例HBASE数据库存储的流程示意图;

图7为本发明实施例分期索引统计表合并的流程示意图;

图8为本发明实施例一种大数据检索装置组成结构示意图。

具体实施方式

本发明实施例中,按数据类别统计数据库数据对应的数据总表的数据,根据统计结果建立索引统计表;建立页码数据缓存器链表,在页码数据缓存器链表中指定页码数据缓存器作为前置页码数据缓存器;根据检索条件,从所述索引统计表中查询出符合所述检索条件的统计信息;将所述数据总表中符合所述检索条件的数据填充到页码数据缓存器链表;所述前置页码数据缓存器空间填充满时,返回所述前置页码数据缓存器的数据和所述统计信息到检索客户端。

下面结合实施例对本发明再作进一步详细的说明。

本发明实施例提供的大数据检索方法,如图1所示,包括:

步骤101:按数据类别统计数据库数据对应的数据总表的数据,根据统计结果建立索引统计表;

具体的,数据库中的数据以表的形式储存,所述数据总表为数据库中所有数据的存储表,存储海量的相关信息;根据数据总表中的数据类型等统计数据总表的统计项信息,并生成索引统计表;本实施例中,所述数据库可以是分布式计算数据库(HBASE,Hadoop database),数据总表可以为用户GPRS清单,如:日期、业务类型、计费号码等;这样,索引统计表可以针对每个用户统计GPRS清单的总条数、总费用、总流量等。针对于电话清单、GPRS清单,为了 便于按月结算费用,所述索引统计表还可以分期建立,如:按月建立。

这里,本实施例方法还包括:更新所述数据总表时,同步更新所述索引统计表;在向数据库中数据总表存入清单数据时,同时在索引统计表中存入统计项信息,两个操作同时成功才认为数据存储成功。对于分期建立所述索引统计表,对往期索引统计表进行合并处理;本实施例中,针对数据总表为用户GPRS清单的情况,可以在账期切换时,对往期的索引统计表进行合并,合并后一个用户号码只对应一条统计信息,如此,可加快索引统计表的检索速度。

步骤102:建立页码数据缓存器链表,在页码数据缓存器链表中指定页码数据缓存器作为前置页码数据缓存器;

这里,开始检索时,建立页码数据缓存器链表,页码数据缓存器链表由一个以上的页码数据缓存器组成,并形成双向链表结构,可以分别从所述页码数据缓存器链表两头填充;每一个页码数据缓存器可以用来缓存对应的一页用于返回显示的检索结果内容;页码数据缓存器链表实现对数据总表检索出的结果及数据的缓存,供用户对后续页面查询使用。在页码数据缓存器链表中,可指定一个以上的页码数据缓存器作为前置页码数据缓存器;具体指定的数目根据用户需要确定,且每次指定的数目可变。

步骤103:根据检索条件,从所述索引统计表中查询出符合所述检索条件的统计信息;

这里,开始检索时,客户端将检索条件发送至数据库;根据检索条件在索引统计表的统计结果中,将符合所述检索条件的统计信息提取出来;本实施例中,所述检索条件可以是特定用户,这样,统计信息就可以是特定用户的GPRS清单的总条数、总费用、总流量等。

步骤104:将所述数据总表中符合所述检索条件的数据填充到页码数据缓存器链表;

这里,可以根据检索条件同时采用顺序查询和逆序查询两个进程对数据总表进行检索;所述顺序查询从数据总表的表首开始查询,所述逆序查询从数据总表的表尾开始查询;如此,可大大提高检索的速度;本实施例中,可以调用 两个查询程序对清单数据总表按HBASE的key-value方式进行检索,一个顺序查、一个逆序查;

所述顺序查询检索到的数据按顺序填充到页码数据缓存器链表,所述逆序查询检索到的数据按逆序填充到页码数据缓存器链表;本实施例中,将获得的检索结果不断填充到页码缓冲器链表上的页码数据缓存器中,一个顺序填充、一个逆序填充。

这里,步骤103和步骤104没有先后顺序,可以对调,也可以同时进行;这样,可以提高检索的速度。

步骤105:所述前置页码数据缓存器空间填充满时,返回所述前置页码数据缓存器的数据和所述统计信息到检索客户端;

这里,所述前置页码数据缓存器为填充所述页码数据缓存器链表时首先填充的页码数据缓存器;所述前置页码数据缓存器中包含的页码数据缓存器数量根据需求预先设定,所述前置页码数据缓存器包含一个以上的页码数据缓存器;预先设定前置页码数据缓存器中页码数据缓存器的数量,在检索中获得的检索结果会首先填充到前置页码数据缓存器中;所述统计信息为步骤103中获取的与所述检索条件对应的索引统计表中的信息;当前置页码数据缓存器被填充满时,将前置页码数据缓存器的数据和所述统计信息到检索客户端,用于对用户进行显示;此时检索尚未全部完成,剩余的检索还在继续,如此,起到结果返回和检索异步并行处理的作用,能及时响应检索客户端。

本实施例中,可以将前置页码数据缓存器的数据和所述统计信息生成可扩展标记语言(XML,eXtensible Markup Language)报文,将报文返回客户端,对客户端展示程序进行响应;每个页码数据缓存器可以对应一个显示页,用于填充一个页面的检索结果,如此,全部检索没有完成的情况下,将先期的检索结果以及统计信息在最短的时间内向用户展示,大大缩短用户的等待时间。

本实施例的方法还包括:当需求返回页的页码对应的页码数据缓存器未填满时,则等待所述页码数据缓存器被填满,再返回所述对应的页码数据缓存器的数据到检索客户端;

这里,当步骤104中前置页码数据缓存器空间填充满,并返回所述前置页码数据缓存器的数据和所述统计信息到检索客户端的同时,对完整结果的检索仍然在并行进行,并不断填充到空的页码数据缓存器链表中;当用户需要查询未展示的清单页时,首先检查用户需要查询的页面对应的页码数据缓存器是否已填完数据,如果完成则从相关页码数据缓存器中取出数据对客户端进行响应,如果未完成则等待页码数据缓存器被填充,再返回所述对应的页码数据缓存器的数据到检索客户端;由于采用了异步并行技术,页码数据缓存器未填充的概率较低,即使出现页码数据缓存器未填充的情况,等待未填充页码数据缓存器填充的时间也远远小于全量数据查询的时间。

本实施例的方法还包括:如果页码数据缓存器链表建立的时间超过预设的时间设定,则回收页码数据缓存器链表占用的内存;

这里,预先设计页码数据缓存器链表失效时间,在失效时间到达时,清理页码数据缓存器链表,释放相关的内存。

下面结合具体示例1对本发明产生的积极效果作进一步详细的描述;所述示例1为用户GPRS海量清单实时查询与分页展示的设计。

HBASE数据库设计如下:

用户清单索引统计表历史月HBASE存储格式结构设计如下:

RowKey设计:

MSISDN+日期+业务类型

MSISDN:计费号码

日期:处理时间字段,精确到天

业务类型:两位计费业务类型

Column Family设计:

一个Column Family,三个column。分别为话单总条数、总流量和总金额。

用户清单索引统计表当前月HBASE存储格式结构设计如下:

RowKey设计

MSISDN+日期+业务类型

MSISDN:计费号码

日期:处理时间字段,精确到天

业务类型:两位计费业务类型

Column Family设计:

一个Column Family,两个column。分别为流量和金额。

该类表存储需要在前台进行展示的统计信息,存储量很小,如用户GPRS的总流量、总条数、总金额,对于历史月的GPRS清单查询,如果是比当期账期小一月,会在月初由后台同步程序即图示的第8步完成统计信息的初始化工作,因为用户上月的清单已经不会再发生变化,相关统计信息总额也将是静态的,故初始化后,一个用户对应一个总条数、总流量、总金额;对当前月的统计信息,由于其是随着用户不断使用话单而动态变化的,所以需要在存储程序进行话单实时入库时,实现在索引表和数据总表中的相关数据同步,如前述第6和第7步,当前月的索引统计表中一个用户对应多条流量和金额记录,待账期切换后,再由第8步的同步初始化程序进行处理,变成历史月统计信息表,届时一个号码对应一条相关记录,查询效率提升。

用户数据总表HBASE存储格式结构设计如下:

RowKey设计:

MSISDN+日期+业务类型

MSISDN:计费号码

日期:处理时间字段,精确到天

业务类型:两位计费业务类型

Column Family设计:

一个Column Family,多个column。单条话单整体存入column

该表为用户清单实际数据的存储表,存储海量的用户清单相关信息,在进行用户清单查询时,如遇到用户清单量非常大时,由HBASE客户端查询程序调度的并发查询子程序实现将结果集异步缓存到数据缓存池中,如第三步所 示。

HBASE服务器端查询程序设计,具体为:HBASE服务器端查询程序根据前端展示程序要求要求构造,其根据前端的查询请求进行响应,其与客户端展示程序间通过XML报文进行通信,接口格式包括请求报体DATA和响应报体DATA;所述请求报体DATA包含信息如表1所示,响应报体DATA包含信息如表2所示。

表1

表2

HBASE服务器端查询程序收到客户端展示程序发送的清单查询请求报文后,判断是否为首次查询,如为首次查询则从统计信息索引表中查询对应用户的统计信息,然后初始化页码数据缓存器链表,同时启动两个查询填充进程对HBASE中的数据总表进行并发查询,并发程序从HBASE总表中查询出数据后,将数据放入页码数据缓存器链表中,页码数据缓存器的结构后续单独介绍,HBASE服务器端程序在从索引统计表中获取了用户的统计信息后,循环扫描页码数据缓存器链表中的前n个页码数据缓存器是否已填满(n的数量可以通过配置文件定义),如都已填满,则产生XML报文进行响应,其响应报文见上述响应报文体,此时所有结果集的页码数据缓存器并未填满,两个查询填充程序仍然在顺序和逆序的两个方向上填充页码数据缓存器链表,但前台展示程序已经可以给用户进行展示了,大大提升了展示的效率。

当用户点击页码进行展示选择时,展示端程序发送请求报文,报文中的beginpage和endpage不为空,此时,HBASE服务器端程序知晓为非首次查询,其到页码数据缓冲池中进行查询,通过传入的页码范围匹配到对应的页码数据缓存器,并检查查询填充进程是否已将其所需的页码数据缓存器填满,如填满则读取相关数据生成XML报文进行响应,如未填满则继续等待,直到其需要的页码缓冲器全部被填满后,生成XML报文进行响应。由于用户要求展示的内容为全部结果集的片段,且这些片段的填充被两个并行服务器同时进行,用户的请求也是分多次进行且是顺序增长的,其间的时间间隔足以让并行服务器将页码数据缓存器链表填满,故查询效率大大提升,另外用户很可能只浏览结果全集里的很少一部分关注的内容,所以网络传输的数据量也大大降低,上述处理流程结构如图2所示。

页码数据缓存器结构及查询填充程序设计,具体为:页码数据缓存器是一种内存结构,所有的页码数据缓存器串成一个双向链表,其页码数据缓存器双 向链表结构如图3所示;页码数据缓存器双向链表头内存结构包括指向第一个页码数据缓存器的指针和指向最后一个页码数据缓存器的指针,正序查询填充程序的填充进度指针及倒序查询填充程序的填充进度指针;其中,正序查询填充程序的填充进度指针初始指向第一个页码数据缓存器,逆序查询填充程序进度指针初始指向最后一个页码数据缓存器;此外,还有一个链表缓存开始时间,具体数据结构如下:

Struct pageheader{

Time_t cachebegintime;

Struct pagebody*firstbody;

Struct pagebody*endbody;

Struct pagebody*fill1_body;

Struct pagebody*fill2_body;

}

其中,Time_t是自定义的结构体时间类型数据,存储链表缓存开始时间,*firstbody是指向首个页码数据缓存器结构体的指针,*endbody为指向最后一个页码数据缓存器的指针,*fill1_body为指向顺序填充进程当前填充进度的指针,*fill2_body为指向逆序填充进程当前填充进度的指针。

页码数据缓存器内存结构,包括一个指向上一个页码数据缓存器的指针和下一个页码数据缓存器的指针,一个填充进程占用标志(标志是倒序还是顺序进程占用)、一个数据是否填充满标志

Struct pagebody{

Int filltag;/*是否填充满标志0为未填充,1为填充满*/

Int fillhold;/*0为未占有,1为填顺序填充进程占有,2为逆序填充进程占有*/

Struct data;*为自定义的用户详单记录数据结构体,存储一条或多条话单记录*/

Struct pagebody*nextbody;/*指向下一个页码数据缓存器指针*/

Struct pagebody*prevbody;/*指向上一个页码数据缓存器指针*/

}

两个查询填充进程从链表的两端对链表的页码数据缓存器进行数据填充,其处理流程如图4所示。

页码数据缓存器内存回收程序设计,用于根据缓存超时时间设定,回收页码数据缓存器占用的内存,其处理流程如图5所示。

HBASE存储程序设计,具体为:HBASE存储程序在进行话单存储时,同时向HBASE数据库数据总表与索引统计表进行插入,类似关系数据库中的表与索引的关系,在HBASE数据库调用HBASE接口存储全量清单数据进数据总表中,在索引统计表中根据字段过滤存入统计字段数据,索引统计表占全量清单数据的比重一般控制在5%以内,否则异步展示的效果将打折扣;本例中只有两个字段:流量和金额,其占全量清单数据比重不到1%。HBASE存储程序处理流程如图6所示示。

索引统计表信息同步程序,主要用于:当账期切换时,索引统计表信息同步程序对上月的索引表进行处理,实现每个用户号码只对应一条统计信息,提升索引表查询效率,其处理流程如图7所示。

本发明实施例提供的大数据检索装置,如图8所示,包括:数据存储模块81、页码数据缓存模块82和检索模块83,其中,

所述数据存储模块81,用于建立并更新数据库数据对应的数据总表,统计所述数据总表的数据,按类别建立索引统计表;

具体的,数据库中的数据以表的形式储存,所述数据总表为数据库中实际数据的存储表,存储海量的相关信息;根据索引或数据总表中的数据类型等统计数据总表的统计项信息,并生成索引统计表;本实施例中所述数据库可以是分布式计算数据库,数据总表可以为用户GPRS清单,如:日期、业务类型、计费号码等;这样索引统计表可以针对每个用户统计GPRS清单的总条数、总费用、总流量等;针对于电话清单、GPRS清单,为了便于按月结算费用,所述索引统计表还可以分期建立,如:按月建立。

所述数据存储模块81,还用于更新所述数据总表时,同步更新所述索引统计表;在向数据库中数据总表存入清单数据时,同时在索引统计表中存入统计项信息,两个操作同时成功才认为数据存储成功。

所述页码数据缓存模块82,用于建立页码数据缓存器链表,并指定其中1个以上页码数据缓存器被指定为前置页码数据缓存器;

具体的,开始检索时,所述页码数据缓存模块82建立页码数据缓存器链表,页码数据缓存器链表可以由一个以上的的页码数据缓存器组成,并形成双向链表结构,可以分别从所述页码数据缓存器链表两头填充;每一个页码数据缓存器可以用来缓存对应的一页用于返回显示的检索结果内容;页码数据缓存器链表实现对数据总表检索出的结果及数据的缓存,供用户对后续页面查询使用。在页码数据缓存器链表中,可指定一个以上的页码数据缓存器作为前置页码数据缓存器;具体指定的数目根据用户需要确定,且每次指定的数目可变。

所述检索模块83,用于从所述索引统计表中查询出符合检索条件的统计信息;检索所述数据总表,并将检索结果填充到所述页码数据缓存器链表中;确定前置页码数据缓存器空间填充满,并返回所述前置页码数据缓存器的内容和所述统计信息到客户端;这里,所述用于从所述索引统计表中查询出符合检索条件的统计信息和所述检索所述数据总表,并将检索结果填充到所述页码数据缓存器中这两个步骤没有先后顺序,可以对调,也可以同时进行;这样,可以提高检索的速度。

具体的,开始检索时,客户端将检索条件发送至数据库;所述检索模块83根据检索条件在索引统计表的统计结果中,将符合所述检索条件的统计信息提取出来;本实施例中,所述检索条件可以是特定用户,这样,统计信息就可以是特定用户的GPRS清单的总条数、总费用、总流量等;

所述检索模块83可以根据检索条件采用顺序查询和逆序查询两个进程对数据总表进行检索;所述顺序查询从数据总表的表首开始查询,所述逆序查询从数据总表的表尾开始查询;如此,可大大提高检索的速度;本实施例中,可以调用两个查询程序对清单数据总表按HBASE的key-value方式进行检索,一 个顺序查、一个逆序查;

所述顺序查询检索到的数据按顺序填充到页码数据缓存器链表,所述逆序查询检索到的数据按逆序填充到页码数据缓存器链表;所述顺序查询从数据总表的表首开始查询;所述逆序查询从数据总表的表尾开始查询,大大提高检索的速度;本实施例中,将获得的检索结果不断填充到页码缓冲器链表上的页码数据缓存器中,一个顺序填充、一个逆序填充。

所述前置页码数据缓存器为填充所述页码数据缓存器链表时首先填充的页码数据缓存器;所述前置页码数据缓存器中包含的页码数据缓存器数量根据需求预先设定,所述前置页码数据缓存器包含一个以上的页码数据缓存器;预先设定前置页码数据缓存器中页码数据缓存器的数量,在检索中获得的检索结果会首先填充到前置页码数据缓存器中;所述统计信息为步骤103中获取的与所述检索条件对应的索引统计表中的信息;当前置页码数据缓存器被填充满时,将前置页码数据缓存器的数据和所述统计信息到检索客户端,用于对用户进行显示;此时检索尚未全部完成,剩余的检索还在继续,如此,起到结果返回和检索异步并行处理的作用,能及时响应检索客户端。

本实施例中可以将前置页码数据缓存器的数据和所述统计信息生成XML报文,将报文返回客户端,对客户端展示程序进行响应;每个页码数据缓存器可以对应一个显示页,用于填充一个页面的检索结果,如此,全部检索没有完成的情况下,将先期的检索结果以及统计信息在最短的时间内向用户展示,大大缩短用户的等待时间。

所述检索模块83,还用于当需求返回页的页码对应的页码数据缓存器未填满时,则等待所述页码数据缓存器被填满,再返回所述对应的页码数据缓存器的数据到检索客户端。

这里,当前置页码数据缓存器空间填充满,并返回所述前置页码数据缓存器的数据和所述统计信息到检索客户端的同时,检索模块83对完整结果的检索仍然在并行进行并不断填充到空的页码数据缓存器链表中;当用户需要查询未展示的清单页时,首先检查用户需要查询的页面对应的页码数据缓存器是否已 填完数据,如果完成则从相关页码数据缓存器中取出数据对客户端进行响应,如果未完成则等待页码数据缓存器被填充,再返回所述对应的页码数据缓存器的数据到检索客户端;由于采用了异步并行技术,页码数据缓存器未填充的概率较低,即使出现页码数据缓存器未填充的情况,等待未填充页码数据缓存器填充的时间也远远小于全量数据查询的时间。

本实施例的装置还包括:索引统计表同步模块84,用于对于分期建立所述索引统计表,合并往期索引统计表;本实施例中,针对数据总表为用户GPRS清单的情况,可以在账期切换时,对往期的索引统计表进行合并,合并后一个用户号码只对应一条统计信息,如此,可加快索引统计表的检索速度。

本实施例的装置还包括:页码数据缓存器回收模块85,用于当建立的页码数据缓存器链表超过预设的失效时间设定,则回收页码数据缓存器链表占用的内存;

这里,预先设计页码数据缓存器链表失效时间,在失效时间到达时,清理页码数据缓存器链表,释放相关的内存。

在实际应用中,数据存储模块81、页码数据缓存模块82、检索模块83、索引统计表同步模块84、页码数据缓存器回收模块85均可由数据服务器的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现

以上所述,仅为本发明的佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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