一种海量数据检索方法及装置、海量数据存储方法及系统制造方法及图纸

技术编号:14549817 阅读:136 留言:0更新日期:2017-02-04 22:54
本发明专利技术公开了一种海量数据检索方法,在不同区域建立第一缓存、第二缓存和第三缓存;接收到数据检索请求后,根据所述数据检索请求查找所要检索的数据的存储区域;查找成功时,在查找获得的存储区域中进行数据检索;查找失败时,根据所述数据检索请求和缓存所属设备的性能在所述第一缓存、第二缓存和第三缓存中进行数据检索。本发明专利技术还同时公开了一种海量数据检索装置、一种海量数据存储方法及系统。

Massive data retrieval method and device, mass data storage method and system

The invention discloses a data search method in the establishment of the first, second and third cache cache cache in different regions; the received data retrieval request, according to the storage area of the data retrieval request for data to be retrieved; find success when retrieving data in a storage area for the search; failed, according to the performance of the data retrieval request and cache the equipments for data retrieval in the first cache, cache cache second and third. The invention also discloses a mass data retrieval device, a mass data storage method and a system.

【技术实现步骤摘要】

本专利技术涉及数据处理技术,尤其涉及一种海量数据检索方法及装置、一种海量数据存储方法及系统。
技术介绍
业务支撑网运营管理系统(BOMC)监控平台承担着整个业务支撑网平台和应用的集中监控、预警和决策帮助,海量数据的高效访问及检索是实现BOMC监控平台实时监控、预警、分析的重要步骤。目前,BOMC监控平台的海量告警历史信息的获取是通过直接检索数据库的方式实现的;通过在设计层面采用分表、分区、建索引的方式和在开发层面调优数据库的优化性能、提升代码的质量等方式来提高数据库的操作性能;检索BOMC监控平台中各模块频繁使用到的告警对象时,通过将告警对象加载到Java虚拟机(JavaVirtualMachine,JVM)内存中来提高检索性能。这样,一方面,通过直接检索数据库获取海量告警历史信息时,每次都需要先从连接池建立一个连接,再进行检索数据库的操作;在建立连接过程中,会降低数据库的性能;并且,在业务高峰时段,大量的数据检索会造成数据库的连接瓶颈,导致业务无法正常进行;另一方面,由于告警历史表的数据量巨大,根据告警类型或告警规则检索数据库的用时比较长,严重影响用户体验;并且,通过在结构化查询语言(StructuredQueryLanguage,SQL)语句中使用LIKE运算符对告警数据进行模糊检索时,数据检索性能低。同时,将多达百万条的告警对象加载到JVM内存中,使得JVM的可用内存严重减少,JVM可用内存的过多消耗导致垃圾回收(GarbageCollection,GC)执行频繁、中央处理器(CentralProcessingUnit,CPU)的消耗增加,在业务高峰时容易出现存储器溢出(MemoryOut)的问题,从而引起BOMC系统崩溃;由于JVM内存有限,大量的数据检索和频繁调用服务会导致JVM内存堵塞;需要导出告警数据时,就要频繁地将千万级别的数据加载到JVM内存后再导出至EXCEL,多人同时进行告警数据导出容易引起BOMC系统瘫痪。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种海量数据检索方法及装置,能够提高数据库检索速度和性能,提高BOMC系统的稳定性,本专利技术实施例还期望提供一种海量数据存储方法及系统,实现海量数据的分类存储。本专利技术实施例的技术方案是这样实现的:本专利技术实施例提供一种海量数据检索方法,包括:在不同区域建立第一缓存、第二缓存和第三缓存;接收到数据检索请求后,根据所述数据检索请求查找所要检索的数据的存储区域;查找成功时,在查找获得的存储区域中进行数据检索;查找失败时,根据所述数据检索请求和缓存所属设备的性能在所述第一缓存、第二缓存和第三缓存中进行数据检索。优选地,所述方法还包括:在第一缓存、第二缓存和第三缓存中检索数据失败时,根据所述数据检索请求在数据库中进行数据检索。优选地,所述在不同区域建立第一缓存、第二缓存和第三缓存,包括:在产生数据的会话的线程变量中建立第一缓存,在REDIS中建立第二缓存,在JVM内存中建立第三缓存;其中,所述第一缓存用于存储历史检索数据结果,所述第二缓存用于存储频繁使用的告警对象、告警规则、告警内容和告警历史数据,所述第三缓存用于存储热数据。优选地,所述在所述第一缓存、第二缓存和第三缓存中进行数据检索,包括:能够排除所要检索的数据不存在于第一缓存、第二缓存和第三缓存中的一个缓存时,对剩余的两个缓存进行数据检索;不能够排除所要检索的数据不存在于第一缓存、第二缓存和第三缓存中的一个缓存,缓存所属设备的性能低于预设的阈值时,分别在第一缓存、第二缓存和第三缓存中同时进行数据检索;缓存所属设备的性能高于预设的阈值时,依次在第一缓存、第三缓存和第二缓存中进行数据检索。优选地,所述依次在第一缓存、第三缓存和第二缓存中进行数据检索,包括:根据所述数据检索请求在第一缓存中进行数据检索;确认在第一缓存中检索数据失败,且所述检索为文本检索时,在第二缓存中进行文本检索;确认在第一缓存中检索数据失败,且所述检索为非文本检索时,在第三缓存中进行数据检索;确认文本检索失败或在第三缓存中检索数据失败时,在第二缓存中进行数据检索。本专利技术实施例还提供一种海量数据检索装置,所述装置包括:构建模块、接收模块、查找模块和检索模块;其中,所述构建模块,用于在不同区域建立第一缓存、第二缓存和第三缓存;所述接收模块,用于接收业务检索请求;所述查找模块,用于根据所述数据检索请求查找所要检索的数据的存储区域;所述检索模块,用于在查找获得的存储区域中进行数据检索,或根据所述数据检索请求在所述第一缓存、第二缓存和第三缓存中进行数据检索。优选地,所述检索模块,还用于在第一缓存、第二缓存和第三缓存中检索数据失败时,根据所述数据检索请求在数据库中进行数据检索。优选地,所述构建模块,具体用于在产生数据的会话的线程变量中建立第一缓存,在REDIS中建立第二缓存,在JVM内存中建立第三缓存;其中,所述第一缓存用于存储历史检索数据结果,所述第二缓存用于存储频繁使用的告警对象、告警规则、告警内容和告警历史数据,所述第三缓存用于存储热数据。优选地,所述检索模块,具体用于能够排除所要检索的数据不存在于第一缓存、第二缓存和第三缓存中的一个缓存时,对剩余的两个缓存进行数据检索;不能够排除所要检索的数据不存在于第一缓存、第二缓存和第三缓存中的一个缓存,缓存所属设备的性能低于预设的阈值时,分别同时在第一缓存、第二缓存和第三缓存中进行数据检索;缓存所述设备的性能高于预设的阈值时,依次在第一缓存、第三缓存和第二缓存中进行数据检索。优选地,所述检索模块,进一步用于根据所述数据检索请求在第一缓存中进行数据检索;确认在第一缓存中检索数据失败,且所述检索为文本检索时,在第二缓存中进行文本检索;确认在第一缓存中检索数据失败,且所述检索为非文本检索时,在第三缓存中进行数据检索;确认文本检索失败或在第三缓存中检索数据失败时,在第二缓存中进行数据检索。本专利技术实施例还提供一种海量数据存储方法,所述方法包括:在不同区域建立第一缓存、第二缓存和第三缓存;将历史数据检索结果存储至第一缓存,将频繁使用的告警对象、告警规则、告警具体内容和告警历史数据存储至第二缓存,将热数据存储至第三缓存。优选地,在不同区域建立第一缓存、第二缓存和第三缓存包括:在会话线程变量中建立第一缓存,在REDIS建立第二缓存,在JVM内存中建立第三缓存。<本文档来自技高网
...

【技术保护点】
一种海量数据检索方法,其特征在于,所述方法包括:在不同区域建立第一缓存、第二缓存和第三缓存;接收到数据检索请求后,根据所述数据检索请求查找所要检索的数据的存储区域;查找成功时,在查找获得的存储区域中进行数据检索;查找失败时,根据所述数据检索请求和缓存所属设备的性能在所述第一缓存、第二缓存和第三缓存中进行数据检索。

【技术特征摘要】
1.一种海量数据检索方法,其特征在于,所述方法包括:
在不同区域建立第一缓存、第二缓存和第三缓存;
接收到数据检索请求后,根据所述数据检索请求查找所要检索的数据的存
储区域;
查找成功时,在查找获得的存储区域中进行数据检索;
查找失败时,根据所述数据检索请求和缓存所属设备的性能在所述第一缓
存、第二缓存和第三缓存中进行数据检索。
2.根据权利要求1所述海量数据检索方法,其特征在于,所述方法还包括:
在第一缓存、第二缓存和第三缓存中检索数据失败时,根据所述数据检索
请求在数据库中进行数据检索。
3.根据权利要求1所述海量数据检索方法,其特征在于,所述在不同区域
建立第一缓存、第二缓存和第三缓存,包括:
在产生数据的会话的线程变量中建立第一缓存,在REDIS中建立第二缓
存,在JVM内存中建立第三缓存;其中,
所述第一缓存用于存储历史检索数据结果,所述第二缓存用于存储频繁使
用的告警对象、告警规则、告警内容和告警历史数据,所述第三缓存用于存储
热数据。
4.根据权利要求1所述海量数据检索方法,其特征在于,所述在所述第一
缓存、第二缓存和第三缓存中进行数据检索,包括:
能够排除所要检索的数据不存在于第一缓存、第二缓存和第三缓存中的一
个缓存时,对剩余的两个缓存进行数据检索;
不能够排除所要检索的数据不存在于第一缓存、第二缓存和第三缓存中的
一个缓存,缓存所属设备的性能低于预设的阈值时,分别在第一缓存、第二缓
存和第三缓存中同时进行数据检索;缓存所属设备的性能高于预设的阈值时,
依次在第一缓存、第三缓存和第二缓存中进行数据检索。
5.根据权利要求4所述海量数据检索方法,其特征在于,所述依次在第一
缓存、第三缓存和第二缓存中进行数据检索,包括:
根据所述数据检索请求在第一缓存中进行数据检索;
确认在第一缓存中检索数据失败,且所述检索为文本检索时,在第二缓存
中进行文本检索;确认在第一缓存中检索数据失败,且所述检索为非文本检索
时,在第三缓存中进行数据检索;
确认文本检索失败或在第三缓存中检索数据失败时,在第二缓存中进行数
据检索。
6.一种海量数据检索装置,其特征在于,所述装置包括:构建模块、接收
模块、查找模块和检索模块;其中,
所述构建模块,用于在不同区域建立第一缓存、第二缓存和第三缓存;
所述接收模块,用于接收业务检索请求;
所述查找模块,用于根据所述数据检索请求查找所要检索的数据的存储区
域;
所述检索模块,用于在查找获得的存储区域中进行数据检索,或根据所述
数据检索请求在所述第一缓存、第二缓存和第三缓存中进行数据检索。
7.根据权利要求6所述海量数据检索装置,其特征在于,所述检索模块,
还用于在第一缓存、第二缓存和第三缓存中检索数据失败时,根据所述数据检
索请求在数据库中进行数据检索。
8.根据权利要求6所述海量数据检索装置,其特征在于,所述构建模块,
具体用于在产生数据的会话的线程变量中建立第一缓存,在REDIS中建立第二
缓存,在JVM内存中建立第三缓存;其中,
所述第一缓存用于存储历史检索数据结果,所述第二缓存用于存储频繁...

【专利技术属性】
技术研发人员:胡炜王鑫
申请(专利权)人:中国移动通信集团江苏有限公司
类型:发明
国别省市:江苏;32

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

1