条件验证规则背景技术
本说明书涉及对数据指定和应用规则。
许多现代应用程序(包括业务应用程序)对可以从各种源编译的大的数据集合
(即,“数据集”)进行处理。向数据集提供数据的各种源可以具有不同水平的数据质量。为了
确保应用程序正常运行,应该维持数据集中的足够的数据质量水平。为了维持足够的数据
质量水平,可以由数据验证系统处理数据集。这样的系统在将数据集提供给应用程序之前
将验证规则应用于数据集。在一些示例中,数据验证系统使用验证规则的结果来计算数据
质量的度量,并且如果数据质量的度量低于预定阈值,则警告应用程序的管理员。在其它示
例中,数据验证系统包括用于对未通过一个或多个验证规则的数据进行处理的模块。例如,
数据验证系统可以丢弃或修复未通过一个或多个验证规则的数据。
通常,数据验证系统所应用的验证规则由数据验证系统的管理员来定义。
发明内容
一般来说,本说明书中描述的主体的一个创新方面可以体现在方面1中,该方面包
括具有处理器和处理指令的系统,其包括用户界面模块,用户界面模块被配置为提供以具
有第一轴和第二轴的二维网格布置的多个单元格,所述二维网格包括:在沿所述二维网格
的所述第一轴的方向上延伸的单元格的一个或多个子集,其中该一个或多个子集中的各个
子集与所述数据集的多个元素中的元素的相应字段相关联;以及在沿所述二维网格的所述
第二轴的方向上延伸的单元格的多个子集,其中该多个子集中的一个或多个子集与相应验
证规则相关联。该方法包括提供在沿所述二维网格的所述第二轴的方向上延伸的单元格的
子集,其中该子集中的各个单元格与由所述第二轴标识的所述网格中的对应位置处的相应
字段相关联,并且能够用作条件单元格。与字段相关联的条件单元格包括用于接收条件表
达式形式的输入的输入元素。处理模块被配置为评价来自条件单元格的条件表达式,并且
基于该评价,将一个或多个验证规则应用于所述数据集的至少一个元素。
该方面的其它实施例包括对应的计算机系统、设备和记录在一个或多个计算机存
储装置上的计算机程序,其中各自被配置为执行所述方法的动作。一个或多个计算机的系
统可以被配置为通过利用系统上安装的软件、固件、硬件或它们的组合以使运行的系统执
行动作来执行特定动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定动
作,其中在由数据处理装置执行所述指令时使得设备执行动作。
前述和其它实施例可以各自可选地以单独或组合的形式包括以下特征中的一个
或多个。
根据方面1的方面2包括输入元素可以接收条件,使得在满足所述条件的情况下,
将与所述第二轴相关联的至少一个验证规则应用于相关联的字段。
根据方面1或2的方面3包括条件依赖于与相关联的字段不同的第二字段的值。
根据方面1、2和3的方面4包括将验证规则应用于所述数据集的第一元素的第一字
段中的数据,该应用包括:基于在单元格的所述输入元素中接收的任何输入,确定与在沿所
述第二轴的方向上延伸的、与所述第一元素的第一字段相关联的单元格的子集中的单元格
相关联的选择的验证规则;基于在与所述第一字段相关联的条件单元格的输入元素中接收
的输入,确定与所选择的验证规则相关联的条件;判断为满足所述条件;以及将所选择的验
证规则应用于所述第一字段。
根据方面1、2、3或4的方面5包括所述条件单元格的输入元素可以被配置为接收运
算符和与所述运算符相关联的值。
根据方面1、2、3、4或5的方面6包括判断为满足所述条件包括:将所述运算符应用
于与所述运算符相关联的值以及所述数据集的所述第一元素的第二字段中的值,其中所述
第二字段由字段标识符标识。
所公开的系统的各方面可以具有以下优点中的一个或多个。用户界面可以使业务
用户能够识别验证规则。验证规则的应用可以以数据元素中的字段的值为条件。验证数据
集可以提高使用该数据集的应用程序的性能。条件验证规则可以通过绕过验证规则的不必
要应用来提高系统性能。条件验证规则可以减少系统复杂性,但是允许特定的验证规则容
易应用于不常见的测试用例。
根据以下说明和所附权利要求,本发明的其它特征和优点将变得明显。
附图说明
图1示出了可以使用条件技术的示例性数据处理系统。
图2是用于指定用于有条件地验证数据集中的数据元素的验证规则的用户界面的
示例。
图3示出了条件验证规则的示例。
具体实施方式
数据处理系统接受来自不同源的数据并基于数据产生输出。系统处理后的数据可
能包括异常、错误或问题。这些数据质量问题可能是由于如下因素而引起的:例如,由不准
确输入(例如,印刷错误)引起的错误、机器故障(例如,数据损坏)、以及由翻译错误引起的
错误(例如,数据编码的不正确识别)。错误还可能是由于如下因素而引起的:丢失或未报告
的数据、格式不正确的数据、在数据生产者处改变规范而导致数据消费者处错误解释数据、
参考代码集合中的错误导致与数据不匹配、同步问题(例如,新的参考数据未准时出现,以
及源数据与旧的参考数据不匹配)、引入新的代码值等。一般来说,通常作为数据改进计划
的一部分(问题数量应该随着时间的推移而下降),数据质量系统的目标是检测需要测量的
数据中的问题。
数据验证是测量数据质量的处理。通常,针对数据源执行一个或多个数据验证测
试。数据的质量被量化,并且如果需要,则可以采取行动以提高数据的质量。
用户界面可以简化创建验证规则的处理。通常,验证规则是可以应用于数据以判
断数据质量的一个或多个验证测试的集合。例如,验证规则可以包括判断数据字段是否是
特定数据类型的验证测试、以及判断数据字段是否具有特定大小的验证测试。这里所述的
系统、方法和介质相对于现有技术至少具有以下优点中的一些优点。用户界面可以使业务
用户能够识别验证规则。逻辑规则可以与业务术语相关联。数据集中的字段也可以与业务
术语相关联。可以基于关联来确定默认验证规则。逻辑规则可以减少验证数据集所花费的
时间。另一个有用的参考点是在2012年10月17日提交的标题为“SPECIFYING AND APPLYING
RULES TO DATA”的美国专利申请13/653,995中描述的用于对数据指定和应用规则的系统,
其内容通过引用而包含于此。
业务术语表示数据中包含的概念。例如,名称为“cust_tbl”的关系数据库表可以
包括名称为“phone_no”的字段。具有“phone_no”字段中的值的“cust_tbl”中的行表示存在
具有该特定电话号码的客户。在该示例中,“customer”是至少包含在“cust_tbl”中的业务
术语,并且“phone number”是包含在“phone_no”字段中的业务术语。
图1示出了其中可以使用条件技术的示例性数据处理系统100。系统100包括数据
源102。数据源102可以包括一个或多个数据源(例如存储装置或至在线数据流的连接),其
中每个数据源可以以各种存储格式(例如,数据库表、电子表格文件、平面文本文件或大型
机使用的原生格式)中的任何存储格式存储数据(有时称为“数据集”)。
执行环境104可以安装于在诸如UNIX的合适的操作系统的控制下的一个或多个通
用计算机上。例如,执行环境104可以包括多节点并行计算环境:这可以包括使用多个中央
处理单元(CPU)的计算机系统的配置;本地(例如,诸如SMP计算机等的多处理器系统)或本
地分布式处理器(例如,耦合为群集或MPP的多个处理器);远程或远程分布式处理器(例如,
经由局域网(LAN)和/或广域网(WAN)耦合的多个处理器);或其任何组合。
执行环境包括用户界面(UI)模块106和处理模块108。UI模块106管理通过用户界
面112(例如,显示屏幕上的图形视图)从用户110接收的输入,其用于指定将被处理模块108
用来处理来自数据源102的数据的验证规则。
处理模块108从数据源102读取数据,并且基于由UI模块106获得的验证信息来执
行验证过程。提供数据源102的存储装置可以位于执行环境104的本地,例如,存储在连接到
运行执行环境104的计算机的存储介质(例如,硬盘驱动器114)上。可选地或另外地,存储装
置可以远离执行环境104,例如,安装在通过远程连接与运行执行环境104的计算机进行通
信的远程系统(例如,大型机116)上。
通常,从数据源102访问的数据集包括多个数据元素,其中该数据元素可以是根据
预定记录结构而格式化后的记录或者是数据库表中的行。每个数据元素可以包括多个字段
的值,例如,记录结构内定义的属性或者数据库表中的列,并且其可能包括空值(null/
empty value)。字段中的值的各种特性、或者特定字段中是否存在值可以被认为是有效的
或无效的。例如,包括字符串“Smith”的“last_name”字段可以被认为是有效的,而空白的
“last_name”字段可以被认为是无效的。判断字段是有效还是无效的条件对于不同字段可
以是不同的。例如,包括字符串“Randolf”的“middle_name”字段可以被认为是有效的,并且
空白的“middle_name”字段也可以被认为是有效的。
一般来说,数据集中的字段可以表示业务规则的物理表示。例如,“customer”数据
集中的“first_name”字段(其例如可以是存储在关系数据库中的可变长度字符串)可以包
括作为客户的第一个名字的数据,因此与业务术语“first name”相关联。也就是说,客户数
据集的数据元素的“first_name”字段中的字符串“John”表示具有给定名字“John”的商业
客户的存在。其它数据集可以以不同方式表示相同的商业概念。例如,第二数据集可以包括
字段“fname”,其也可以对应于业务术语“first name”。
图2是用于指定用于有条件地验证数据集中的数据元素的验证规则的用户界面
112的示例。用户界面112被配置为便于用户110指定和验证一个或多个条件验证规则。一般
来说,验证规则可以包括一个或多个验证测试,每个验证测试可能需要应用另一个验证规
则。一些验证测试可以以数据集的数据元素中的值为条件。
UI模块106提供用户界面112。用户界面112可以提供在例如计算机监视器上。用户
界面112包括布置在具有第一轴226和第二轴228的二维网格225中的多个单元格224。单元
格224的一个或多个子集230(在下文中称为行230)在沿二维网格225的第一轴226的方向上
延伸。各个行230与字段218相关联。在一些布置中,各个行230的第一个(即,最左)单元格包
括与行230相关联的数据元素218的名称。在该示例中,各个行的第一个单元格包括数据元
素名称“Field 1”、“Field 2”、……“Field M”。
单元格224的多个子集232(在下文中称为列232)沿第二轴228延伸。一个或多个列
232与验证测试234相关联。列232可以包括“条件”列250,其识别应用与数据元素(由行标
识)相关联的验证规则的情形。在一些示例中,其余的各个列232中的第一个(即,最上)单元
格包括与该列相关联的验证测试234的名称、或者条件列205的诸如“条件测试”或“条件”等
的名称。在该示例中,验证规则名称是“验证测试1”、“验证测试2”、……“验证测试N”。注意,
在一些示例中,第一轴226和第二轴228的方向可以交换,使得与字段218相关联的行230变
为列,并且与验证测试234相关联的列232变为行。
在将一个或多个验证测试列232添加到二维网格225之后,用户110可以指定应该
将哪个验证测试234应用于哪些数据元素218。可以指定的不同种类的验证测试的示例是在
标题为“EDITING AND COMPILING BUSINESS RULES”的美国专利8,069,129中描述的,其内
容通过引用而包含于此。
用户界面112包括条件列250,其中该条件列250允许用户建立用于测试给定行的
验证规则的前提条件。在将具有测试参数1,1 366的“验证测试1”应用于数据元素“字段1”
218之前,用户可以指定应当满足“条件1”252。
该条件可以指可以是或可以不是验证主体的数据元素。例如,条件可以要求数据
元素中的字段具有与预定值相匹配的值、包括在可能值的范围或集合中的值、或者与所提
供的正则表达式相匹配的值。该字段可以是或可以不是作为验证测试的主体的字段。例如,
条件1 252可以在将验证测试1 234应用于字段1 218的值之前测试字段3 254的值。该条件
可以要求数据元素具有值(例如,数据元素不包括空值指示符)。在一些实现中,条件可以是
数据驱动的。例如,数据驱动条件可以包括特定类型的记录、特定范围内的帐户、一组值中
的国家。条件可以涉及查找文件或者另一输入文件或数据库表中的引用数据。
在一些实现中,建立条件可以包括识别字段、运算和值。该运算可以是例如布尔函
数。该字段标识要通过条件评价哪个数据元素,运算标识要如何评价字段,并且使用值基于
评价来判断是否满足条件。例如,对于条件:
Country=‘US’
该字段为Country,运算符为‘=’,且值为‘US’。满足的条件是数据元素的Country
(国家)字段中的值等于“US”,并且如果该值不是“US”,则不满足条件。
在一些实现中,当用户向字段添加条件时,用户界面自动为该字段创建新的验证
测试行。例如,响应于向字段1 218添加条件252,用户界面插入新的行256。可以顺序地(即,
从上到下)评价用户界面中的均涉及相同字段的多个行。正在验证的数据元素中的字段如
果未能通过系统判断为应当应用的任何验证测试,则该字段未通过验证规则。例如,如果系
统判断为满足条件1 252,而且将具有测试参数1,1 236的验证测试1 234应用于数据元素中
的值,并且该值不满足验证测试,则数据元素的字段未通过,并且失败计数器240递增。
在一些实现中,一旦字段通过任何条件测试,则没有后续的验证测试被应用于该
字段。例如,如果系统判断为满足验证测试1 252,则将不会应用验证测试256。
在其它实现中,应用满足条件的每个验证规则。在一些实现中,系统可以将最终验
证规则指定为仅在没有其它验证规则应用于字段时才执行的通用验证规则。在一些实现
中,用户可以通过提供预定条件,例如通过使用条件测试列中的关键字(诸如“Else(其
它)”),来将验证规则指定为通用验证规则。通常通用验证规则是当且仅当没有针对字段执
行其它验证规则时在该字段上执行的验证规则。在一些实现中,每当条件用于字段时,自动
地为该字段提供通用验证规则。
在一些实现中,验证规则集可以包括多个不同的条件测试,各个条件测试与一个
或多个验证规则相关联。例如,业务规则可以具有当国家代码为“US”时应用的验证规则的
一个集合以及当州代码为“MA”时应用的一个或多个验证规则的另一个集合。并且当姓氏以
“W”开头时,可以应用验证规则的其它集合。
在一些实现中,对于给定的验证规则集合,将仅触发单个条件,例如,在单个条件
为真之后,应用相关联的一个或多个验证规则,然后验证规则集合结束。
在其它实现中,测试各个条件,并且应用与任何触发条件相关联的所有验证规则。
在一些实现中,验证规则集合可以包括条件验证规则和非条件验证规则。非条件
验证规则可以应用于是否触发任何条件。
图3示出了条件验证规则的示例。用户界面300可以是例如图2的用户界面112,其
包括定义针对“Postal_Code”字段的有效规则的表306。
第一个验证308表示如果国家是“US”,则邮政编码必须是格式“(99999)|(99999-
9999)”。第二个验证310表示如果国家是“CA”,则邮政编码必须采用格式“A9A 9A9”。第三个
验证312表示如果国家是“UK”,则邮政编码必须是格式“A((A9)|9)(A|9)?9AA”。第四个验证
314是由条件“Else”指定的通用规定。在该示例中,第四个验证规则测试邮政编码具有格式
“(99999)|(99999-9999)”。
用户界面300还包括第五个确认316,其判断国家字段是否包含值“US”,“CA”、“UK”
中的一个。
上述技术可以使用用于在计算机上执行的软件来实现。例如,软件形成一个或多
个计算机程序中的过程,该计算机程序在一个或多个编程或可编程计算机系统(其可以是
诸如分布式、客户端/服务器、或网格等的各种架构)上执行,各个计算机系统包括至少一个
处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个
输入装置或端口、以及至少一个输出装置或端口。软件可以形成用于例如提供与数据流图
的设计和配置相关的其它服务的较大程序的一个或多个模块。图的节点和元素可以被实现
为存储在计算机可读介质中的数据结构或符合存储在数据存储库中的数据模型的其它组
织数据。
软件可以由由通用或专用可编程计算机可读取的诸如CD-ROM等的存储介质来提
供,或者通过网络的通信介质传送(以传播信号编码)到执行软件的计算机的存储介质。所
有功能可以在专用计算机上执行,也可以使用诸如协处理器等的专用硬件执行。软件可以
以分布式方式实现,其中在分布式方式中由软件指定的计算的不同部分由不同的计算机执
行。各个这样的计算机程序优选地存储在或下载到通用或专用可编程计算机可读取的存储
介质或装置(例如,固态存储器或介质,或者磁性或光学介质),以在计算机系统读取存储介
质或装置以执行这里描述的过程时配置和操作计算机。还可以认为本发明的系统被实现为
配置有计算机程序的计算机可读存储介质,其中存储介质被配置为使计算机系统以特定和
预定义的方式操作以执行这里描述的功能。
已经描述了本发明的多个实施例。然而,应当理解,在不脱离本发明的精神和范围
的情况下可以进行各种修改。例如,上述的一些步骤可以是与顺序无关的,因此可以以不同
于所描述的顺序来执行。
应当理解,前述描述旨在说明而不是限制本发明的范围,本发明的范围由所附权
利要求的范围限定。例如,可以以不同的顺序执行上述的多个功能步骤,而基本上不影响整
体处理。其它实施例在所附权利要求的范围内。