数据校验方法和装置
技术领域
本申请涉及计算机互联网技术领域,特别涉及一种数据校验方法及装置。
背景技术
在处理互联网业务的系统中,数据出现异常的情况时有发生。
系统中的数据在使用和存储等过程中都有可能出现异常。例如:系统错误的使用数据,进而导致使用后的数据出现异常;系统将数据向磁盘存储过程中磁盘发生故障,进而导致存储后的数据出现异常等。这些系统的数据出现异常,可能会对公司造成不必要的损失。
现有技术中,一般是在数据出现异常一段时间后由日志监控到数据存在异常或者有用户反映出现异常,才能发现数据出现异常。
综上所述,现有技术中存在不能及时发现数据出现异常的问题。
发明内容
本申请实施例的目的是提供一种数据校验方法及装置,用以解决现有技术中存在不能及时发现数据出现异常的问题。
为解决上述技术问题,本申请实施例提供了:
一种数据校验方法,包括:
校验模块获取子系统的数据,并向数据质量系统发送所述数据;
数据质量系统根据接收的所述数据得到数据模型;
数据质量系统获取所述数据模型的校验规则及所述校验规则中的数据变量;
校验模块从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量;
校验模块获取所述子系统的数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
一种数据校验方法,包括:
校验模块获取子系统的数据,并向数据质量系统发送所述数据;
数据质量系统根据接收的所述数据得到数据模型;
数据质量系统获取所述数据模型的校验规则及所述校验规则中的数据变量;
校验模块从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量;
校验模块获取所述子系统的数据变量的实际值,并向所述数据质量系统发送所述数据变量的实际值;
数据质量系统接收所述数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
一种数据校验方法,包括:
获取子系统的数据,并向数据质量系统发送所述数据;
从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量;
获取所述子系统的数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
一种数据校验方法,包括:
获取子系统的数据,并向数据质量系统发送所述数据;
从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量;
获取所述子系统的数据变量的实际值;
向所述数据质量系统发送所述数据变量的实际值。
一种数据校验方法,包括:
接收校验模块发送的子系统的数据;
根据所述数据得到数据模型;
获取所述数据模型的校验规则及所述校验规则中的数据变量;
接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求;
向所述校验模块发送所述校验规则及所述校验规则中的数据变量。
一种数据校验方法,包括:
接收校验模块发送的子系统的数据;
根据所述数据得到数据模型;
获取所述数据模型的校验规则及所述校验规则中的数据变量;
接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求;
向所述校验模块发送所述校验规则及所述校验规则中的数据变量;
接收所述校验模块发送的所述数据变量的实际值;
判断所述数据变量的实际值是否符合所述校验规则。
一种数据校验装置,包括:
第一获取单元,用于获取子系统的数据;
第一发送单元,用于向数据质量系统发送所述数据;
第二获取单元,用于从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量;
第三获取单元,用于获取所述子系统的数据变量的实际值;
第一判断单元,用于判断所述数据变量的实际值是否符合所述校验规则。
一种数据校验装置,包括:
第四获取单元,用于获取子系统的数据;
第二发送单元,用于向数据质量系统发送所述数据;
第五获取单元,用于从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量;
第六获取单元,用于获取所述子系统的数据变量的实际值;
第三发送单元,用于向所述数据质量系统发送所述数据变量的实际值。
一种数据校验装置,包括:
第一接收单元,用于接收校验模块发送的子系统的数据;
第一生成单元,用于根据所述数据得到数据模型;
第七获取单元,用于获取所述数据模型的校验规则及所述校验规则中的数据变量;
第二接收单元,用于接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求;
第四发送单元,用于向所述校验模块发送所述校验规则及所述校验规则中的数据变量。
一种数据校验装置,包括:
第三接收单元,用于接收校验模块发送的子系统的数据;
第二生成单元,用于根据所述数据得到数据模型;
第八获取单元,用于获取所述数据模型的校验规则及所述校验规则中的数据变量;
第四接收单元,用于接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求;
第五发送单元,用于向所述校验模块发送所述校验规则及所述校验规则中的数据变量;
第五接收单元,用于接收所述校验模块发送的所述数据变量的实际值;
第二判断单元,用于判断所述数据变量的实际值是否符合所述校验规则。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的一种数据校验方法及装置。工作人员通过数据质量系统可以对业务系统中子系统编写校验规则;获取校验规则后,集合获取的数据变量的实际值,可以判断所述数据变量的实际值是否符合校验规则。这样,可以实时监控业务系统中子系统的数据是否出现异常。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中提供的数据校验的系统架构图;
图2为本申请一实施例中提供的数据校验方法的流程图;
图3为本申请一实施例中提供的S240的具体流程图;
图4为本申请一实施例中提供的数据校验方法的流程图;
图5为本申请一实施例中提供的数据校验方法的流程图;
图6为本申请一实施例中提供的数据校验方法的流程图;
图7为本申请一实施例中提供的子系统示意图;
图8为本申请一实施例中提供的数据校验方法的流程图;
图9为本申请一实施例中提供的数据校验方法的流程图;
图10为本申请一实施例中提供的校验模块为主体的示意图;
图11为本申请一实施例中提供的校验模块为主体的示意图;
图12为本申请一实施例中提供的校验模块为主体的示意图;
图13为本申请一实施例中提供的校验模块为主体的示意图;
图14为本申请一实施例中提供的校验模块为主体的示意图;
图15为本申请一实施例中提供的数据质量系统为主体的示意图;
图16为本申请一实施例中提供的数据质量系统为主体的示意图;
图17为本申请一实施例中提供的数据质量系统为主体的示意图;
图18为本申请一实施例中提供的数据质量系统为主体的示意图;
图19为本申请一实施例中提供的数据质量系统为主体的示意图;
图20为本申请一实施例中提供的数据校验装置的模块示意图;
图21为本申请一实施例中提供的数据校验装置的模块示意图;
图22为本申请一实施例中提供的数据校验装置的模块示意图;
图23为本申请一实施例中提供的数据校验装置的模块示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1为本申请实施例提供的数据校验的系统架构图。本实施例中,该系统可以包括业务系统10,数据质量系统20。
业务系统10,具体的可以包括:第一子系统11、第二子系统12。所述第一子系统11可以集成校验模块13,第二子系统12可以集成有校验模块14。
校验模块13和14,用于和数据质量系统20进行交互,对子系统的数据进行数据校验。
数据质量系统20,可以是服务器。用于与校验模块13进行交互,接收校验模块13的校验结果,在发现数据出现异常时发出警告。
数据质量系统20可以通过业务系统10中各个子系统集成的校验模块监控数据是否出现异常,在某个子系统的数据出现异常时,及时发出警告通知工作人员处理。
以下结合图1所示的例子介绍本申请一种数据校验的方法的实施例,如图2所示,包括:
S200:校验模块获取子系统的数据,并向数据质量系统发送所述数据。
具体的,业务系统在收集数据时,可以通过各个子系统中集成的校验模块获取数据,并可以通过例如日志或拦截器等方式向数据质量系统发送所述数据。
所述数据可以包括统一资源定位符(Uniform Resource Locator,url)数据,远程过程调用协议(Remote Procedure Call Protocol,rpc)数据数据访问对象(Data AccessObject,dao)数据,消息(message)数据中的一个或多个。
举例说明,一个支付业务系统,在收集数据时,通过校验模块获取了三组具有调用关系的子系统的数据,例如获取第一子系统(收银台系统)的登录url数据;获取第二子系统(付款系统)的支付rpc数据;获取第三子系统(账务系统)的账务dao数据。
所述支付业务过程如下,用户执行支付操作,触发支付业务启动;首先第一子系统执行登录操作,若通过校验,则根据调用关系执行下一个子系统,这里指执行第二子系统;第二子系统执行付款操作,若通过校验,则根据调用关系执行下一个子系统,这里指执行第三子系统;第三子系统执行账务操作,若通过校验,则由于调用关系中上述子系统执行后结束,所以这里可以是支付业务系统流程结束。
S210:数据质量系统根据接收的所述数据得到数据模型。
数据质量系统接收到数据后,可以根据所述接收的数据生成各个子系统的数据模型。相应的,数据质量系统根据url数据可以得到url模型,根据rpc数据可以得到rpc模型,根据dao数据可以得到dao模型,根据消息数据可以得到消息模型等。具体的,rpc模型可以包含方法名、类名、参数、返回值等信息。
具体的,所述数据质量系统可以是通过提取数据中的子集部分(如参数子集、方法子集等),得到数据模型。所述数据模型包括参数(入参、返回值)、方法名、类名、url等。
沿用S200中的例子,数据质量系统接收所述三个子系统的数据,得到各组的数据模型如下:
第一子系统对应的数据模型为url模型,所述url模型中包含:
url地址为/app2/cachier/login.htm;
参数有:session,其中包含用户登录信息。
第二子系统对应的数据模型为rpc模型,所述rpc模型中包含:
方法为public void paymentFacade(Payment payCtx);
Payment类包含付款信息例如用户账户总金额、用户支付金额等。
第三子系统对应的数据模型为dao模型,所述dao模型中包含:
方法为public void accountFacade(Account act);
Account类包含账务信息例如用户账户总金额、用户支付金额、用户支付后账户余额等。
优选地,所述数据质量系统得到数据模型后,将所述数据模型在界面上展示。
S220:数据质量系统获取所述数据模型的校验规则及所述校验规则中的数据变量。
校验规则可以是用表达式语言(Expression Language)如SimpleEL编写的规则表达式,或者用自定义语言编写的脚本语言如java脚本,groovy脚本等。
具体的,所述数据质量系统获取数据模型的校验规则,可以是通过显示的可点选或可输入的界面元素,接收工作人员的输入操作,进而接收数据模型的校验规则。
优选地,所述校验规则的校验类型包括检查规则和熔断规则中的至少一种。所述检查类型规则例如包括:不管校验结果成功或失败,业务系统继续处理。所述熔断类型规则例如包括:如果校验结果失败,业务系统终止处理,反之业务系统继续处理。
具体的,工作人员在编写校验规则时可以预先选择校验规则的类型。
所述数据变量可以为所述校验规则中的参数。
具体的,数据质量系统获取数据变量,可以是通过显示的可点选或可输入的界面元素,接收工作人员的输出操作,进而接收数据变量。
优选地,数据质量系统可以根据校验规则得到数据变量。由于校验规则中的参数即为数据变量,而参数前会有“@”符号,数据质量系统可以获取校验规则中符号“@”后的参数作为数据变量。例如某一校验规则为len(@session.userid)=18,则数据质量系统可以获取“@”后的参数session.userid作为数据变量。
沿用S210中的例子,数据质量系统通过工作人员的输入操作获取数据模型的校验规则及数据变量如下:
第一子系统对应的数据模型的校验规则为len(@session.userid)=18(验证登录的用户id长度是否符合18位),所述校验规则为检查类型;数据变量为session.userid(用户的id长度)。
第二子系统对应的数据模型的校验规则为@payCtx.pay<@payCtx.user.account.total(表示验证支付金额是否小于于用户账户总金额),所述校验规则为检查类型;数据变量为payCtx.pay(支付金额),payCtx.user.account.total(账户总金额)。
第三子系统对应的数据模型的校验规则为@act.total=@act.pay+@act.remainder(验证用户账户总金额是否等于支付金额和账户余额之和),所述校验规则为检查类型;数据变量为act.total(账户总金额),act.pay(支付金额),remainder(账户余额)。
S230:校验模块从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量。
当业务系统启动时,各个子系统通过集成的校验模块向所述数据质量系统获取对应的数据模型的校验规则及所述校验规则的数据变量。
优选地,将所述校验规则及数据变量存储于子系统中。这样业务系统无需每次启动都从数据质量系统获取校验规则,避免了业务系统与数据质量系统之间频繁的数据交互,进而提高了系统运行性能。
沿用S220中的例子,当某一用户执行一个支付的操作,所述支付操作的业务系统启动,所述业务系统包括的第一子系统、第二子系统和第三子系统通过集成的校验模块向数据质量系统获取对应的数据模型的校验规则及所述校验规则中的数据变量,即:
第一子系统获取校验规则len(@session.userid)=18及数据变量session.userid;
第二子系统获取校验规则为@payCtx.pay<=@payCtx.user.account.total及数据变量payCtx.pay,payCtx.user.account.total;
第三子系统获取校验规则为@act.total=@act.pay+@act.remainder及数据变量act.total,act.pay,act.remainder。
S240:校验模块获取所述子系统的数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
如图3所示,S240,具体包括:
S241:校验模块通过拦截器监控子系统是否执行。
对于用java语言编写的如Srping、Structs框架的系统,校验模块可以通过java拦截器监控子系统是否执行。对于某些系统如使用rpc的系统,校验模块可以通过修改rpc组件实现拦截器监子系统的功能。
S242:若监控到子系统执行,通过反射方法获取所述子系统的数据变量的实际值。
对于用java语言编写的系统可以通过java反射得到所述子系统运行时所述数据变量的实际值。
对于用C或C++等语言编写的系统可以先得到所述子系统运行时全部数据的实际值,再遍历所述全部数据获取所述数据变量的实际值。
S243:判断所述数据变量的实际值是否符合所述校验规则。
沿用S230中的例子,当用户进行支付操作,触发支付业务启动;支付业务系统中第一子系统执行登录操作,当所述第一子系统中集成的校验模块通过java拦截器监控到所述第一子系统执行时;所述校验模块通过java反射方法获取session.userid的实际值为“abcdefg”,并且判断所述实际值是否符合执行校验规则。由于len(“abcdefg”)=7,不符合校验规则中的值18,因此校验结果为失败。由于校验类型为检查校验,所以完成登录操作(登录成功)并且业务继续执行;所述第一子系统传递登录信息给第二子系统使所述第二子系统执行付款操作。
第二子系统根据接收的登录信息例如用户id可以查询到用户本次支付操作的支付信息例如用户账户总金额、支付金额。当所述第二子系统中集成的校验模块通过java拦截器监控到所述第二子系统执行时,所述校验模块通过java反射方法获取payCtx.user.account.total实际值100、payCtx.pay实际值50;并且判断所述实际值是否符合校验规则。由于payCtx.pay的实际值50小于payCtx.user.account.total的实际值100,因此校验结果为成功。由于校验结果为成功,所以完成支付操作(用户账户预扣款50元)并且业务继续执行;所述第二子系统传递登录信息及支付信息给第三子系统使所述第三子系统执行账务操作。
第三子系统根据接收的登录信息例如用户id可以查询到用户当前账户的账户余额,根据支付信息可以获得用户的支付金额和账户总金额。当第三子系统的校验模块通过java拦截器监控到所述第三子系统执行时,所述校验模块通过java反射方法获取act.total的实际值100、act.pay的实际值50、act.remainder的实际值50,并且判断所述实际值是否符合校验规则。由于act.total的实际值100等于act.pay的实际值50和act.remainder的实际值50之和,因此校验结果为成功。由于校验结果为成功,所以完成账务操作(用户账户预扣款50元实际扣去,并生成用户账单)并且支付业务系统流程结束。
值得一提的是,若所述第一子系统对应的数据模型的校验规则的类型为熔断类型,则所述第一子系统执行后,由于校验结果为失败并且类型为熔断类型。则中断业务系统执行。相同的,所述第二子系统和第三子系统类似,此处不再赘述。
本实施例中,工作人员可以通过数据质量系统对业务系统中子系统编写校验规则;子系统中集成的校验模块获取校验规则后,集合获取的数据变量的实际值,可以判断所述数据变量的实际值是否符合校验规则。这样,可以实时监控业务系统中子系统的数据是否出现异常,在子系统中的校验结果为失败时说明数据出现异常时,工作人员可以及时处理。
上述本申请图2所示实施例基础上,如图4所示,还可以包括如下步骤:
S250:校验模块向所述数据质量系统发送校验结果。
沿用S240中的例子,所述第一子系统中集成的校验模块得到校验结果为失败后,还包括校验模块向所述数据质量系统发送所述校验结果。
所述第二子系统中集成的校验模块得到校验结果为成功后,还包括校验模块向所述数据质量系统发送所述校验结果。
所述第三子系统中集成的校验模块得到校验结果为成功后,还包括校验模块向所述数据质量系统发送所述校验结果。
S260:数据质量系统接收所述校验结果。
具体的,数据质量系统接收所述校验结果,若所述校验结果为失败,则发出告警。
沿用S250中的例子,数据质量系统接收第一子系统发送的校验结果。由于校验结果为失败,则发出告警,通知工作人员处理。
数据质量系统接收第二子系统发送的校验结果。由于校验结果为成功,则不发出告警。
数据质量系统接收第三子系统发送的校验结果。由于校验结果为成功,则不发出告警。
通过本实施例,是由数据质量系统监控子系统中数据是否出现异常,当数据出现异常即校验结果为失败时,可以及时通知工作人员处理。
上述本申请图2所示实施例基础上,如图5所示,还可以包括如下步骤:
S251:校验模块在校验结果为失败时,向所述数据质量系统发送校验结果。
沿用S240中的例子,所述第一子系统中集成的校验模块得到校验结果为失败后,由于校验结果为失败,所以向所述数据质量系统发送校验结果。
所述第二系统中集成的校验模块得到校验结果为成功后,由于校验结果为成功,不向所述数据质量系统发送校验结果。
所述第三子系统中集成的校验模块得到校验结果为成功后,由于校验结果为成功,不向所述数据质量系统发送校验结果。
S261:数据质量系统接收所述校验结果,发出告警。
沿用S251中的例子,数据质量系统接收第一子系统发送的校验结果,并发出告警,通知工作人员处理。
与上一实施例不同的是,本实施例中校验模块只有在校验结果为失败时,才向所述数据质量系统发送校验结果,数据质量系统无需判断,当接受校验结果后直接发出告警。通过采用校验时发送校验结果,可以减少校验模块与数据值类型之间的数据交互量,进而提高系统运行性能。
上述本申请图2所示实施例基础上,,在所述S200与S210之间还可以包括S201步骤,在所述S210与S220之间还可以包括S211步骤,以及在所述S220与S230之间还可以包括S221,如图6所示:
S201:校验模块生成所述子系统的标识,并向数据质量系统发送所述标识。
所述标识可以包括唯一的签名。
具体的,每个子系统对应有一个唯一的签名,所述签名可以根据各个子系统的id的通过MD5(Message-Digest Algorithm 5)或sha1(Secure Hash Algorithm,安全哈希算法)等计算得到。
如图7所示,业务系统有两条链路分别为第一链路60和第二链路70。第一链路60中包括第一子系统1、第二子系统2、第三子系统3、第四子系统4和第五子系统5。第二链路70中包括第六子系统6、第七子系统7和第八子系统8。值得一提的是,每条链路之间逻辑上是相互隔离、互不影响的,即链路之间是相互独立的,互不关联。但是,现实业务系统中往往存在不同链路可能共用某个相同的子系统的情况,所以可以对相同的子系统通过一定的逻辑标识id区分,如第三子系统3和第七子系统7可能是同一个子系统,但是在不同的链路中可以用不同的id标识加以区分。
优选地,为了区分同一条链路可能会存在多次调用的情况,系统对于每一次链路调用会有一个唯一标识StreamId。
相应地,所述签名可以根据各个子系统的id和链路的StreamId可以通过MD5或sha1计算得到。
S211:所述数据质量系统接收所述标识。
S221:所述数据质量系统将所述标识与所述校验规则及所述校验规则中的数据变量关联。
相应地,S230变为:校验模块从所述数据质量系统获取所述标识关联的校验规则及所述校验规则中的数据变量。
通过设置标识的方式,校验模块无需通过子系统对应的数据模型来获取校验规则,而是可以直接获取与标识关联的校验规则。这样可以更有效率的获取校验规则及数据变量,进而提高了系统性能。
以下结合图1所示的例子介绍本申请一种数据校验的方法的实施例,如图所8示,包括:
S300:校验模块获取子系统的数据,并向数据质量系统发送所述数据。
此步骤与S200类似,此处不再赘述。
S310:数据质量系统根据接收的所述数据得到数据模型。
此步骤与S210类似,此处不再赘述。
S320:数据质量系统获取所述数据模型的校验规则及所述校验规则中的数据变量。
此步骤与S220类似,此处不再赘述。
S330:校验模块从所述数据质量系统获取所述子系统对应的数据模型的校验规则及数据变量。
此步骤与S230类似,此处不再赘述。
S340:校验模块获取所述子系统的数据变量的实际值,向所述数据质量系统发送所述数据变量的实际值。
S350:数据质量系统接收所述数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
本实施例与上述实施例不同的是,S340中校验模块将获取的所述子系统的数据变量的实际值发送给数据质量系统,通过S350中数据质量系统来判断子系统的数据变量的实际值是否符合校验规则。
上述本申请图8所示实施例基础上,在所述S300与S310之间还可以包括S301步骤,在所述S310与S320之间还可以包括S311步骤,以及在所述S320与S330之间还可以包括S321,如图9所示:
S301:校验模块生成所述子系统的标识,并向数据质量系统发送所述标识。
此步骤与S201类似,此处不再赘述。
S311:所述数据质量系统接收所述标识。
此步骤与S211类似,此处不再赘述。
S321:所述数据质量系统将所述标识与所述校验规则及所述校验规则中的数据变量关联。
此步骤与S221类似,此处不再赘述。
相应地,S330变为:校验模块从所述数据质量系统获取所述标识关联的校验规则及所述校验规则中的数据变量。
通过设置标识的方式,校验模块无需通过子系统对应的数据模型来获取校验规则,而是可以直接获取与标识关联的校验规则。这样可以更有效率的获取校验规则及数据变量,进而提高了系统性能。
以下结合图10介绍本申请以校验模块为主体的方法实施例,该实施例可以对应图2:
S400:获取子系统的数据,并向数据质量系统发送所述数据。
S410:从所述数据质量系统获取所述子系统对应数据模型的校验规则及所述校验规则中的数据变量。
S420:获取所述子系统的数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
以下结合图11介绍本申请以校验模块为主体的方法实施例,该实施例可以对应图4:
S400:获取子系统的数据,并向数据质量系统发送所述数据。
S410:从所述数据质量系统获取所述子系统对应数据模型的校验规则及所述校验规则中的数据变量。
S420:获取所述子系统的数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
S430:校验模块向所述数据质量系统发送校验结果。
以下结合图12介绍本申请以校验模块为主体的方法实施例,该实施例可以对应图6:
S400:获取子系统的数据,并向数据质量系统发送所述数据。
S401:生成所述子系统的标识,并向数据质量系统发送所述标识。
S410:从所述数据质量系统获取所述标识关联的校验规则及所述校验规则中的数据变量。
S420:获取所述子系统的数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
以下结合图13介绍本申请以校验模块为主体的方法实施例,该实施例可以对应图8:
S500:获取子系统的数据,并向数据质量系统发送所述数据。
S510:从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量。
S520:获取所述子系统的数据变量的实际值,并向所述数据质量系统发送所述数据变量的实际值。
以下结合图14介绍本申请以校验模块为主体的方法实施例,该实施例可以对应图9:
S500:获取子系统的数据,并向数据质量系统发送所述数据。
S501:生成所述子系统的标识,并向数据质量系统发送所述标识。
S511:从所述数据质量系统获取所述标识关联的校验规则及所述校验规则中的数据变量。
S520:获取所述子系统的数据变量的实际值,并向所述数据质量系统发送所述数据变量的实际值。
以下结合图15介绍本申请以数据质量系统为主体的方法实施例,该实施例可以对应图2:
S600:接收校验模块发送的子系统的数据。
S610:根据所述数据得到数据模型。
S620:获取所述数据模型的校验规则及所述校验规则中的数据变量。
S630:接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求。
S640:向所述校验模块发送所述校验规则及所述校验规则中的数据变量。
以下结合图16介绍本申请以数据质量系统为主体的方法实施例,该实施例可以对应图4:
S600:接收校验模块发送的子系统的数据。
S610:根据所述数据得到数据模型。
S620:获取所述数据模型的校验规则及所述校验规则中的数据变量。
S630:接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求。
S640:向所述校验模块发送所述校验规则及所述校验规则中的数据变量。
S650:接收所述校验模块发送的校验结果。
以下结合图17介绍本申请以数据质量系统为主体的方法实施例,该实施例可以对应图6:
S600:接收校验模块发送的子系统的数据。
S601:接收所述校验模块发送的子系统的标识。
S610:根据所述数据得到数据模型。
S620:获取所述数据模型的校验规则及所述校验规则中的数据变量。
S621:将所述标识与所述校验规则及所述校验规则中的数据变量关联。
S630:接收所述校验模块发出的携带所述标识的请求。
S640:向所述校验模块发送所述标识关联的所述校验规则中的数据变量。
以下结合图18介绍本申请以数据质量系统为主体的方法实施例,该实施例可以对应图8:
S700:接收校验模块发送的子系统的数据。
S710:根据所述数据得到数据模型。
S720:获取所述数据模型的校验规则及所述校验规则中的数据变量。
S730:接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求。
S740:向所述校验模块发送所述校验规则及所述校验规则中的数据变量
S750:接收所述校验模块发送的所述数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
以下结合图19介绍本申请以数据质量系统为主体的方法实施例,该实施例可以对应图9:
S700:接收校验模块发送的子系统的数据。
S701:接收所述校验模块发送的子系统的标识。
S710:根据所述数据得到数据模型。
S720:获取所述数据模型的校验规则及所述校验规则中的数据变量。
S721:将所述标识与所述校验规则及所述校验规则中的数据变量关联。
S730:接收所述校验模块发出的携带所述标识的请求。
S740:向所述校验模块发送所述标识关联的所述校验规则及所述校验规则中的数据变量
S750:接收所述校验模块发送的所述数据变量的实际值,并判断所述数据变量的实际值是否符合所述校验规则。
图20为本申请一实施的数据质量系统的模块示意图,包括:
第一获取单元800,用于获取子系统的数据。
第一发送单元810,用于向数据质量系统发送所述数据。
第二获取单元820,用于从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量。
第三获取单元830,用于获取所述子系统的数据变量的实际值。
第一判断单元840,用于判断所述数据变量的实际值是否符合所述校验规则。
优选地,所述第一判断单元840之后,还包括:
第一发送子单元,用于向所述数据质量系统发送校验结果。
优选地,所述第一获取单元800,还包括:
第一生成子单元,用于生成所述子系统的标识。
相应地,所述第一发送单元810,还包括:
第二发送子单元,用于向数据质量系统发送所述标识。
相应地,所述第二获取单元820,用于从所述数据质量系统获取所述标识关联的校验规则及所述校验规则中的数据变量。
图21为本申请一实施的数据质量系统的模块示意图,包括:
第四获取单元900,用于获取子系统的数据。
第二发送单元910,用于向数据质量系统发送所述数据。
第五获取单元920,用于从所述数据质量系统获取所述子系统对应的数据模型的校验规则及所述校验规则中的数据变量。
第六获取单元930,用于获取所述子系统的数据变量的实际值。
第三发送单元940,用于向所述数据质量系统发送所述数据变量的实际值。
优选地,所述第四获取单元900,还包括:
第二生成子单元,用于生成所述子系统的标识。
相应地,所述第二发送单元910,还包括:
第三发送子单元,用于向数据质量系统发送所述标识。
相应地,所述第五获取单元920,用于从所述数据质量系统获取所述标识关联的校验规则及所述校验规则中的数据变量。
图22为本申请一实施的数据质量系统的模块示意图,包括:
第一接收单元1010,用于接收校验模块发送的子系统的数据。
第一生成单元1020,用于根据所述数据得到数据模型。
第七获取单元1030,用于获取所述数据模型的校验规则及所述校验规则中的数据变量。
第二接收单元1040,用于接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求。
第四发送单元1050,用于向所述校验模块发送所述校验规则及所述校验规则中的数据变量。
优选地,所述第四发送单元1050后,还包括:
第一接收子单元,用于接收所述校验模块发送的校验结果。
优选地,所述第一接收单元1010,还包括:
第二接收子单元,用于接收校验模块发送的子系统的标识。
相应地,在第七获取单元1030后,还包括:
第一关联子单元,用于将所述标识与所述校验规则及所述校验规则中的数据变量关联。
相应地,所述第二接收单元1040变为,用于接收所述校验模块发出的携带所述标识的请求。
相应地,所述第四发送单元1050变为,用于向所述校验模块发送所述标识关联的所述校验规则及所述校验规则中的数据变量。
图23为本申请一实施的数据质量系统的模块示意图,包括:
第三接收单元1110,用于接收校验模块发送的子系统的数据。
第二生成单元1120,用于根据所述数据得到数据模型。
第八获取单元1130,用于获取所述数据模型的校验规则及所述校验规则中的数据变量。
第四接收单元1140,用于接收所述校验模块发出的获取所述校验规则及所述校验规则中的数据变量的请求。
第五发送单元1150,用于向所述校验模块发送所述校验规则及所述校验规则中的数据变量。
第五接收单元1160,用于接收所述校验模块发送的所述数据变量的实际值。
第二判断单元1170,用于判断所述数据变量的实际值是否符合所述校验规则。
优选地,所述第三接收单元1110,还包括:
第三接收子单元,用于接收校验模块发送的子系统的标识。
相应地,在第八获取单元1130后,还包括:
第二关联子单元,用于将所述标识与所述校验规则及所述校验规则中的数据变量关联。
相应地,所述第四接收单元1140变为,用于接收所述校验模块发出的携带所述标识的请求。
相应地,所述第五发送单元1150变为,用于向所述校验模块发送所述标识关联的所述校验规则及所述校验规则中的数据变量。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。