发明内容
本申请的目的在于提供一种数据仓库数据异常的预检测方法和设备,在当前规则配置下的在线数据和离线基础数据的对比,对数据异常进行预判,进而避免由于发现数据异常的滞后性而引起的不可挽回的损失,同时还节省了对异常数据进行修复时而产生的不必要的成本。
一方面,本申请实施例提出了一种数据仓库数据异常的预检测方法,所述方法包括:
服务器根据预设的同步周期,将当前的在线数据同步到数据仓库中,作为待检测的基础数据;
所述服务器判断所述待检测的基础数据与上一个同步周期的基础数据是否相同;
如果判断结果为否,所述服务器根据前一个打分周期的处理规则,对所述待检测的基础数据生成模拟应用数据;
所述服务器判断所述模拟应用数据与所述前一个打分周期的应用数据是否相同;
如果判断结果为否,所述服务器确定数据仓库数据异常。
优选的,在当前的同步周期为当前的打分周期内的第一个同步周期时,所述服务器判断所述待检测的基础数据与上一个同步周期的基础数据是否相同,具体为:
所述服务器使用当前打分周期的第一个同步周期的待检测的基础数据与上一个打分周期的最后一个同步周期的基础数据进行对比,判断两者是否相同。
优选的,所述服务器判断所述待检测的基础数据与上一个同步周期的基础数据是否相同之后,还包括:
如果判断结果为是,所述服务器确定数据仓库数据正常。
优选的,所述服务器判断所述模拟应用数据与所述前一个打分周期的应用数据是否相同之后,还包括:
如果判断结果为是,所述服务器确定数据仓库数据正常,并发送包含有用于告知基础数据变化情况、所述模拟应用数据与所述前一个打分周期的应用数据的通知消息。
优选的,所述服务器确定数据仓库数据异常之后,还包括:
所述服务器发送数据异常的告警信息。
另一方面,本申请实施例还提出了一种服务器,,包括:
同步模块,用于根据预设的同步周期,将当前的在线数据同步到数据仓库中,作为待检测的基础数据;
第一判断模块,用于判断所述同步模块所同步的待检测的基础数据与上一个同步周期的基础数据是否相同;
生成模块,用于在所述第一判断模块的判断结果为否时,根据前一个打分周期的处理规则,对所述待检测的基础数据生成模拟应用数据;
第二判断模块,用于判断所述生成模块所生成的模拟应用数据与所述前一个打分周期的应用数据是否相同;
确定模块,用于在所述第二判断模块的判断结果为否时,确定数据仓库数据异常。
优选的,所述第一判断模块,还用于:
在在当前的同步周期为当前的打分周期内的第一个同步周期时,使用当前打分周期的第一个同步周期的待检测的基础数据与上一个打分周期的最后一个同步周期的基础数据进行对比,判断两者是否相同。
优选的,所述确定模块,还用于:
在所述第一判断模块的判断结果为是时,确定数据仓库数据正常。
优选的,所述确定模块,还用于:
在所述第二判断模块的判断结果为是时,确定数据仓库数据正常,并发送包含有用于告知基础数据变化情况、所述模拟应用数据与所述前一个打分周期的应用数据的通知消息。
优选的,所述确定模块,还用于:
在确定数据仓库数据异常之后,发送数据异常的告警信息。
与现有技术相比,本申请实施例所提出的技术方案具有以下技术进步:
通过应用本申请实施例所提出的技术方案,服务器将当前的在线数据同步到数据仓库中作为待检测的基础数据,与之前的离线数据进行对比,并在基础数据出现变化的情况下,按照之前的处理规则生成模拟应用数据,进一步通过与之前的应用数据进行对比,来确定数据是否异常,从而,服务器可以对数据异常进行预判,而待检测的基础数据和模拟应用数据均为预生成的数据,可以有效的避免由于发现数据异常的滞后性而引起的不可挽回的损失,同时还节省了对异常数据进行修复时而产生的不必要的成本。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的其他实施例,都属于本申请保护的范围。
本申请实施例提出了一种数据仓库数据异常的预检测方法,其流程示意图如图1所示,该方法包括以下步骤:
步骤S101,服务器根据预设的同步周期,将当前的在线数据同步到数据仓库中,作为待检测的基础数据。
具体的,在线数据同步到所述服务器中的数据仓库中作为待检测的基础数据,以使所述服务器后续可以根据相应的处理规则,将基础数据转换为应用数据。需要指出的是,如果按照正常的数据处理流程,当前的在线数据是无需在此时同步到数据仓库的,因此,本实施例所提出的技术方案是在进行预先判定,可以避免后置判定在出现错误后才进行进行修改和恢复所导致的资源浪费和处理效率降低。
如果打分周期以天为单位,即今天的处理规则所生成的结果实际上需要到明天才可以完全呈现,如果到那时再进行数据校验发现错误,则进行错误数据恢复等操作必然导致额外操作程序的增加和处理资源的浪费。
而由于在线数据为人工配置数据,所以,为了可以尽早发现由于人为原因或其他原因造成的配置的在线数据是错误的情况,所述服务器按照预设的同步周期将当前的在线数据同步到数据仓库中,所述服务器就可以提前对当前的在线数据进行相应的处理。
在实际的应用场景中,所述预设的同步周期可以为1小时,所述服务器以1小时为单位将在线数据同步到所述数据仓库中,例如:所述服务器将2点-3点所对应的在线数据同步到所述数据仓库中并进行相应的检测处理,在3点-4点时,所述服务器将3点-4点所对应的在线数据同步到所述数据仓库中并进行相应的检测处理,以此类推,直到所述服务器将当天的在线数据都同步到所述数据仓库中并完成相应的检测处理,这样,就能够在第一时间检测到在线数据的异常,在在线数据发生变化时也能尽早发现。当然,打分周期和同步周期还可以以秒、小时、周、月、年等位单位,具体的打分周期和同步周期的长度可以根据在线数据变化的快慢或具体处理数据对象的类型确定,例如:具体处理的数据对应的类型是天气时打分周期可以以年为单位,但始终需要保证的是同步周期小于打分周期。
其中,所述服务器将为当前页面数据对象配置的在线数据同步到数据仓库中时,无论所述预设时间的单位是多少,当天打分规则的开始时间是以0点为起点的,如果以5小时为单位,那么一天24中,最后4小时为一个单位,即把一天分为5个单位,分别为:0点-5点、5点-10点,10点-15点,15点-20点,20点-24点。
步骤S102,所述服务器判断所述待检测的基础数据与上一个同步周期的基础数据是否相同。
其中,在当前的同步周期为当前的打分周期内的第一个同步周期时,本步骤的处理过程具体为:
所述服务器使用当前打分周期的第一个同步周期的待检测的基础数据与上一个打分周期的最后一个同步周期的基础数据进行对比,判断两者是否相同。
具体的,如果打分周期以天为单位,所述预设的同步周期以1小时为单位,则在所述当前单位时间为2点-3点时,所述服务器获取2点-3点所对应的在线数据,同时还要获取1点-2点所对应的已被同步的在线数据,所述服务器用2点-3点所对应的在线数据和1点-2点所对应的在线数据进行对比,如果两个数据不同时,则可以判定2点-3点所对应的在线数据发生了变化,即配置了新的在线数据。
如果当前时间为0点-1点时,所述服务器获取的是当前0点-1点所对应的在线数据和昨天23点-24点所对应的已被同步的在线数据并进行对比。
如果判断结果为否,即在线数据发生变化,说明为当前配置的在线数据发生变化,并需要进一步判断为当前在线数据是否有错误,执行步骤S103;如果判断结果为是,即在线数据没有发生变化,说明为当前在线数据没有发生变化,执行步骤S106,并不做任何处理。
步骤S103,所述服务器根据前一个打分周期的处理规则,对所述待检测的基础数据生成模拟应用数据。
步骤S104,所述服务器判断所述模拟应用数据与所述前一个打分周期的应用数据是否相同。
具体的打分周期以天为例,在发现当前被同步的在线数据发生变化时,需要进一步验证当前被同步的在线数据是否是配置错误的,具体的,如果当前2点-3点对应的被同步的在线数据发生变化,需要使用前一个打分周期(即昨天)的处理规则将当前被同步的在线数据生成模拟应用数据,这里之所以称之为模拟应用数据,是因为这样的处理是预判操作,不会实质性的生成应用数据的结果,所以,相应的操作只是模拟操作。
通过上述的操作,如果2点-3点对应的被同步的在线数据是配置正确的在线数据的话,那么,2点-3点对应的被同步的在线数据在通过昨天的处理规则进行模拟处理之后所生成的模拟应用数据,应与昨天真正生成的应用数据相一致,即如果本步骤的判断结果为是,则执行步骤S106。
相反,则表示当前被同步的在线数据是配置错误的,即如果本步骤的判断结果为否,则执行步骤S105。
其中,所述服务器在前一个打分周期结束之后就可以获取到前一个打分周期真正生成的应用数据,以便在判断模拟应用数据与前一个打分周期的应用数据是否相同时使用,这样可以使服务器只获取一次应用数据就能再后续的整个打分周期内使用,当然,所述服务器也可以在当前打分周期发现数据发生变化时获取,即在步骤S102判断结果为否时才去获取前一个打分周期的应用数据,具体获取方案可以根据实际情况确定,但是所有的获取时机均属于本申请的保护范围。
步骤S105,所述服务器确定数据仓库数据异常。
在实际的应用场景中,本步骤被执行后,所述服务器还需要发送数据异常的告警信息,所述告警信息中包含有用于告知基础数据变化情况、所述模拟应用数据与所述前一个打分周期的应用数据。
步骤S106,所述服务器确定数据仓库数据正常。
如果是在步骤S104之后执行本步骤,则所述服务器需要发送包含有用于告知基础数据变化情况的通知消息。
与现有技术相比,本申请实施例所提出的技术方案具有以下技术进步:
通过应用本申请实施例所提出的技术方案,服务器将当前的在线数据同步到数据仓库中作为待检测的基础数据,与之前的离线数据进行对比,并在基础数据出现变化的情况下,按照之前的处理规则生成模拟应用数据,进一步通过与之前的应用数据进行对比,来确定数据是否异常,从而,服务器可以对数据异常进行预判,而待检测的基础数据和模拟应用数据均为预生成的数据,可以有效的避免由于发现数据异常的滞后性而引起的不可挽回的损失,同时还节省了对异常数据进行修复时而产生的不必要的成本。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例所提出的技术方案在一种具体实施例场景中的实现流程的示意图如图2所示,具体的操作流程如下:
首先,需要指出的是,在本实施例所提出的应用场景中,在线(online)数据为模型打分的规则配置表,离线(offline)基础数据就是该规则配置表对应到数据仓库的表,离线(offline)应用数据则是根据离线基础数据产出的模型打分结果。
在后续说明中,T+0表示当前时间,T+1表示明天,以此类推,H+1表示当前小时之后的一个小时,相应的,打分周期设置为一天,同步周期为一小时。
步骤S201、首先,服务器将当前的规则配置表(今天),即当前的在线数据,按照每小时一个同步周期的频率,同步到数据仓库对应表中,作为离线基础数据,由于是预处理,该离线基础数据标识为离线基础数据(H+1),即前文所述的待检测的基础数据。
步骤S202、服务器将离线基础数据(H+1)与上一小时的离线基础数据进行比对。
如果没有变化,则没有异常变动,确定数据正常,不返回报警;如果有变化,则执行步骤S203。
步骤S203、服务器根据数据仓库对应表中的离线基础数据(H+1),按照昨天的处理规则,模拟生成昨天的模型打分结果,即模拟的离线(Offline)应用数据(昨天),也即前文所述的模拟应用数据。
步骤S204、比对模拟的离线(Offline)应用数据(昨天)和实际已存在的离线(Offline)应用数据(昨天)。
若没变化,则只告知规则变动情况;
若有变化,则告知规则变化及由此带来的离线应用数据变动情况。
与现有技术相比,本申请实施例所提出的技术方案具有以下技术进步:
通过应用本申请实施例所提出的技术方案,服务器将当前的在线数据同步到数据仓库中作为待检测的基础数据,与之前的离线数据进行对比,并在基础数据出现变化的情况下,按照之前的处理规则生成模拟应用数据,进一步通过与之前的应用数据进行对比,来确定数据是否异常,从而,服务器可以对数据异常进行预判,而待检测的基础数据和模拟应用数据均为预生成的数据,可以有效的避免由于发现数据异常的滞后性而引起的不可挽回的损失,同时还节省了对异常数据进行修复时而产生的不必要的成本。
基于与上述方法同样的申请构思,本申请还提出了一种服务器,其结构示意图如图3所示,该服务器包括:
同步模块31,用于根据预设的同步周期,将当前的在线数据同步到数据仓库中,作为待检测的基础数据;
第一判断模块32,用于判断所述同步模块31所同步的待检测的基础数据与上一个同步周期的基础数据是否相同;
生成模块33,用于在所述第一判断模块32的判断结果为否时,根据前一个打分周期的处理规则,对所述待检测的基础数据生成模拟应用数据;
第二判断模块34,用于判断所述生成模块33所生成的模拟应用数据与所述前一个打分周期的应用数据是否相同;
确定模块35,用于在所述第二判断模块34的判断结果为否时,确定数据仓库数据异常。
在具体的应用场景中,所述第一判断模块32,还用于:
在在当前的同步周期为当前的打分周期内的第一个同步周期时,使用当前打分周期的第一个同步周期的待检测的基础数据与上一个打分周期的最后一个同步周期的基础数据进行对比,判断两者是否相同。
在具体的应用场景中,所述确定模块35,还用于:
在所述第一判断模块32的判断结果为是时,确定数据仓库数据正常。
进一步的,所述确定模块35,还用于:
在所述第二判断模块34的判断结果为是时,确定数据仓库数据正常,并发送包含有用于告知基础数据变化情况的通知消息。
进一步的,所述确定模块35,还用于:
在确定数据仓库数据异常之后,发送数据异常的告警信息,所述告警信息中包含有用于告知基础数据变化情况、所述模拟应用数据与所述前一个打分周期的应用数据。
与现有技术相比,本申请实施例所提出的技术方案具有以下技术进步:
通过应用本申请实施例所提出的技术方案,服务器将当前的在线数据同步到数据仓库中作为待检测的基础数据,与之前的离线数据进行对比,并在基础数据出现变化的情况下,按照之前的处理规则生成模拟应用数据,进一步通过与之前的应用数据进行对比,来确定数据是否异常,从而,服务器可以对数据异常进行预判,而待检测的基础数据和模拟应用数据均为预生成的数据,可以有效的避免由于发现数据异常的滞后性而引起的不可挽回的损失,同时还节省了对异常数据进行修复时而产生的不必要的成本。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。