一种时间序列数据的键值对的提取方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种时间序列数据的键值对的提取方法及装置。
背景技术
随着信息技术的快速发展,企业信息技术基础设施建设规模不断扩大,IT监控、运维系统得到广泛运用,人们在进行各种活动时会产生大量的数字信息,比如,各种传感器、智能家电产生的数据,以及各种交易系统(证券交易系统、电子商务交易系统)产生的交易数据等数量庞大,这些数据的格式不尽相同,很难得到利用。
时间序列数据是计算机或其他设备随时间生成的信息,其中的数据并不一定遵循标准的数据结构(如模式定义规范的行和列),很难直接理解和利用。将时间序列数据的内容转化为键值对(key-value)的形式,有利于提取有价值的信息,建立索引、快速搜索及对数据进一步的分析利用。但是,由于时间序列数据的格式多样,字段的种类及格式存在多样性,不同数据格式下的分隔符也并不相同,难以提取到统一格式的键值对,如果用户自行编写适合的语法进行键值对匹配时,会导致键值对的提取过程过于繁杂。
发明内容
本发明实施例公开了一种时间序列数据的键值对的提取方法及装置,能够从时间序列数据中提取到统一格式的键值对,并提高提取键值对的效率。
本发明实施例第一方面公开一种时间序列数据的键值对的提取方法,所述方法包括:
获取所述时间序列数据,从所述时间序列数据中读取所述时间序列数据携带的应用程序信息;
根据所述应用程序信息查询并判断系统中是否存储有用户自定义解析规则;
如果存储有所述用户自定义解析规则,根据所述用户自定义解析规则对所述时间序列数据进行解析,获得第一键值对;所述第一键值对的格式与预设格式相同;
如果未存储有所述用户自定义解析规则,根据系统内置的正则表达式规则对所述时间序列数据进行解析,获得第二键值对;所述第二键值对的格式与所述预设格式相同。
作为另一种可选的实施方式,在本发明实施例第一方面中,所述根据所述用户自定义解析规则对所述时间序列数据进行解析,获得第一键值对,包括:
根据所述用户自定义解析规则确定所述时间序列数据中的字段和字段值之间的第一分隔符,以及根据所述用户自定义解析规则确定所述时间序列数据中的字段之间的第二分隔符;
根据所述第一分隔符分割所述时间序列数据中的字段和字段值,以及根据所述第二分隔符分割所述时间序列数据中的字段,以获得分割后的时间序列数据;从所述分割后的时间序列数据中提取第一关键字段和所述第一关键字段对应的字段值,根据所述第一关键字段和所述第一关键字段对应的字段值构建所述第一键值对;
所述根据系统内置的正则表达式规则对所述时间序列数据进行解析,获得第二键值对,包括:
根据所述系统内置的正则表达式规则确定所述时间序列数据中的字段和字段值之间的第三分隔符,以及根据所述系统内置的正则表达式规则确定所述时间序列数据中的字段之间的第四分隔符;
根据所述第三分隔符分割所述时间序列数据中的字段和字段值,以及根据所述第四分隔符分割所述时间序列数据中的字段,以获得分割后的时间序列数据;从所述分割后的时间序列数据中提取第二关键字段和所述第二关键字段对应的字段值,根据所述第二关键字段和所述第二关键字段对应的字段值构建所述第二键值对。
作为另一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:
检验所述第一关键字段对应的字段值是否正确,如果正确,保留所述第一关键字段对应的字段值,并执行所述根据所述第一关键字段和所述第一关键字段对应的字段值构建所述第一键值对;如果不正确,丢弃所述第一关键字段对应的字段值;
或者,所述方法还包括:
检验所述第二关键字段对应的字段值是否正确,如果正确,保留所述第二关键字段对应的字段值,并执行所述根据所述第二关键字段和所述第二关键字段对应的字段值构建所述第二键值对;如果不正确,丢弃所述第二关键字段对应的字段值。
作为另一种可选的实施方式,在本发明实施例第一方面中,所述根据所述第一关键字段和所述第一关键字段对应的字段值构建所述第一键值对之后,所述方法还包括:
根据所述第一关键字段建立索引,以供所述系统根据所述第一关键字段进行搜索;或者将所述第一关键字段存储至数据库;
或者,所述根据所述第二关键字段和所述第二关键字段对应的字段值构建所述第二键值对之后,所述方法还包括:
根据所述第二关键字段建立索引,以供所述系统根据所述第二关键字段进行搜索;或者将所述第二关键字段存储至数据库。
作为另一种可选的实施方式,在本发明实施例第一方面中,在判断出所述系统存储有所述用户自定义解析规则之后,所述方法还包括:
判断所述用户自定义解析规则是否与所述时间序列数据匹配;
如果所述用户自定义解析规则与所述时间序列数据不匹配,执行所述的根据系统内置的正则表达式规则对所述时间序列数据进行解析,获得第二键值对的步骤。
本发明实施例第二方面公开一种时间序列数据的键值对的提取装置,所述装置包括:
读取单元,用于获取所述时间序列数据,从所述时间序列数据中读取所述时间序列数据携带的应用程序信息;
第一判断单元,用于根据所述应用程序信息查询并判断系统中是否存储有用户自定义解析规则;
第一解析单元,用于在所述第一判断单元判断出系统存储有所述用户自定义解析规则时,根据所述用户自定义解析规则对所述时间序列数据进行解析,获得第一键值对;所述第一键值对的格式与预设格式相同;
第二解析单元,用于在所述第一判断单元判断出系统未存储有所述用户自定义解析规则时,根据系统内置的正则表达式规则对所述时间序列数据进行解析,获得第二键值对;所述第二键值对的格式与所述预设格式相同。
作为另一种可选的实施方式,在本发明实施例第二方面中,所述第一解析单元具体用于:
根据所述用户自定义解析规则确定所述时间序列数据中的字段和字段值之间的第一分隔符,以及根据所述用户自定义解析规则确定所述时间序列数据中的字段之间的第二分隔符;
根据所述第一分隔符分割所述时间序列数据中的字段和字段值,以及根据所述第二分隔符分割所述时间序列数据中的字段,以获得分割后的时间序列数据;从所述分割后的时间序列数据中提取第一关键字段和所述第一关键字段对应的字段值,根据所述第一关键字段和所述第一关键字段对应的字段值构建所述第一键值对;
所述第二解析单元具体用于:
根据所述系统内置的正则表达式规则确定所述时间序列数据中的字段和字段值之间的第三分隔符,以及根据所述系统内置的正则表达式规则确定所述时间序列数据中的字段之间的第四分隔符;
根据所述第三分隔符分割所述时间序列数据中的字段和字段值,以及根据所述第四分隔符分割所述时间序列数据中的字段,以获得分割后的时间序列数据;从所述分割后的时间序列数据中提取第二关键字段和所述第二关键字段对应的字段值,根据所述第二关键字段和所述第二关键字段对应的字段值构建所述第二键值对。
作为另一种可选的实施方式,在本发明实施例第二方面中,所述装置还包括:
第一检验单元,用于检验所述第一关键字段对应的字段值是否正确,如果正确,保留所述第一关键字段对应的字段值,所述第一解析单元根据所述第一关键字段和所述第一关键字段对应的字段值构建所述第一键值对;如果不正确,丢弃所述第一关键字段对应的字段值;
第二检验单元,用于检验所述第二关键字段对应的字段值是否正确,如果正确,保留所述第二关键字段对应的字段值,所述第二解析单元根据所述第二关键字段和所述第二关键字段对应的字段值构建所述第二键值对;如果不正确,丢弃所述第二关键字段对应的字段值。
作为另一种可选的实施方式,在本发明实施例第二方面中,所述装置还包括:
第一保存单元,用于在所述第一解析单元根据所述第一关键字段和所述第一关键字段对应的字段值构建所述第一键值对之后,根据所述第一关键字段建立索引,以供所述系统根据所述第一关键字段进行搜索;或者将所述第一关键字段存储至数据库;
第二保存单元,用于在所述第二解析单元根据所述第二关键字段和所述第二关键字段对应的字段值构建所述第二键值对之后,根据所述第二关键字段建立索引,以供所述系统根据所述第二关键字段进行搜索;或者将所述第二关键字段存储至数据库。
作为另一种可选的实施方式,在本发明实施例第二方面中,所述装置还包括:
第二判断单元,用于在所述第一判断单元判断出所述系统存储有所述用户自定义解析规则之后,判断所述用户自定义解析规则是否与所述时间序列数据匹配;
所述第二解析单元还用于在所述第二判断单元判断出所述用户自定义解析规则与所述时间序列数据不匹配时,根据系统内置的正则表达式规则对所述时间序列数据进行解析,获得第二键值对。
本发明实施例第三方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的一种时间序列数据的键值对的提取方法。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息;根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果存储有用户自定义解析规则,根据用户自定义解析规则对时间序列数据进行解析,获得第一键值对,第一键值对的格式与预设格式相同;如果未存储有用户自定义解析规则,根据系统内置的正则表达式规则对时间序列数据进行解析,获得第二键值对,第二键值对的格式与预设格式相同。实施本发明实施例,能够从时间序列数据中提取到统一格式的键值对,并提高提取键值对的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种时间序列数据的键值对的提取方法的流程示意图;
图2是本发明实施例公开的另一种时间序列数据的键值对的提取方法的流程示意图;
图3是本发明实施例公开的另一种时间序列数据的键值对的提取方法的流程示意图;
图4是本发明实施例公开的一种时间序列数据的键值对的提取装置的结构示意图;
图5是本发明实施例公开的另一种时间序列数据的键值对的提取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
请参阅图1,图1是本发明实施例公开的一种时间序列数据的键值对的提取方法的流程示意图。如图1所示,该时间序列数据的键值对的提取方法可以包括以下步骤。
101、获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息。
本发明实施例中,时间序列数据是在不同时间上收集到的数据,带有时间属性参数,这类数据是按时间顺序收集到的,用于所描述现象随时间变化的情况。通常情况下,系统会周期性地生成各个应用程序的指标数据,其时间属性参数表示指标数据生成的时间。对于同一应用程序的指标数据,系统生成的监控数据的时间属性参数具有周期性的规律,即顺序生成的相同指标或指标组的相邻两条数据的时间属性参数所表示的时间的差值相同。所述差值即为时间序列数据的精度,差值越小,数据的精度越高,差值越大,数据的精度越低。
102、根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果是,执行步骤103;如果否,执行步骤104。
本发明实施例中,系统是指电子设备的操作系统,它可以包括但不限于Android操作系统、IOS操作系统、Symbian(塞班)操作系统、Black Berry(黑莓)操作系统、Windows操作系统等等,本发明实施例不做限定。
本发明实施例中,用户自定义解析规则是用户根据应用程序生成的时间序列数据自行编写的语法,可以对时间序列数据进行解析,获得时间序列数据的关键字段。
103、根据用户自定义解析规则对时间序列数据进行解析,获得第一键值对。
其中,第一键值对的格式与预设格式相同。
本发明实施例中,用户自定义解析规则可以存在若干条,依次选择每一条用户自定义解析规则去匹配当前时间序列数据,如果用户自定义解析规则中存在与当前时间序列数据匹配的一条用户自定义解析规则,则使用该用户自定义的正则表达式规则对当前时间数据进行解析,如果用户自定义解析规则中不存在与当前时间序列数据匹配的一条用户自定义解析规则,则从系统内置的正则表达式规则中挑选匹配的规则对当前时间数据进行解析。
104、根据系统内置的正则表达式规则对时间序列数据进行解析,获得第二键值对。
其中,第二键值对的格式与预设格式相同。
本发明实施例中,系统内置的正则表达式规则可以存在若干条,依次从系统内置的正则表达式规则选择一条正则表达式规则跟当前时间序列数据进行匹配,直至选取出目标正则表达式规则与当前时间序列数据匹配,进一步地,使用该目标正则表达式规则对当前时间序列数据进行解析。
作为一种可选的实施方式,在使用正则表达式规则对时间序列数据进行解析,获取键值对之后,可以根据应用程序信息对键值对进行分类,从分类后的键值对中提取键名和键值,然后填充到预设的数据模板中,根据填充后的数据模板呈现时间序列数据;还可以根据键值对的分类情况绘制曲线图、散点图等,图中标示键值对的键名和键值。实施该实施方式,能够更直观地体现时间序列数据的变化情况,有利于对时间序列数据进一步的分析利用。
可见,实施图1所描述的方法,可以获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息;根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果存储有用户自定义解析规则,根据用户自定义解析规则对时间序列数据进行解析,获得第一键值对,第一键值对的格式与预设格式相同;如果未存储有用户自定义解析规则,根据系统内置的正则表达式规则对时间序列数据进行解析,获得第二键值对,第二键值对的格式与预设格式相同。实施本发明实施例,能够从时间序列数据中提取到统一格式的键值对,并提高提取键值对的效率。
实施例二
请参阅图2,图2是本发明实施例公开的另一种时间序列数据的键值对的提取方法的流程示意图。如图2所示,该时间序列数据的键值对的提取方法可以包括以下步骤。
201、获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息。
202、根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果是,执行步骤203~步骤205;如果否,执行步骤206~步骤208。
203、根据用户自定义解析规则确定时间序列数据中的字段和字段值之间的第一分隔符,以及根据用户自定义解析规则确定时间序列数据中的字段之间的第二分隔符。
本发明实施例中,时间序列数据中的字段和字段值之间的分隔符可为“:”、“=”等,本发明实施例不作限定;时间序列数据中的字段之间的分隔符可为“&”、“+”、“,”和空格等,本发明实施例不作限定。
204、根据第一分隔符分割时间序列数据中的字段和字段值,以及根据第二分隔符分割时间序列数据中的字段,以获得分割后的时间序列数据;从分割后的时间序列数据中提取第一关键字段和第一关键字段对应的字段值,根据第一关键字段和第一关键字段对应的字段值构建第一键值对。
其中,第一键值对的格式与预设格式相同。
本发明实施例中,可以从分割后的时间序列数据中提取第一关键字段和第一关键字段对应的字段值,根据第一关键字段和第一关键字段对应的字段值构建第一键值对,建立“field_name:field_value”的统一格式,将非结构化数据转化为结构化数据。
205、根据第一关键字段建立索引,以供系统根据第一关键字段进行搜索;或者将第一关键字段存储至数据库。
本发明实施例中,在时间序列数据从非结构化数据转化为结构化数据之后,可以根据第一关键字段建立索引,或者第一关键字段存储至数据库,便于查询统计,节省计算空间和查询时间,有利于快速提取到有价值的信息。
206、根据系统内置的正则表达式规则确定时间序列数据中的字段和字段值之间的第三分隔符,以及根据系统内置的正则表达式规则确定时间序列数据中的字段之间的第四分隔符。
本发明实施例中,时间序列数据中的字段和字段值之间的分隔符可为“:”、“=”等,本发明实施例不作限定;时间序列数据中的字段之间的分隔符可为“&”、“+”、“,”和空格等,本发明实施例不作限定。
207、根据第三分隔符分割时间序列数据中的字段和字段值,以及根据第四分隔符分割时间序列数据中的字段,以获得分割后的时间序列数据;从分割后的时间序列数据中提取第二关键字段和第二关键字段对应的字段值,根据第二关键字段和第二关键字段对应的字段值构建第二键值对。
其中,第二键值对的格式与预设格式相同。
本发明实施例中,可以从分割后的时间序列数据中提取第二关键字段和第二关键字段对应的字段值,根据第二关键字段和第二关键字段对应的字段值构建第二键值对,建立“field_name:field_value”的统一格式,将非结构化数据转化为结构化数据。
208、根据第二关键字段建立索引,以供系统根据第二关键字段进行搜索;或者将第二关键字段存储至数据库。
本发明实施例中,在时间序列数据从非结构化数据转化为结构化数据之后,可以根据第二关键字段建立索引,或者第二关键字段存储至数据库,便于查询统计,节省计算空间和查询时间,有利于快速提取到有价值的信息。
作为一种可选的实施方式,在应用程序发生异常时,可以获取该应用程序的时间序列数据,根据用户自定义解析规则或者系统内置的正则表达式规则对该应用程序的时间序列数据进行解析,获得键值对,并将键值对存储至数据库,使得专业人员可以根据键值对呈现的信息对该应用程序进行异常分析,解决异常情况。通过该实施方式,能够在应用程序发生异常时,及时将异常数据存储下来,以便进一步对应用程序进行异常分析,解决异常问题。
可见,实施图2所描述的方法,可以获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息;根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果存储有用户自定义解析规则,根据用户自定义解析规则确定时间序列数据的分隔符,对时间序列数据进行分割,然后提取关键字段和字段值,构建第一键值对,第一键值对的格式与预设格式相同;如果未存储有用户自定义解析规则,根据系统内置的正则表达式规则确定时间序列数据的分隔符,对时间序列数据进行分割,然后提取关键字段和字段值,构建第二键值对,第二键值对的格式与预设格式相同。实施本发明实施例,能够从时间序列数据中提取到统一格式的键值对,并提高提取键值对的效率。
此外,还可以根据关键字段建立索引,以供系统根据关键字段进行搜索;或者将关键字段存储至数据库,以便对数据进一步的分析利用。
实施例三
请参阅图3,图3是本发明实施例公开的另一种时间序列数据的键值对的提取方法的流程示意图。如图3所示,该时间序列数据的键值对的提取方法可以包括以下步骤。
301、获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息。
302、根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果是,执行步骤303;如果否,执行步骤308~步骤311。
303、判断用户自定义解析规则是否与时间序列数据匹配;如果是,执行步骤304~步骤307;如果否,执行步骤308~步骤311。
304、根据用户自定义解析规则确定时间序列数据中的字段和字段值之间的第一分隔符,以及根据用户自定义解析规则确定时间序列数据中的字段之间的第二分隔符。
305、根据第一分隔符分割时间序列数据中的字段和字段值,以及根据第二分隔符分割时间序列数据中的字段,以获得分割后的时间序列数据;从分割后的时间序列数据中提取第一关键字段和第一关键字段对应的字段值。
306、检验第一关键字段对应的字段值是否正确;如果正确,保留第一关键字段对应的字段值,根据第一关键字段和第一关键字段对应的字段值构建第一键值对;如果不正确,丢弃第一关键字段对应的字段值。
307、根据第一关键字段建立索引,以供系统根据第一关键字段进行搜索;或者将第一关键字段存储至数据库。
308、根据系统内置的正则表达式规则确定时间序列数据中的字段和字段值之间的第三分隔符,以及根据系统内置的正则表达式规则确定时间序列数据中的字段之间的第四分隔符。
309、根据第三分隔符分割时间序列数据中的字段和字段值,以及根据第四分隔符分割时间序列数据中的字段,以获得分割后的时间序列数据;从分割后的时间序列数据中提取第二关键字段和第二关键字段对应的字段值。
310、检验第二关键字段对应的字段值是否正确;如果正确,保留第二关键字段对应的字段值,根据第二关键字段和第二关键字段对应的字段值构建第二键值对;如果不正确,丢弃第二关键字段对应的字段值。
311、根据第二关键字段建立索引,以供系统根据第二关键字段进行搜索;或者将第二关键字段存储至数据库。
作为一种可选的实施方式,在检验出关键字段对应的字段值不正确时,检测不正确的字段值所在的位置,以及分析该关键字段的属性,根据该关键字段的属性判断该关键字段是否可以自动获取字段值,如果可以,根据应用程序的信息自动获取字段值填入至关键字段对应的字段值,如果不可以,获取系统默认值,将系统默认值填入至关键字段对应的字段值。通过该实施方式,能够在检验出关键字段对应的字段值不正确时,填充字段值,避免丢弃掉重要的数据。
可见,实施图3所描述的方法,可以获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息;根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果存储有用户自定义解析规则,根据用户自定义解析规则确定时间序列数据的分隔符,对时间序列数据进行分割,然后提取关键字段和字段值,构建第一键值对,第一键值对的格式与预设格式相同;如果未存储有用户自定义解析规则,根据系统内置的正则表达式规则确定时间序列数据的分隔符,对时间序列数据进行分割,然后提取关键字段和字段值,构建第二键值对,第二键值对的格式与预设格式相同。实施本发明实施例,能够从时间序列数据中提取到统一格式的键值对,并提高提取键值对的效率。
此外,可以对关键字段进行检验,在检验出字段值不正确时,丢弃字段值,避免不正确的字段值对数据分析造成影响。
此外,还可以根据关键字段建立索引,以供系统根据关键字段进行搜索;或者将关键字段存储至数据库,以便对数据进一步的分析利用。
实施例四
图4是本发明实施例公开的一种时间序列数据的键值对的提取装置的结构示意图。如图4所示,该装置可以包括:
读取单元401,用于获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息。
本发明实施例中,时间序列数据是在不同时间上收集到的数据,带有时间属性参数,这类数据是按时间顺序收集到的,用于所描述现象随时间变化的情况。通常情况下,系统会周期性地生成各个应用程序的指标数据,其时间属性参数表示指标数据生成的时间。对于同一应用程序的指标数据,系统生成的监控数据的时间属性参数具有周期性的规律,即顺序生成的相同指标或指标组的相邻两条数据的时间属性参数所表示的时间的差值相同。所述差值即为时间序列数据的精度,差值越小,数据的精度越高,差值越大,数据的精度越低。
第一判断单元402,用于根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则。
本发明实施例中,系统是指电子设备的操作系统,它可以包括但不限于Android操作系统、IOS操作系统、Symbian(塞班)操作系统、Black Berry(黑莓)操作系统、Windows操作系统等等,本发明实施例不做限定。
本发明实施例中,用户自定义解析规则是用户根据应用程序生成的时间序列数据自行编写的语法,可以对时间序列数据进行解析,获得时间序列数据的关键字段。
第一解析单元403,用于在上述第一判断单元402判断出系统存储有用户自定义解析规则时,根据用户自定义解析规则对时间序列数据进行解析,获得第一键值对。
其中,第一键值对的格式与预设格式相同。
本发明实施例中,用户自定义解析规则可以存在若干条,依次选择每一条用户自定义解析规则去匹配当前时间序列数据,如果用户自定义解析规则中存在与当前时间序列数据匹配的一条用户自定义解析规则,则使用该用户自定义的正则表达式规则对当前时间数据进行解析,如果用户自定义解析规则中不存在与当前时间序列数据匹配的一条用户自定义解析规则,则从系统内置的正则表达式规则中挑选匹配的规则对当前时间数据进行解析。
第二解析单元404,用于在上述第一判断单元402判断出系统未存储有用户自定义解析规则时,根据系统内置的正则表达式规则对时间序列数据进行解析,获得第二键值对。
其中,第二键值对的格式与预设格式相同。
本发明实施例中,系统内置的正则表达式规则可以存在若干条,依次从系统内置的正则表达式规则选择一条正则表达式规则跟当前时间序列数据进行匹配,直至选取出目标正则表达式规则与当前时间序列数据匹配,进一步地,使用该目标正则表达式规则对当前时间序列数据进行解析。
作为一种可选的实施方式,在使用正则表达式规则对时间序列数据进行解析,获取键值对之后,可以根据应用程序信息对键值对进行分类,从分类后的键值对中提取键名和键值,然后填充到预设的数据模板中,根据填充后的数据模板呈现时间序列数据;还可以根据键值对的分类情况绘制曲线图、散点图等,图中标示键值对的键名和键值。实施该实施方式,能够更直观地体现时间序列数据的变化情况,有利于对时间序列数据进一步的分析利用。
可见,实施图4所描述的时间序列数据的键值对的提取装置,可以获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息;根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果存储有用户自定义解析规则,根据用户自定义解析规则对时间序列数据进行解析,获得第一键值对,第一键值对的格式与预设格式相同;如果未存储有用户自定义解析规则,根据系统内置的正则表达式规则对时间序列数据进行解析,获得第二键值对,第二键值对的格式与预设格式相同。实施本发明实施例,能够从时间序列数据中提取到统一格式的键值对,并提高提取键值对的效率。
实施例五
图5是本发明实施例公开的另一种时间序列数据的键值对的提取装置的结构示意图。如图5所示,其中,图5所示的时间序列数据的键值对的提取装置是由图4所示的时间序列数据的键值对的提取装置进行优化得到的。与图4所示的时间序列数据的键值对的提取装置相比较,图5所示的时间序列数据的键值对的提取装置还可以包括:
上述第一解析单元403具体用于:
根据用户自定义解析规则确定时间序列数据中的字段和字段值之间的第一分隔符,以及根据用户自定义解析规则确定时间序列数据中的字段之间的第二分隔符;
根据第一分隔符分割时间序列数据中的字段和字段值,以及根据第二分隔符分割时间序列数据中的字段,以获得分割后的时间序列数据;从分割后的时间序列数据中提取第一关键字段和第一关键字段对应的字段值,根据第一关键字段和第一关键字段对应的字段值构建第一键值对;
上述第二解析单元404具体用于:
根据系统内置的正则表达式规则确定时间序列数据中的字段和字段值之间的第三分隔符,以及根据系统内置的正则表达式规则确定时间序列数据中的字段之间的第四分隔符;
根据第三分隔符分割时间序列数据中的字段和字段值,以及根据第四分隔符分割时间序列数据中的字段,以获得分割后的时间序列数据;从分割后的时间序列数据中提取第二关键字段和第二关键字段对应的字段值,根据第二关键字段和第二关键字段对应的字段值构建第二键值对。
本发明实施例中,时间序列数据中的字段和字段值之间的分隔符可为“:”、“=”等,本发明实施例不作限定;时间序列数据中的字段之间的分隔符可为“&”、“+”、“,”和空格等,本发明实施例不作限定。
本发明实施例中,可以从分割后的时间序列数据中提取第一关键字段和第一关键字段对应的字段值,根据第一关键字段和第一关键字段对应的字段值构建第一键值对,建立“field_name:field_value”的统一格式,将非结构化数据转化为结构化数据。
第一检验单元405,用于检验第一关键字段对应的字段值是否正确,如果正确,保留第一关键字段对应的字段值,上述第一解析单元403根据第一关键字段和第一关键字段对应的字段值构建第一键值对;如果不正确,丢弃第一关键字段对应的字段值;
第二检验单元406,用于检验第二关键字段对应的字段值是否正确,如果正确,保留第二关键字段对应的字段值,上述第二解析单元404根据第二关键字段和第二关键字段对应的字段值构建第二键值对;如果不正确,丢弃第二关键字段对应的字段值。
第一保存单元407,用于在上述第一解析单元403根据第一关键字段和第一关键字段对应的字段值构建第一键值对之后,根据第一关键字段建立索引,以供系统根据第一关键字段进行搜索;或者将第一关键字段存储至数据库;
第二保存单元408,用于在上述第二解析单元404根据第二关键字段和第二关键字段对应的字段值构建第二键值对之后,根据第二关键字段建立索引,以供系统根据第二关键字段进行搜索;或者将第二关键字段存储至数据库。
本发明实施例中,在时间序列数据从非结构化数据转化为结构化数据之后,可以根据第一关键字段建立索引,或者第一关键字段存储至数据库,便于查询统计,节省计算空间和查询时间,有利于快速提取到有价值的信息。
第二判断单元409,用于在上述第一判断单元402判断出系统存储有用户自定义解析规则之后,判断用户自定义解析规则是否与时间序列数据匹配;
上述第二解析单元404还用于在上述第二判断单元409判断出用户自定义解析规则与时间序列数据不匹配时,根据系统内置的正则表达式规则对时间序列数据进行解析,获得第二键值对。
作为一种可选的实施方式,在应用程序发生异常时,可以获取该应用程序的时间序列数据,根据用户自定义解析规则或者系统内置的正则表达式规则对该应用程序的时间序列数据进行解析,获得键值对,并将键值对存储至数据库,使得专业人员可以根据键值对呈现的信息对该应用程序进行异常分析,解决异常情况。通过该实施方式,能够在应用程序发生异常时,及时将异常数据存储下来,以便进一步对应用程序进行异常分析,解决异常问题。
作为一种可选的实施方式,在检验出关键字段对应的字段值不正确时,检测不正确的字段值所在的位置,以及分析该关键字段的属性,根据该关键字段的属性判断该关键字段是否可以自动获取字段值,如果可以,根据应用程序的信息自动获取字段值填入至关键字段对应的字段值,如果不可以,获取系统默认值,将系统默认值填入至关键字段对应的字段值。通过该实施方式,能够在检验出关键字段对应的字段值不正确时,填充字段值,避免丢弃掉重要的数据。
可见,实施图5所描述的时间序列数据的键值对的提取装置,可以获取时间序列数据,从时间序列数据中读取时间序列数据携带的应用程序信息;根据应用程序信息查询并判断系统中是否存储有用户自定义解析规则;如果存储有用户自定义解析规则,根据用户自定义解析规则确定时间序列数据的分隔符,对时间序列数据进行分割,然后提取关键字段和字段值,构建第一键值对,第一键值对的格式与预设格式相同;如果未存储有用户自定义解析规则,根据系统内置的正则表达式规则确定时间序列数据的分隔符,对时间序列数据进行分割,然后提取关键字段和字段值,构建第二键值对,第二键值对的格式与预设格式相同。实施本发明实施例,能够从时间序列数据中提取到统一格式的键值对,并提高提取键值对的效率。
此外,可以对关键字段进行检验,在检验出字段值不正确时,丢弃字段值,避免不正确的字段值对数据分析造成影响。
此外,还可以根据关键字段建立索引,以供系统根据关键字段进行搜索;或者将关键字段存储至数据库,以便对数据进一步的分析利用。
本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行图1~图3任意一种时间序列数据的键值对的提取方法。
本发明实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行如以上各方法实施例中的方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本发明实施例公开的一种时间序列数据的键值对的提取方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。