CN106649408A - 一种大数据检索方法和装置 - Google Patents

一种大数据检索方法和装置 Download PDF

Info

Publication number
CN106649408A
CN106649408A CN201510742185.8A CN201510742185A CN106649408A CN 106649408 A CN106649408 A CN 106649408A CN 201510742185 A CN201510742185 A CN 201510742185A CN 106649408 A CN106649408 A CN 106649408A
Authority
CN
China
Prior art keywords
page number
data buffer
number data
data
chained list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510742185.8A
Other languages
English (en)
Other versions
CN106649408B (zh
Inventor
王凡
陈乐君
谭正
程金波
车华翔
曾艺骁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Group Chongqing Co Ltd
Original Assignee
China Mobile Group Chongqing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Group Chongqing Co Ltd filed Critical China Mobile Group Chongqing Co Ltd
Priority to CN201510742185.8A priority Critical patent/CN106649408B/zh
Publication of CN106649408A publication Critical patent/CN106649408A/zh
Application granted granted Critical
Publication of CN106649408B publication Critical patent/CN106649408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Abstract

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

Description

一种大数据检索方法和装置
技术领域
本发明涉及大数据技术领域,尤其涉及一种大数据检索方法和装置。
背景技术
现有的数据检索方法是:客户端发送请求到数据服务器,数据服务器检索出符合条件的数据集返回给客户端;客户端根据获取的数据集进行处理,统计数据集的一些相关信息,然后在前台界面分页展示给用户。这种方法易管理、易维护、技术体系成熟,但缺点是:如果检索的数据集过大时,如超过10万条数据记录,那么,在给用户进行检索展示时,数据服务器端的检索时长就会过长,且网络数据传输量过大,会导致给用户的展示延时较大,用户需等待较长时间才能看到检索结果。
为解决检索数据量大、展示延时长的问题,可采用分页展示的方式,现有的分页展示方法是:客户端在发送请求到数据服务器时,采用页码索引的方式,每次只发送需要检索的页码给数据服务器;数据服务器根据特定算法每次根据页码范围进行检索,将检索的结果集返回给客户端。这种方法通过结合缓存技术,可以适用于前台无需展示检索结果集的统计信息、只展示明细的场景;但对于需要同时展示明细及数据集统计信息的场景,仍无法使用此种方法。
另外,现有的数据检索与分页展示方法都是在数据集检索完毕后做处理展示,或者采用多次检索通过页码索引的方式完成数据检索与分页展示,都是采用同步检索数据展示的方法。
对于先进行数据查询,再在客户端进行分页处理的方法,该方法在对大数据进行实时检索时,如果检索得到的结果集过大,会造成检索时长过长,且网络数据传输量过大,会导致给用户的展示延时较大,用户需等待较长时间才能看到检索结果。例如:用户按月检索通用分组无线服务技术(GPRS,GeneralPacket 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)等实现
以上所述,仅为本发明的佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种大数据检索的方法,其特征在于,所述方法包括:按数据类别统计数据库数据对应的数据总表的数据,根据统计结果建立索引统计表;所述方法还包括:
建立页码数据缓存器链表,在页码数据缓存器链表中指定页码数据缓存器作为前置页码数据缓存器;
根据检索条件,从所述索引统计表中查询出符合所述检索条件的统计信息;
将所述数据总表中符合所述检索条件的数据填充到页码数据缓存器链表;
所述前置页码数据缓存器空间填充满时,返回所述前置页码数据缓存器的数据和所述统计信息到检索客户端。
2.根据权利要求1所述的方法,其特征在于,将所述数据总表中符合所述检索条件的数据填充到页码数据缓存器链表,包括:
根据检索条件采用顺序查询和逆序查询两个进程对数据总表进行检索;
所述顺序查询检索到的数据按顺序填充到页码数据缓存器链表,所述逆序查询检索到的数据按逆序填充到页码数据缓存器链表。
3.根据权利要求1或2所述的方法,其特征在于,
所述页码数据缓存器链表为双向链表结构,包含一个以上的页码数据缓存器;
所述前置页码数据缓存器为填充所述页码数据缓存器链表时首先填充的页码数据缓存器;
所述前置页码数据缓存器的页码数据缓存器数量根据需求预先设定,包含一个以上的页码数据缓存器。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当需求返回页的页码对应的页码数据缓存器未填满时,则等待所述页码数据缓存器被填满,再返回所述对应的页码数据缓存器的数据到检索客户端。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
更新所述数据总表时同步更新所述索引统计表;
如果所述索引统计表为分期建立,则对往期索引统计表进行合并处理。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
如果页码数据缓存器链表建立的时间超过预设的时间设定,则回收页码数据缓存器链表占用的内存。
7.一种大数据检索的装置,其特征在于,所述装置包括:数据存储模块、检索模块、页码数据缓存模块;其中,
所述数据存储模块,用于建立并更新数据库数据对应的数据总表,统计所述数据总表的数据,按类别建立索引统计表;
所述页码数据缓存模块,用于建立页码数据缓存器链表,并指定其中一个以上页码数据缓存器被指定为前置页码数据缓存器;
所述检索模块,用于从所述索引统计表中查询出符合检索条件的统计信息;检索所述数据总表,并将检索结果填充到所述页码数据缓存器链表中;确定前置页码数据缓存器空间填充满,并返回所述前置页码数据缓存器的内容和所述统计信息到客户端。
8.根据权利要求7所述的装置,其特征在于,所述检索模块,具体用于,
根据检索条件采用顺序查询和逆序查询两个进程对数据总表进行检索;
所述顺序查询检索到的数据按顺序填充到页码数据缓存器链表,所述逆序查询检索到的数据按逆序填充到页码数据缓存器链表;
当需求返回页的页码对应的页码数据缓存器未填满时,等待所述页码数据缓存器被填满,再返回所述对应的页码数据缓存器的数据到检索客户端。
9.根据权利要求7或8所述的装置,其特征在于,
所述页码数据缓存器链表为双向链表结构,包含一个以上的页码数据缓存器;
所述前置页码数据缓存器为填充所述页码数据缓存器时链表首先填充的页码数据缓存器;
所述前置页码数据缓存器的页码数据缓存器数量根据需求预先设定。
10.根据权利要求7或8所述的装置,其特征在于,
所述数据存储模块,还用于更新所述数据总表时同步更新所述索引统计表;
所述装置还包括:索引统计表同步模块:用于对于分期建立所述索引统计表,对往期索引统计表进行合并处理;
页码数据缓存器回收模块,用于当建立的页码数据缓存器链表超过预设的失效时间设定,则回收页码数据缓存器链表占用的内存。
CN201510742185.8A 2015-11-04 2015-11-04 一种大数据检索方法和装置 Active CN106649408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510742185.8A CN106649408B (zh) 2015-11-04 2015-11-04 一种大数据检索方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510742185.8A CN106649408B (zh) 2015-11-04 2015-11-04 一种大数据检索方法和装置

Publications (2)

Publication Number Publication Date
CN106649408A true CN106649408A (zh) 2017-05-10
CN106649408B CN106649408B (zh) 2020-10-13

Family

ID=58851084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510742185.8A Active CN106649408B (zh) 2015-11-04 2015-11-04 一种大数据检索方法和装置

Country Status (1)

Country Link
CN (1) CN106649408B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107742195A (zh) * 2017-09-13 2018-02-27 深圳市海捷运供应链管理有限公司 系统数据整合方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411585A (zh) * 2010-09-21 2012-04-11 厦门市美亚柏科信息股份有限公司 一种网页分页数据预加载方法和系统
CN102739720A (zh) * 2011-04-14 2012-10-17 中兴通讯股份有限公司 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端
CN102968322A (zh) * 2012-11-22 2013-03-13 用友软件股份有限公司 数据加载装置和数据加载方法
CN103425708A (zh) * 2012-05-25 2013-12-04 金蝶软件(中国)有限公司 一种优化的web分页查询方法及装置
CN104268295A (zh) * 2014-10-24 2015-01-07 迈普通信技术股份有限公司 一种数据查询方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411585A (zh) * 2010-09-21 2012-04-11 厦门市美亚柏科信息股份有限公司 一种网页分页数据预加载方法和系统
CN102739720A (zh) * 2011-04-14 2012-10-17 中兴通讯股份有限公司 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端
CN103425708A (zh) * 2012-05-25 2013-12-04 金蝶软件(中国)有限公司 一种优化的web分页查询方法及装置
CN102968322A (zh) * 2012-11-22 2013-03-13 用友软件股份有限公司 数据加载装置和数据加载方法
CN104268295A (zh) * 2014-10-24 2015-01-07 迈普通信技术股份有限公司 一种数据查询方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107742195A (zh) * 2017-09-13 2018-02-27 深圳市海捷运供应链管理有限公司 系统数据整合方法、装置及存储介质
CN107742195B (zh) * 2017-09-13 2021-10-26 深圳市海捷运供应链管理有限公司 系统数据整合方法、装置及存储介质

Also Published As

Publication number Publication date
CN106649408B (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
CN105677240B (zh) 数据删除方法及系统
CN103488704B (zh) 一种数据存储方法及装置
CN105183764B (zh) 一种数据分页方法及装置
CN109947668A (zh) 存储数据的方法和装置
CN104346458B (zh) 数据存储方法和存储设备
CN107302573A (zh) 一种信息推送方法、装置、电子设备及存储介质
CN113568995B (zh) 基于检索条件的动态瓦片地图制作方法及瓦片地图系统
CN103955533B (zh) 一种基于缓冲队列的页面树形数据获取装置及方法
CN107918642A (zh) 数据查询方法、服务器及计算机可读存储介质
CN102968456B (zh) 一种栅格数据读取处理方法和装置
CN103425653A (zh) 实现dicom影像二次检索的方法及系统
CN108334622A (zh) 一种获取格式化复合数据的方法
CN106874326A (zh) 一种条目列表获取请求处理方法及装置
CN106709851A (zh) 大数据检索方法及装置
CN107147527A (zh) 一种Linux集群告警的系统及方法
CN106777143A (zh) 一种新闻聚合方法及新闻聚合服务器
CN104615726B (zh) 一种基于缓加载技术展示大量业务对象的方法
CN112613271A (zh) 数据分页方法、装置、计算机设备及存储介质
CN110928900B (zh) 多表数据的查询方法、装置、终端以及计算机存储介质
CN106649408A (zh) 一种大数据检索方法和装置
CN110765158A (zh) 分页查询方法、系统和装置
CN112445833A (zh) 一种分布式数据库的数据分页查询方法、装置和系统
CN106484818A (zh) 一种基于Hadoop和HBase的层次聚类方法
CN107480235A (zh) 一种数据平台的数据库构架
CN103345495A (zh) 网络环境下超精图像的极速展示方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant