资源预览内容
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
海量数据查询方法及设备的制作方法专利名称:海量数据查询方法及设备的制作方法技术领域:本发明涉及数据查询技术,具体涉及一种海量数据查询方法及设备。背景技术:目前,移动计费系统涉及到话单处理的相关数据表数据相当庞大,对于开发人员、运维人员等做生产操作,尤其是日常的数据检索统计等,操作效率非常低,主要表现为以下几个方面1.数据的查询统计是日常生产的重要活动,而对大数据表尽管做了优化查询处理,正常的整个操作过程经常要花费几分钟甚至十几分钟,大大影响生产线人员的工作效率;2.系统资源紧张,有时候对紧急问题的数据库查询抢占了部分资源,影响正常的生产线效率;3.对一些历史的数据,由于数据库资源往往会做定期清理,导致一些问题回溯不到根源。当然,海量数据库操作不只在计费系统,而是普遍存在于现代高速发展的信息产业当中。在现代信息化的管理中,如何提高海量数据操作效率已经是一个普遍的课题。目前,对海量数据库的查询优化方案比较常见的有索引技术,索引是除表之外另一重要的、用户定义的存储在物理介质上的数据结构。当根据索引码的值搜索数据时,索引提供了对数据的快速访问,针对海量数据表建立适当的索引,对千万级的数据进行检索能有效提高速度。通过索引技术虽然能在一定程度上提高对数据库访问的效率,但也有其缺点,主要如下第一、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二、索引需要占物理空间,除了数据表占物理空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,则需要的空间会更大。第三、当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,这样就降低了数据的维护速度。另外,即使对于再适当的索引,还是建立在数据库的基础上,无法摆脱对数据库的依赖,而且对于千万数量级以上且多字段数据表的查询依然比较费时。发明内容本发明实施例针对上述现有技术存在的缺点,提供一种海量数据查询方法及设备,以弱化客户端对数据库的依赖性,并提高查询效率。为此,本发明实施例提供如下技术方案一种海量数据查询方法,包括接收客户端发起的资源配置请求,所述资源配置请求中携带数据表连接的相关信3息;和/或携带指定的关键数据表字段;从数据库中提取出所述数据表,生成文件系统数据;将所述文件系统数据加载到共享内存中;在收到用户对所述数据库的查询请求后,从所述共享内存中提取用户查询的数据。优选地,所述资源配置请求是客户端定时发起的。优选地,所述方法还包括在将所述文件系统数据加载到共享内存中时,如果需要进行计算,则根据所述数据表字段的类型对数据表字段进行格式转换。优选地,所述方法还包括对加载到共享内存中的文件系统数据进行归类,生成不同类别的文件系统数据。优选地,所述方法还包括分别建立对应所述不同类别的文件系统数据的一个或多个索引;所述从所述共享内存中提取用户查询的数据包括根据所述索引从所述共享内存中提取用户查询的数据。优选地,所述方法还包括将从所述共享内存中提取的用户查询的数据保存到文件中;和/或将从所述共享内存中提取的用户查询的数据展现给用户。一种海量数据查询设备,包括配置请求接收单元,用于接收客户端发起的资源配置请求,所述资源配置请求中携带数据表连接的相关信息;和/或携带指定的关键数据表字段;提取单元,用于从数据库中提取出所述数据表,生成文件系统数据;加载单元,用于将所述文件系统数据加载到共享内存中;查询请求接收单元,用于接收用户对所述数据库的查询请求;查询单元,用于在所述查询请求接收单元收到用户对所述数据库的查询请求后,从所述共享内存中提取用户查询的数据。优选地,所述设备还包括格式转换单元,用于在所述加载单元将所述文件系统数据加载到共享内存并且需要进行计算时,根据所述数据表字段的类型对数据表字段进行格式转换。优选地,所述设备还包括归类单元,用于对加载到共享内存中的文件系统数据进行归类,生成不同类别的文件系统数据。0041优选地,所述设备还包括索引单元,用于分别建立对应所述不同类别的文件系统数据的一个或多个索引;所述查询单元,具体用于根据所述索引从所述共享内存中提取用户查询的数据。优选地,所述设备还包括存储单元,用于将从所述共享内存中提取的用户查询的数据保存到文件中;和/或展现单元,用于将从所述共享内存中提取的用户查询的数据展现给用户。本发明实施例海量数据查询方法及设备,将对数据库资源占用的时间聚集在一个空闲时段,将对数据库资源及操作系统的占用统一转移到对文件操作系统的资源占用,从而有效地弱化了客户端对数据库的依赖性,减轻了数据库的负荷,并提高了查询效率。为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本发明实施例海量数据查询方法的流程图;图2是本发明实施例海量数据查询设备的一种结构示意图;图3是本发明实施例海量数据查询设备的另一种结构示意图。具体实施例方式为了使本技术领域:的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。本发明实施例海量数据查询方法及设备,针对现有技术海量数据查询对数据库资源的消耗比较大,即使索引技术再先进,也无法摆脱对数据库资源的束缚的问题,利用一个查询代理服务器或者中间件,将对数据库资源的占用时段及方式进行转移,弱化客户端对数据库的依赖性,并提高查询效率。如图1所示,是本发明实施例海量数据查询方法的流程图,包括以下基本步骤步骤101,接收客户端发起的资源配置请求,所述资源配置请求中携带连接数据表相关信息,和/或携带指定的关键数据表字段。考虑到一般索引查询对数据库资源占用的时间比较散,特别在生产系统忙时占用数据库会给数据库造成较大的负载,甚至会影响到正常的生产系统,因此,在本发明实施例中,为了弱化对数据库资源的依赖性并减少对正常业务处理的影响,可以周期性地将对占用数据库资源的时间聚集在一个空闲时段,比如,在每天凌晨闲时的1:00至4:00时段。由客户端定时发起资源配置请求,资源配置请求中携带连接数据表相关信息、和/或需要查询或统计的关键数据表字段等信息。在具体应用,客户端可以采用用户配置清单的方式,将需要从数据库中采集的数据表及相关信息通过所述资源配置请求发送给查询代理服务器。比如,所述用户配置清单可以包括以下主要信息db连接的数据库名;usr:数据库用户名;pwd数据库用户名对应密码;table连接的数据表名;field指定加载的数据表字段,或用*表示加载所有数据表字段;sql指定预处理常用的SQL语句,系统根据这些SQL语句后台做预处理,并时刻保持最新的处理结果。当然,本发明实施例并不限定所述用户配置清单的具体格式,而且也不限定其所包含的具体信息。步骤102,从数据库中提取出所述数据表,生成文件系统数据。根据需要,可以从数据库中提取出一个或多个数据表,每个数据表可以作为一个文本文件。所述文本文件中的数据作为文件系统数据存储。步骤103,将所述文件系统数据加载到共享内存中。在存储所述文件系统数据时,可以以数据表名为目录,以日期为文件名,每个周期增量的数据保存在相应的文件中。比如,以话单异常挂起月表为例,该表命名为dsU_Cdr_yyyymm,在201003月建立目录dsu_cdr_201003,表更新周期为1天,目录下生成文件为20100301.20100331共31个文件,每天按增量数据增加一个。需要说明的是,在将所述文件系统数据加载到共享内存中时,如果需要进行计算,可以根据所述数据表字段的类型对数据表字段进行格式转换,例如将字段从字符串格式转换为浮点格式。另外,在将文件系统数据加载到共享内存之前,还可以对其进行归类,生成不同类别的文件系统数据。所述共享内存的空间可以根据数据格式化后的类型占用空间来估算,比如可以按以下公式来计算每条记录占用的内存*文件记录数数量级*文件数。步骤104,在收到用户对所述数据库的查询请求后,从所述共享内存中提取用户查询的数据。具体地,可以对共享内存中的数据进行筛选运算,得到用户查询的数据。具体的筛选方式可根据实际需要,采用一些常用的筛选运算,对此本发明实施例不做限定。在将用户查询的数据从所述共享内存中提取出来后,可以将这些数据保存到文件中,或者将这些数据直接展现给用户,由用户选择是否对其进行保存。当然,还可以自动将这些数据保存到文件中并同时展现给用户。在本发明实施例中,对于共享内存中存储的文件系统数据的查询,可以按照类似现有数据库查询的方式,预先分别建立对应不同类别的文件系统数据的一个或多个索引,在收到用户对所述数据库的查询请求后,根据所述索引从所述共享内存中提取用户查询的数据。为了提高效率并有针对性,索引可以不对数据表中所有字段做穷举,而是针对用户配置的SQL语句指定的一些字段,这样既能在系统内部处理时提高效率,也能在用户发起查询请求时快速检索一些数据。本发明实施例并不限于通过文件系统的方式对数据进行处理,还可采用其他方式直接在共享内存中提取用户查询的数据。另外,在本发明实施例中,还可以针对一些常用的查询,比如用户用类似selectsum(field)fromtable查询语句,这种对某个关键字段进行统计的情况,系统会将数据表从数据库中提取并存储到共享内存后,对一些常用关键字段从共享内存中筛选出来并做统计运算将结果其保存到文件中。这样,在收到用户对所述数据库的查询请求后,如果用户查询的是这类数据,则可直接将预先筛选出并保存到文件中的相应数据展现给用户。需要说明的是,在具体应用时,可以由查询代理服务器或者类似中间件方式实施本发明实施例的方法,即该方法或设备在客户端与数据库之间起到一个桥梁作用,也就是说,将现有技术由客户端对数据库的查询转移为客户端与查询代理服务器、以及查询代理服务器与数据库之间的交互。所述查询代理服务器可以是一立的专用服务器,也可以同时提供其他服务,比如可以在其他服务器上开辟一块专用的存储区和专用共享内存区,以提供查询服务使用。当然,不论是采用哪种方式的查询代理服务器,都可以与所述数据库所在生产系统直接相连。所述查询代理服务器对于客户端而言,相当于数据服务器,可以部署到网络中,提供网内并发数据查询。可见,本发明实施例海量数据查询方法,将对数据库资源占用的时间聚集在一个空闲时段,将对数据库资源及操作系统的占用统一转移到对文件操作系统的资源占用,从而有效地弱化了客户端对数据库的依赖性,减轻了数据库的负荷,并提高了查询效率。进一步地,将对数据库的索引技术可以转化为到对文件的索引排序算法,可以提高查询效率,方便地实现对海量数据的访问。由于对数据库的一个查询往往只能针对目前的数据表中的数据得到查询结果,如果数据库中的数据增加了则还需要再重新查询一遍,而且速度会随着数据增长而变慢。因此,在本发明实施例中,针对这种情况,还可以通过增量性预处理方式,进一步提高处理效率。具体地,可以在前面提到的用户配置清单中设置以下信息period,更新数据周期,以天为单位。在数据库更新时,对统计查询的预处理也会做相应的更新。这样,可以使从数据库中预提取的数据表保持最新,大大提高查询效率。相应地,本发明实施例还提供一种海量数据查询设备,如图2所示,是该设备的一种结构示意图。在该实施例中,所述设备200包括配置请求接收单元201,用于接收客户端发起的资源配置请求,所述资源配置请求中携带数据表连接的相关信息;和/或携带指定的关键数据表字段;提取单元202,用于在所述配置请求接收单元201接收到所述资源配置请求后,从数据库300中提取出所述数据表,生成文件系统数据;具体地,提取单元202可以对共享内存中的数据进行筛选运算,得到用户查询的数据。具体的筛选方式可根据实际需要,采用一些常用的筛选运算,对此本发明实施例不做限定;加载单元203,用于将所述文件系统数据加载到共享内存204中;查询请求接收单元205,用于接收用户对所述数据库的查询请求
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号