本申请属于计算机技术领域,尤其涉及一种数据处理方法和系统。
背景技术:
目前,为了实现系统间数据的对比,不同的业务团队一般采用各自的对比工具进行对比,且一般都是基于db(数据库)的对比需求,功能都是相似的,即,单纯基于数据库中所存储的数值或者字符型的比较。这就导致,对于每一项业务,或者每一个团队而言,如果需要对比,就需要重新做一个工具来进行对比,工作重复性太高,对比软件的通用性太低,且软件的生存期和使用频率很低,且实时性很差。
针对现有数据对比系统所存在的通用性低、实时性差的问题,目前尚未提出有效的解决方案。
技术实现要素:
本申请目的在于提供一种数据处理方法和系统,可以实现实时高效地进行数据对比。
本申请提供一种数据处理方法和系统是这样实现的:
一种数据处理方法,所述方法包括:
从至少两个待对比系统的日志文件中采集数据;
按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
一种数据处理系统,包括:
采集模块,用于从至少两个待对比系统的日志文件中采集数据;
匹配模块,用于按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
规则引擎模块,用于对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
搜索模块,用于根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
一种终端设备中,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现如下步骤:
从至少两个待对比系统的日志文件中采集数据;
按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下步骤:
从至少两个待对比系统的日志文件中采集数据;
按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
本申请提供的数据处理方法和系统,在从至少两个待对比系统的日志文件中采集数据后,按照键值对采集的数据进行归并聚合处理,在确定出数据之间的差异度之后,再将差异度结果写入数据库中,基于键值就可以实现对业务问题的分析确定,因是直接从业务系统获取的数据,因此,在数据写入数据库之前就可以对归并聚合处理后的数据进行差异度计算,并将满足要求的差异度结果写入数据库中,从而使得可以基于键值查找到对应的问题数据,且是在数据写数据库之前进行的操作,实时性更高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的数据处理系统的一种架构示意图;
图2是本申请提供的数据处理系统的另一种架构示意图;
图3是本申请提供的数据处理方法的方法流程图;
图4是本申请提供的数据处理系统的又一架构示意图;
图5是本申请提供的服务器端的架构图;
图6是本申请提供的数据处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
针对现有的对比工具存在的通用性不强、实时性不高的问题,在本例中,提出了一种通用性强实时性高的数据一致性分析系统,通过该分析系统可以对上游数据及时进行分析处理,并进行差异度计算,具体的,可以在差异度结果中记录简直,这样通过键值可以定位出业务问题。通过上述方式可以在开发测试的过程中及时发现问题。
基于此,在本例中,提出了一种数据处理系统,如图1所示,可以包括:多个待对比系统101、处理系统102,其中,处理系统实时采集多个待对比系统的数据,然后进行归并处理和差异度计算,从而确定出各系统数据之间的差异度,从而在存在问题的时候,可以及时定位问题。
上述的待对比系统可以但不限于是:线上的主系统、线上的备用系统、待上线的主系统、待上线的备用系统等,所采集的上游系统的数据可以包括但不限于是:tt、meta、drc等,对于可以基于通用方式获取的数据形式在本例中都可以支持。
上述的处理系统102可以是单一的服务器,也可以是服务器集群,或者是云处理器等等都可以,具体的业务呈现形式可以根据实际需要选择,本申请对此不作限定。
如图2所示,上述的数据处理系统还可以包括:客户端103,为用户提供查询功能,例如,用户可以通过客户端输入键值,以实现对业务问题的查询。其中,上述的客户端103可以但不限于是手机、电脑等带有处理和通信功能的设备。
基于此,在本例中提供了一种数据处理方法,如图3所示,可以包括如下步骤:
s301:从至少两个待对比系统的日志文件中采集数据;
s302:按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
其中,上述键值用于唯一确定一条记录,即,无论是哪个系统的数据,对于同一条数据记录,都是采用同一个键值标识的,这样,在对采集的数据进行归并聚合处理的时候,
s303:对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
例如,在归并聚合之后,不同系统同一键值的数据就被归并聚合到一起,然后,对这些数据进行差异度计算,以确定出数据是否一致,或者对应于同一需要累加的数据,累加和是否相同等等,即,确定数据差异量。
s304:根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
进一步的,考虑到系统会出现正常的网络延迟,或者重启等问题,这将导致数据无法第一时间达到match数据处理模块,为此,可以引入滑动窗口的策略,以便扩展需对比数据记录的生命周期,从而避免因为正常的系统或者网络延迟导致的两路或者多路对比数据无法完成配对的现象。如果在窗口期内仍旧没法办法完成配对,那么系统可以重试,如果重试预定次数(例如:3次),仍旧无法完成配对,那么可以为该数据打上lack标签,并将其直接发送给下游,并记录为丢消息错误类型。即使在之后的时间内,丢失的数据记录过来了,仍旧记录为丢消息错误类型,因为考虑到实时系统的性能需求,超时太久也是不能接受的。
具体的,考虑到在实际实现的时候,假设有5个系统需要进行差异度计算,在进归并处理的时候,需要五个系统的数据都已经获取到才可以进行差异度计算,但是有时有些数据会在某些系统中缺失,或者是在传送或者采集处理的时候被丢掉,为了避免对这些数据过长时间的等待造成资源的浪费。按照键值对采集的数据进行归并聚合处理,可以包括:
s1:将对应同一键值的数据放置同一数据结构中;
s2:确定对应同一键值的数据的数量是否达到待对比系统的个数;
s3:在确定未达到所述待对比系统的个数的情况下,确定等待时间是否达到预设时长;
s4:在所述等待时间达到所述预设时长,且对应同一键值的数据的数量未达到所述待对比系统的个数的情况下,确定数据错误。
即,如果等待一定时长之后,当前键值对应的数据还未收集全,那么就确定数据错误,如果在预定时长内,当前键值对应的数据已经收集全(即,数量等于系统个数),那么就可以触发进行差异度计算。
具体的,在计算差异度之后,需要对计算得到的差异度结果进行存储,如果对所有的差异度结果都进行存储,那么势必导致存储量过大,为此,可以设置一个存储条件。例如,假设数据为数值型,表征的是人民币的差额,过小的差额可以忽略不计,例如:1块、2块这种都可以忽略不计,在超额超出20块的情况下,才有记录的必要,那么就可以设置阈值为20块,在差异度计算的结果超出20,才进行记录,即,对于这种满足记录条件的数据才写入数据库中。相应的,将满足预设要求的差异度结果写入数据库中,可以包括:确定各个差异度结果是否超出预设的差异阈值;将超出差异阈值的差异度结果写入所述数据库中。
在采集到待对比系统的数据之后,可以对这些数据进行正则过滤,以确定出哪些数据需要进行比对,哪些数据不需要进行比对,对于不需要进行比对的数据,就过滤掉。在过滤之后,可以按照预设的切分规则,对数据进行切分,从而得到多个片段,然后可以对数据进行回填,即,将数据中每个片段所表达的数据内容写入数据结构中,例如,可以写入map数据结构中。即,在从至少两个待对比系统的日志文件中采集数据之后,可以所述对采集的数据进行正则过滤,确定出需进行对比的数据,作为目标数据;按照预设的规则,将所述目标数据转换为标准化数据。
在本例中还提供了对业务问题进行查询的功能,具体的,在根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题之后,可以显示所述业务问题,即,可以是响应于用户的查询操作,根据预设的键值与业务问题之间的对应关系,以及计算出的差异度结果,确定哪些业务出现了问题,即,出现了哪些业务问题。
上述的数据处理方法,可以通过jstorm处理框架实现,对于jstorm处理框架而言,除了系统故障异常退出外,是会一直运行的,因此,可以支持实时数据分析的需求。
在本例中,还提供了一种数据处理系统,如图4所示,可以包括:web服务、配置管理模块、数据处理模块、match(匹配)模块、规则引擎模块、数据统计模块和实时搜索模块,下面对这几个模块说明如下:
1)web服务,用于提供用户交互界面,使得用户可以更好地接入,以提高系统的易用性;
2)配置管理模块,用于管理系统的各种配置规则,为系统运行提供配置和规则支持;
3)数据处理模块(spout),用于根据业务规则对数据进行过滤、解析日志、统一数据格式,从而为下游提供标准化的数据;
4)match模块(matchbolt),用于根据预设的业务规则,对来自多个不同系统的数据进行归并聚合计算,从而为下游规则引擎提供标准化的数据;
5)规则引擎模块(ruleenginebolt),用于根据预设的业务规则,做差异度(diff)计算,并将diff运算结果写入数据库中。
6)数据统计模块,用于实时统计各模块处理的数据数量,从而为用户提供直观的系统运行状态;
7)实时搜索模块,用于根据规则引擎模块输出的数据以及配置的规则字段实时搜索反馈定位相关日志。
以一个具体实例说明如下,可以包括如下步骤:
s1:将待对比的多个系统的日志数据,通过mateq以string类型字符串的方式进行采集;
s2:根据预设的规则,对采集到的数据进行过滤(例如,过滤掉不需要对比的数据),然后,将数据进行切分,按照统一的规则解析成标准化数据,例如,解析为如下格式的数据:map<string,object>;
s3:根据预设规则,对数据进行归并计算,即,将来自不同系统的数据,按照键写入同一数据结构中,从而形成标准化的数据。例如,该标准化数据可以表示为:
map<string,list<map<string,map<string,object>>>>
s4:根据预设规则进行差异度计算,具体的,可以将计算得到的差异化结果生成标准的do(field,key,tag,value,type,size),然后,将需要记录的差异度结果写入数据库中。
上述的数据处理系统,可以是基于jstorm的实时的流式处理框架的,在该框架下,所有的操作都是基于规则,且这些规则可以是用户根据需求进行配置的。假设现在有n个系统需要做相互的数据对比,即,可以如图2所示,系统1……系统n,可以通过metaq从这些系统采集数据,然后,对这些数据进行初始化处理、加载规则、拉取日志,然后对数据进行正则过滤,以确定出哪些数据需要进行比对,哪些数据不需要进行比对,对于不需要进行比对的数据,就过滤掉。在过滤之后,可以通过日志解析模块,基于切分规则对数据进行切分,将数据切分为多个片段,然后可以对数据进行回填,即,将数据中每个片段所表达的数据内容写入数据结构中,即,写入map数据结构中。
对于写入map数据结构的数据被传入match处理模块,在match处理模块,先对数据进行初始化处理,然后基于加载规则,对初始化后的数据进行加载,在加载之后,可以对数据进行聚合归并处理,具体的,可以按照key(键值)和时间戳,将来自不同系统的对应同一key的数据放到一起,写入数据结构中。
进一步的,考虑到系统会出现正常的网络延迟,或者重启等问题,这将导致数据无法第一时间达到match数据处理模块,为此,可以引入滑动窗口的策略,以便扩展需对比数据记录的生命周期,从而避免因为正常的系统或者网络延迟导致的两路或者多路对比数据无法完成配对的现象。如果在窗口期内仍旧没法办法完成配对,那么系统可以重试,如果重试预定次数(例如:3次),仍旧无法完成配对,那么可以为该数据打上lack标签,并将其直接发送给下游,并记录为丢消息错误类型。即使在之后的时间内,丢失的数据记录过来了,仍旧记录为丢消息错误类型,因为考虑到实时系统的性能需求,超时太久也是不能接受的。
将match数据处理模块出来的数据写入规则引擎模块,在该模块,基于预设的规则对数据进行diff计算。考虑到在计算之后,需要对diff计算结果进行存储,如果对所有diff数据都进行存储,显然是不合理的,为此,可以设置一个存储条件。例如,假设数据为数值型,表征的是人民币的差额,过小的差额可以忽略不计,例如:1块、2块这种都可以忽略不计,在超额超出20块的情况下,才有记录的必要,那么就可以设置阈值为20块,在差异度计算的结果超出20,才进行记录,即,对于这种满足记录条件的数据才写入数据库中。
对于写入数据库中的差异度数据,可以是按照键值对的方式写入的,这样对于用户而言,可以根据记录的键值对,查找到是日志中的那些数据发生的错误,从而可以实现调整。
为了实现对数据的有效分析和和对系统的大盘维度的分析,还可以记录如下的数据,以模块的级别汇总到数据库中:
1)接入模块:产出指标可以包括:total(数据输入总量),filterd(数据正则过滤总量),transmit(数据发送到下游总量);公式可以包括:瞬时数据:total=filterd transmit;
2)match模块:产出指标可以包括:total(上游数据输入总量),matchfull(完全匹配记录数量),matchlack(未完成匹配的数量),waitsize(窗口期中的记录数量),transmit(发送到下游总量);公式可以包括:瞬时数据:total=matchfull*size(几路输入) matchlack waitsize=transmit waitsize;transmit=matchfull matchlack
3)ruleengine模块:产出指标可以包括:total(上游数据总量),ok-count(正确的记录数量),error-count(错误的记录数量),lack-count(未满配的数量),overthresholdcount(满配的记录对,diff值超出了阂值的记录数量),fieldtotal(每条记录的需要对比的指标数量);公式可以包括:瞬时数据:total=okcount errorcount=okcount lackcount overthreasholdcount;
上下游数据公式:接入模块transmit=match模块total、match模块transmit=ruleengine模块total。
同时可以记录和查询细粒度的diff数据,即,可以通过web页面排序后详细展示,例如,可以先纵向该指标在一天内按照diff降序排序,再横向指定某个计划id横向展示历史数据。
即,上述数据处理方法可以包括如下步骤:
s1:jstorm集群top中,spout层接收tt/metaq/drc等数据源,根据用户配置的规则,先正则过滤日志,解析日志,最终生成数据结构为map<string,object>的数据;
s2:matchbolt层接收spout层发送的消息,根据用户配置的match规则进行match,生成数据结构为map<string,list<map<string,map<string,object;>>的数据,发送给ruleenginebolt层,对于超时仍未match成功的数据,会重发消息重试,直到重试三次为止,如果三次之后仍未匹配到,则将数据直接传送给;
s3:ruleenginebolt层收到上游的数据后,启动drools规则引擎,通过用户配置的规则,最终得出diff数据;
s4:web服务实时反馈模块统计的数据以及s3中所得到的分析结果,同时可以通过s3中得到的分析结果与用户配置的目标日志路径进行匹配,定位出问题日志的范围,实时反馈到页面上。
在实现的过程中,用户可以对上述系统进行配置,具体的,可以但不限于进行如下配置:
1)用户通过web页面设置jstorm的topo配置项,主要指标可以包括:team、member、flag等,分表表示:团队、成员名和topo的别名。
2)用户设置接入层配置,主要指标可以包括:数据源name、并发度、是否需要调用hsf服务、采集类型。
3)用户设置数据源配置,主要指标可以包括:数据源name、队列长度、超时时间、连接信息,以及是否要ack等。
4)用户设置数据统一格式,主要指标可以包括:过滤规则、切分规则、并发数量。
5)用户设置match规则,用于进行多路数据的match,主要指标可以包括:matchkey、size、超时时间和队列大小。
6)用户设置ruleengine规则表,用于产出细粒度diff数据,主要指标可以包括:size(标志几路输入)、base(标志哪一路输入作为基线版本)、condition(对比指标,数值型diff绝对值在多大范围内需记录落db,字符型diff指定子串长度)。
在实现的过程中,因为业务方或者是平台的使用者知晓自己需要对比的数据,以及所依赖的业务数据,且知道这些业务日志分布在哪些机器上,以及具体的路径。因此,在将差异度结果写入数据库时,用户可以根据键值(或者是差异度对比结果中的主字段),直接在业务日志中搜索定位。
对于上述的数据处理系统,可以采用跨天旋转和日切的策略,在每天的凌晨零点零秒,系统都将数据从0开始重新计算,前一天的数据不会累计到第二天,从而确定每天的数据都是干净的数据。在遇到系统修复重新上线重启的时候,可以通过点位管理模块回追重启前所丢掉的数据,因此,在重启后的第一时间,系统统计的数据量会高于正常运行时间,在回追结束之后,数据统计进行正常状态。
在上例中,考虑到系统的网络传输时延或者是正常的系统开销,引入了滑动窗口的概念,将单纯的点操作转化为线操作,避免了因为正常开销产生的对比字段缺失而无法匹配的现象。即,对于实时流入的上游数据,通过点位管理与断点续传机制确保系统重启后能准确找到上次中断的流量,并再次开始对比超时重试机制,针对没有及时匹配的记录,在超出窗口期后,系统会重发以便找到对应的记录副本进行对比搜索引擎与实时反馈,通过时间以及diff的关键字段在对应的日志记录中快速排查。
通过上述的数据处理系统,实现了平台化和产品化,系统可以支持metaq,可以支持上游数据源,同时对于需对比的上游数据源数量也没有限制,可支持2对及以上多个数据源的比对。进一步的,实现了高度抽象的数据模型,基于规则的引擎,用户只需关注业务数据本身。因为采用了jstorm的流式处理框架,实时性程度更高,动态实时得到对比分析结果,同时可实时检索定位至相关日志,用户体验更好,排查问题更高效,且提供了完整的ui设计,集配置与反馈一体,具有更好的易用性。
本申请实施例所提供的方法实施例可以在服务器、移动终端、计算机终端或者类似的运算装置中执行。以运行在服务器端为例,图5是本发明实施例的一种数据处理方法的服务器端的硬件结构框图。如图5所示,服务器端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述数据处理系统,可以如图6所示,包括:
采集模块601,用于从至少两个待对比系统的日志文件中采集数据;
匹配模块602,用于按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
规则引擎模块603,用于对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
搜索模块604,用于根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
在一个实施方式中,上述匹配模块602可以包括:放置单元,用于将对应同一键值的数据放置同一数据结构中;第一确定单元,用于确定对应同一键值的数据的数量是否达到待对比系统的个数;第二确定单元,用于在确定未达到所述待对比系统的个数的情况下,确定等待时间是否达到预设时长;第三确定单元,用于在所述等待时间达到所述预设时长,且对应同一键值的数据的数量未达到所述待对比系统的个数的情况下,确定数据错误。
在一个实施方式中,上述规则引擎模块603可以包括:第四确定单元,用于确定各个差异度结果是否超出预设的差异阈值;写入单元,用于将超出差异阈值的差异度结果写入所述数据库中。
在一个实施方式中,上述数据处理系统还可以包括:数据处理模块,用于在从至少两个待对比系统的日志文件中采集数据之后,对采集的数据进行正则过滤,确定出需进行对比的数据,作为目标数据;按照预设的规则,将所述目标数据转换为标准化数据。
在一个实施方式中,上述数据处理系统还可以包括:显示模块,用于在根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题之后,显示所述业务问题。
在从至少两个待对比系统的日志文件中采集数据后,按照键值对采集的数据进行归并聚合处理,在确定出数据之间的差异度之后,再将差异度结果写入数据库中,基于键值就可以实现对业务问题的分析确定,因是直接从业务系统获取的数据,因此,在数据写入数据库之前就可以对归并聚合处理后的数据进行差异度计算,并将满足要求的差异度结果写入数据库中,从而使得可以基于键值查找到对应的问题数据,且是在数据写数据库之前进行的操作,实时性更高。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
1.一种数据处理方法,其特征在于,所述方法包括:
从至少两个待对比系统的日志文件中采集数据;
按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
2.根据权利要求1所述的方法,其特征在于,按照键值对采集的数据进行归并聚合处理,包括:
将对应同一键值的数据放置同一数据结构中;
确定对应同一键值的数据的数量是否达到待对比系统的个数;
在确定未达到所述待对比系统的个数的情况下,确定等待时间是否达到预设时长;
在所述等待时间达到所述预设时长,且对应同一键值的数据的数量未达到所述待对比系统的个数的情况下,确定数据错误。
3.根据权利要求1所述的方法,其特征在于,将满足预设要求的差异度结果写入数据库中,包括:
确定各个差异度结果是否超出预设的差异阈值;
将超出差异阈值的差异度结果写入所述数据库中。
4.根据权利要求1所述的方法,其特征在于,在从至少两个待对比系统的日志文件中采集数据之后,所述方法还包括:
对采集的数据进行正则过滤,确定出需进行对比的数据,作为目标数据;
按照预设的规则,将所述目标数据转换为标准化数据。
5.根据权利要求1所述的方法,其特征在于,在根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题之后,还包括:
显示所述业务问题。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述待对比系统包括以下至少之一:线上的主系统、线上的备用系统、待上线的主系统、待上线的备用系统。
7.根据权利要求1至5中任一项所述的方法,其特征在于,上述方法通过jstorm处理框架实现。
8.一种数据处理系统,其特征在于,包括:
采集模块,用于从至少两个待对比系统的日志文件中采集数据;
匹配模块,用于按照键值对采集的数据进行归并聚合处理,其中,所述键值用于唯一标识一条数据;
规则引擎模块,用于对归并聚合处理后的数据进行差异度计算,并将满足预设要求的差异度结果写入数据库中;
搜索模块,用于根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题。
9.根据权利要求8所述的系统,其特征在于,所述匹配模块包括:
放置单元,用于将对应同一键值的数据放置同一数据结构中;
第一确定单元,用于确定对应同一键值的数据的数量是否达到待对比系统的个数;
第二确定单元,用于在确定未达到所述待对比系统的个数的情况下,确定等待时间是否达到预设时长;
第三确定单元,用于在所述等待时间达到所述预设时长,且对应同一键值的数据的数量未达到所述待对比系统的个数的情况下,确定数据错误。
10.根据权利要求8所述的系统,其特征在于,所述规则引擎模块包括:
第四确定单元,用于确定各个差异度结果是否超出预设的差异阈值;
写入单元,用于将超出差异阈值的差异度结果写入所述数据库中。
11.根据权利要求8所述的系统,其特征在于,还包括:
数据处理模块,用于在从至少两个待对比系统的日志文件中采集数据之后,对采集的数据进行正则过滤,确定出需进行对比的数据,作为目标数据;按照预设的规则,将所述目标数据转换为标准化数据。
12.根据权利要求8所述的系统,其特征在于,还包括:
显示模块,用于在根据键值与业务问题之间的对应关系,确定差异度结果所对应的业务问题之后,显示所述业务问题。
13.一种终端设备中,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至7中任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至7中任一项所述方法的步骤。
技术总结