CN101753373A - 一种海量告警的查询方法及系统 - Google Patents
一种海量告警的查询方法及系统 Download PDFInfo
- Publication number
- CN101753373A CN101753373A CN200810241680A CN200810241680A CN101753373A CN 101753373 A CN101753373 A CN 101753373A CN 200810241680 A CN200810241680 A CN 200810241680A CN 200810241680 A CN200810241680 A CN 200810241680A CN 101753373 A CN101753373 A CN 101753373A
- Authority
- CN
- China
- Prior art keywords
- serial number
- alarm
- inquiry
- querying
- inquires
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于告警查询领域,提供了一种海量告警的查询方法及系统,所述方法包括:步骤一,收到查询命令后使所要查询的告警表中每一条告警记录有唯一标识的流水号;步骤二,根据查询命令构建查询条件,查询出符合查询条件的告警记录的流水号字段;步骤三,分批使用查询出的流水号字段从告警表中查询出告警记录并返回给用户。通过流水号字段,可以只遍历告警表一次及使用少量内存空间,用户便可获取所要查询的告警记录。
Description
技术领域
本发明涉及电信网络管理领域的告警信息处理,尤其涉及一种海量告警信息的查询方法及系统。
背景技术
告警处理在电信领域应用非常广泛,在实际应用中我们用到最多的就是告警查询服务。目前在小数据量的告警查询服务中我们可选择的方法很多,也基本上可以满足我们的需求,但是目前在海量告警的查询中的查询方案还不能很好地满足我们在查询时间和查询效率方面的要求。例如在电信网络管理系统中,对于网元告警的查询,目前的查询方法主要有下面三种:
1.直接使用简单数据库语句查询的方法,具体步骤是:
步骤1.1)、构造一个数据库告警语句,然后执行这个语句查询需要的告警记录;
步骤1.2)、在执行查询语句的时候,每次都需要遍历整表。
2.分页查询方法,具体步骤如下:
步骤2.1)、定义一个临时表,然后通过存储过程将查询出来的结果保存到该表中;
步骤2.2)、然后将临时表分成按照预定页大小的多页数据;
步骤2.3)、定义一个游标,每次获取记录时候,将游标移动到表头。
3.迭代器查询方法,具体步骤是:
步骤3.1)、首先定义一个迭代器,保存需要查询的条件;
步骤3.2)、每次查询的使用需要通过该迭代器打开结果集获取查询结果;
步骤3.3)、在每次查询的时候,需要逐条扫描到本次需要查询的记录。
在方法1中,每次都需要重新执行查询语句,重新遍历整表,这样会耗费大量的时间,而且效率特别底,只适用于小数据量的查询服务,在海量告警的时候会导致告警查询超时。
在方法2中,需要将所有的纪录保存在临时表中,当数据量大的时候会占用大量的内存空间,可能会导致内存溢出。
在方法3中,每次查询需要打开结果集会耗费大量的时间,而且在数据量大的时候,当使用迭代器查询的时候,需要执行大量的扫描操作,使得每次查询耗费时间非常的大,没有办法满足我们的查询要求。
当查询数据量达到一定数量的时候,方法1和方法3会耗费大量的时间,会造成很大的查询延时;方法2会耗费很大的内存空间,在数据量大的时候甚至会导致系统崩溃。
发明内容
本发明的目的在于提供一种海量告警的查询方法,旨在解决现有技术中在查询海量告警时耗费时间过长或占用内存空间过大的问题。
本发明是这样实现的,一种海量告警的查询方法,所述方法包括:
步骤一,收到查询命令后使所要查询的告警表中每一条告警记录有唯一标识的流水号;
步骤二,根据查询命令构建查询条件,查询出符合查询条件的告警记录的流水号字段;
步骤三,分批使用查询出的流水号字段从告警表中查询出告警记录并返回给用户。
本发明的另一目的在于提供一种海量告警的查询系统,所述系统包括:
查询命令接收单元,用于接收查询命令,并在收到查询命令后使所要查询的告警表中每一条告警记录有唯一标识的流水号;
流水号字段获取单元,用于根据查询命令构建查询条件,查询出符合查询条件的告警记录的流水号字段;
告警记录分批返回单元,用于分批使用查询出的流水号字段从告警表中查询出告警记录并返回给用户。
本发明的有益效果是:通过使告警表中每一条告警记录有唯一标识的流水号字段,先查询出流水号字段,再根据流水号字段分批提取所需的告警记录并返回给用户。从而只需要执行一次全索引扫描和占用少量的内存空间,客户就可以获取到需要的告警信息,而且可以是随机根据流水号字段获取所需的告警信息。
附图说明
图1是本发明实施例提供的海量告警的查询方法的流程图;
图2是本发明实施例提供的流水号字段与告警表中的告警记录对应示意图;
图3是本发明实施例提供的海量告警的查询系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过使在告警表中每一条告警记录有唯一标识的流水号(以下简称ID)字段,先查询出流水号字段,再根据流水号字段分批提取所需的告警记录并返回给用户。从而只需要执行一次全索引扫描和占用少量的内存空间,客户就可以获取到需要的告警记录,而且可以是随机根据流水号字段获取所需的告警记录。
图1示出了本发明实施例提供的海量告警的查询方法流程。该查询方法可以用于查询数据库中海量的告警记录。具体步骤如下所述:
在步骤S1001中,接收到查询命令后使所要查询的告警表中每一条告警记录有唯一标识的ID。
在收到查询命令后,如果检测到数据库中的告警表内的每条告警记录没有唯一的ID字段对应标识,则在告警表中加入定长的ID字段,用来对应唯一标识一条告警记录。
在步骤S1002中,按照查询命令提供的条件在告警表中查询ID值。
按照查询命令提供的条件构造告警记录的查询条件。在查询条件构造好以后,执行该查询条件,在告警表中查询出需要的告警记录的ID即可。
在步骤S1003中,判断查询是否成功?
判断查询是否成功,如果成功查询到满足查询命令提供的条件的告警记录,则执行步骤S1004,否则执行步骤S1009。
在步骤S1004中,保存所有查询到的告警记录的ID字段。
将所有查询到的告警记录的ID字段保持到本地磁盘文件,有利于减少对内存空间的占有。本领域的技术人员可以理解,查询到的所有ID字段也可以保存到其它存储体中或直接保存在内存的临时文件中。虽然ID字段占用空间很少,但是如果是直接保存到内存中,还是会占有一定的内存空间的。图2示出了保存的ID字段的ID与告警表中告警记录的对应关系。
在步骤S1005中,分批获取查询到的ID字段的值,并通过获取的ID字段构建查询条件。
分批获取查询到的ID字段的值,使用保存的ID字段构建查询条件的具体方式可以是:首先获取本次查询的开始编号和本次查询的告警记录个数;按照开始编号计算本次查询需要的ID字段在本地文件中的开始位置,然后将文件定位到该位置,从该位置开始读取本次告警查询需要的ID字段的值。使用获取到的流水号的值构造查询条件,构建查询条件的方法为:
Select*from告警表where流水号=流水号1or流水号=流水号2or.....or流水号=流水号n
其中流水号1,流水号2和流水号n为从本地文件中获取的流水号值。
在步骤S1006中,执行查询条件获取告警记录,并将查询结果返回给用户。
在步骤S1007中,判断是否查询完成。
根据用户输入结束命令、已经将用户需要的告警信息全部返回给用户或者设置的其它查询结束条件,判断是否已经完成查询,如果是,则执行步骤S1008,否则返回执行步骤S1005。
在步骤S1008中,删除保存有ID字段的文件。
因为步骤S1004中是在本地磁盘中保持ID字段,所以删除保存ID字段的文件可以释放磁盘空间;同理如果该ID字段保存在其它位置,也可以释放相应的空间。
在步骤S1009中,返回并提示查询失败。
返回并提示给用户查询失败,可以在提示信息中添加查询失败的原因等信息。
上述方法中通过在告警表中加入一个ID字段,用来唯一标识一条告警记录,然后用该字段在后续步骤构建告警查询语句的时候作为查询条件。这样使本发明有以下优点:
1)第一次查询只获取ID字段,所以只执行一次全索引扫描。
2)ID字段值都保存在本地文件中,所以不会耗费大量内存空间。
3)每次从文件中获取本次查询所需的ID字段构建查询条件,不会耗费大量的内存。
4)查询告警可以动态定位到需要的告警记录,方便用户随机获取告警记录。
总的来说,本方案在查询海量告警的时候可以节省大量的时间和内存空间,所以可以提高海量告警查询时的查询效率与整个查询系统的稳定性。
下面是本发明实施例提供的在电信网络管理系统的历史告警查询中应用上述方法的详细描述。该历史告警查询为对海量历史告警表的查询,具体步骤如下:
步骤1.创建一个历史告警表,在该告警表中加入一个定长的流水号字段,用流水号(以下简称ID)来唯一标识一条告警记录。
步骤2.查询符合查询命令的告警记录的ID并保存,具体可以分为以下小步骤实现:
步骤2.1,根据用户提供的查询条件构建查询条件,根据查询条件查询告警表中符合条件的所有告警记录的ID字段值。
步骤2.2,以写文件的方式打开本地文件。
步骤2.3,将步骤2.1中查询出来的符合条件的ID字段值写入步骤2.2中打开的文件中。
步骤2.4,关闭文件。
步骤3.使用ID字段进行分批查询,并将查询到的告警记录返回给用户。
步骤3.1,根据本次查询的需求,计算出本次查询的ID字段在本地文件中的开始位置和本次查询的需要查询的告警个数。
步骤3.2,以只读方式打开步骤2.2创建的本地文件。
步骤3.3,将文件定位到根据步骤3.1中计算出来的开始位置。
步骤3.4,按照3.1计算出来的告警个数读取告警流水号,并保留到内存中。
步骤3.5,使用3.4中读取出来的流水号值构建查询条件,构建方法为:
Select*from告警表where流水号=1or流水号=2or.....or流水号=x
其中1,2...,x为步骤3.4中查询出来的流水号值。
步骤3.6,使用构建好的查询条件查询历史告警表。
步骤3.7,保存步骤3.6中查询到的告警记录,并返回给用户。
步骤3.8,重复以上步骤3查询告警信息,直到查询完成。
步骤4.删除保存历史告警表的ID字段的本地文件。
按照本发明所述的告警查询方法,应用于电信网络管理系统历史告警查询,与现有的查询方式相对比,在查询含有20万条告警的告警表时效率提高2倍,在数据量达到千万以上的时候可以提高几十倍,在数据量越大的时候效果越明显,在电信网络管理系统取得良好效果。
图4示出了本发明实施例提供的海量告警的查询系统的结构图。为了便于描述,这里只示出了与本发明实施例相关的部分。
查询命令接收单元301,用于接收查询命令,并在收到查询命令后使所要查询的告警表中每一条告警记录有唯一标识的流水号;具体如上所述。
流水号字段获取单元302,用于根据查询命令构建查询条件,查询出符合查询条件的告警记录的流水号字段;具体如上所述。
告警记录分批返回单元303,用于分批使用查询出的流水号字段从告警表中查询出告警记录并返回给用户。具体如上所述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种海量告警的查询方法,其特征在于,所述方法包括下述步骤:
步骤一,收到查询命令后使所要查询的告警表中每一条告警记录有唯一标识的流水号;
步骤二,根据查询命令构建查询条件,查询出符合查询条件的告警记录的流水号字段;
步骤三,分批使用查询出的流水号字段从告警表中查询出告警记录并返回给用户。
2.如权利要求1所述的方法,其特征在于,所述步骤二在查询出符合查询条件的告警记录的流水号字段后,将所述流水号字段保存到本地磁盘文件中。
3.如权利要求2所述的方法,其特征在于,在查询完成后,删除所述本地磁盘文件。
4.如权利要求1至3任一所述的方法,其特征在于,所述步骤三包括以下几个子步骤:
子步骤一,获取本次查询的流水号字段的开始编号和本次要查询的告警记录个数;
子步骤二,首先按照开始编号计算本次查询需要的流水号在步骤二查询出的流水号字段中的位置,从所述位置开始根据本次要查询的告警记录个数读取本次查询需要的流水号值;
子步骤三,根据读取的流水号值构建查询条件,从告警表中提取告警记录并返回给用户。
5.如权利要求4所述的方法,其特征在于,所述子步骤三根据读取的流水号值构建查询条件的方式为:
Select*from告警表where流水号=流水号1or流水号=流水号2or......or流水号=流水号n
其中流水号1,流水号2和流水号n为从步骤二查询出的流水号字段中读取的流水号值。
6.一种海量告警的查询系统,其特征在于,所述系统包括:
查询命令接收单元,用于接收查询命令,并在收到查询命令后使所要查询的告警表中每一条告警记录有唯一标识的流水号;
流水号字段获取单元,用于根据查询命令构建查询条件,查询出符合查询条件的告警记录的流水号字段;
告警记录分批返回单元,用于分批使用查询出的流水号字段从告警表中查询出告警记录并返回给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810241680A CN101753373A (zh) | 2008-12-19 | 2008-12-19 | 一种海量告警的查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810241680A CN101753373A (zh) | 2008-12-19 | 2008-12-19 | 一种海量告警的查询方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101753373A true CN101753373A (zh) | 2010-06-23 |
Family
ID=42479812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810241680A Pending CN101753373A (zh) | 2008-12-19 | 2008-12-19 | 一种海量告警的查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101753373A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236718A (zh) * | 2011-07-20 | 2011-11-09 | 中兴通讯股份有限公司 | 一种数据查询的方法及装置 |
CN103338243A (zh) * | 2013-06-20 | 2013-10-02 | 新浪网技术(中国)有限公司 | Web节点的缓存数据更新方法和系统 |
CN105634822A (zh) * | 2016-01-15 | 2016-06-01 | 武汉烽火网络有限责任公司 | 基于告警分组实现快速查询告警信息的方法及装置 |
CN109299223A (zh) * | 2018-10-15 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 用于查询指令的方法及装置 |
-
2008
- 2008-12-19 CN CN200810241680A patent/CN101753373A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236718A (zh) * | 2011-07-20 | 2011-11-09 | 中兴通讯股份有限公司 | 一种数据查询的方法及装置 |
CN102236718B (zh) * | 2011-07-20 | 2019-09-13 | 南京中兴新软件有限责任公司 | 一种数据查询的方法及装置 |
CN103338243A (zh) * | 2013-06-20 | 2013-10-02 | 新浪网技术(中国)有限公司 | Web节点的缓存数据更新方法和系统 |
CN105634822A (zh) * | 2016-01-15 | 2016-06-01 | 武汉烽火网络有限责任公司 | 基于告警分组实现快速查询告警信息的方法及装置 |
CN105634822B (zh) * | 2016-01-15 | 2018-10-30 | 武汉烽火网络有限责任公司 | 基于告警分组实现快速查询告警信息的方法及装置 |
CN109299223A (zh) * | 2018-10-15 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 用于查询指令的方法及装置 |
CN109299223B (zh) * | 2018-10-15 | 2020-05-15 | 百度在线网络技术(北京)有限公司 | 用于查询指令的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100596353C (zh) | 提供日志服务的方法及系统 | |
WO2021000826A1 (zh) | 信息搜索方法、装置、终端及存储介质 | |
CN100583832C (zh) | 数据管理方法及系统 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN102841860A (zh) | 一种大数据量信息存储与访问方法 | |
CN103383690B (zh) | 分布式数据存储方法及系统 | |
EP3788505B1 (en) | Storing data items and identifying stored data items | |
CN102739622A (zh) | 一种可扩展的数据存储系统 | |
CN102609488A (zh) | 客户端及其数据查询方法、服务端和数据查询系统 | |
CN107026876A (zh) | 一种文件数据访问系统及方法 | |
CN102968456B (zh) | 一种栅格数据读取处理方法和装置 | |
CN101986649A (zh) | 应用于电信行业计费系统的共享数据中心 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN101753373A (zh) | 一种海量告警的查询方法及系统 | |
CN102542041A (zh) | 栅格数据处理方法及系统 | |
CN101408882B (zh) | 一种授权文档的检索方法和系统 | |
CN100383787C (zh) | 一种数据库多表信息初始化方法 | |
CN100507873C (zh) | 一种闪存中的flash文件的管理方法及系统 | |
CN111259017B (zh) | 订单检索方法、计算机设备和存储介质 | |
CN113986824A (zh) | 一种高效存储和检索时序数据的方法 | |
CN113448964A (zh) | 一种基于图-kv的混合存储方法及装置 | |
CN109213760A (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN108647280A (zh) | 一种存储通讯信息的方法和装置 | |
CN111581220A (zh) | 用于时间序列数据的存储及检索方法、装置、设备及存储介质 | |
CN103177026A (zh) | 数据管理方法和数据管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100623 |