具体实施方式
概览
数据质量缺陷对商业战略措施会有负面影响(有时是显著的负面影响)。数据质量缺陷(例如低质量数据)的影响包括:纠正数据(如果发现了错误)所花费的额外时间、损失信用、客户不满、合规性问题和收入损失、以及其它影响。由此,各种各样的机构都寻求改进其商业数据的质量。针对数据质量的一般方法(例如基于零知识)不足以产生用于当今商务的高质量数据。此外,针对数据质量的基于知识的方法可呈现诸如知识获取、使用、移动性、可扩展性等等的多种挑战。
由此,通过获取知识和处理知识的分离以提高数据质量来提供基于知识的数据质量方法将是有益的。在一示例中,获取知识可包括计算机辅助的知识获取。所公开各个方面中的一个或多个提供基于丰富知识库的知识驱动的数据质量解决方案。例如,数据质量知识库被创建、维护和再使用以供执行各种数据质量操作,诸如数据提纯和匹配。本文中所公开的数据质量解决方案是快速、容易部署的,并且能快速地建立。
本文中所呈现的各个方面涉及用于针对数据质量过程获取和表示有效知识的数据域(例如类型),包括简单域和合成域。其它方面涉及语义重复去除。另一些方面涉及可扩展性的树形生成应用法。还有一些方面涉及第三方集成的商业模型。
一个方面涉及一种包括知识管理器组件和数据增强组件的系统。知识管理器组件被配置成搜集与数据集相关的信息。该信息至少部分地从数据集中的一样本搜集,并且该信息被保留在知识库中。数据增强组件被配置成对数据集执行一个或多个操作以提供该数据集的质量。该一个或多个操作基于所搜集的信息。
在一示例中,知识管理器组件基于数据集的描述、一个或多个规则、推断、数据字段正确值的列表、以及与用户的交互来搜集信息。
根据一示例,数据增强组件被配置成提纯作为所搜集信息的结果的数据集。在另一示例中,数据增强组件被配置成基于所搜集信息对数据集进行重复去除。
在一实现中,系统进一步包括数据分析模块,该数据分析模块被配置成基于完整性、符合度、一致性、准确性、及时性和重复度的至少之一来定义数据集的质量。
根据另一实现,该系统进一步包括配置成获取有关数据集的语义信息的采集模块。进一步地,该系统包括发现模块,该发现模块被配置成输出对有关语义信息的细节的一个或多个请求并接收作为回复的对该一个或多个请求的响应。接收到的响应被保留在知识库中。
在又一示例中,该系统包括被配置成保留与用户数据和第三方数据的属性有关的历史信息的历史模块。数据增强组件被配置成利用历史信息来对数据集执行一个或多个操作。
在再一示例中,该系统包括统计模块,该统计模块被配置成提供与数据质量、与数据相关联的问题、以及数据质量问题源的至少之一相关的统计信息。数据增强组件被配置成利用统计信息来对数据集执行一个或多个操作。
在另一示例中,该系统包括提纯模块,该提纯模块被配置成基于知识管理器组件所搜集的信息来修改、移除、或丰富不正确或不完整的数据。
数据集包括第一数据子集和第二数据子集,根据又一示例该系统进一步包括配置成标识第一数据子集和第二数据子集之间的重复数据的匹配模块。该系统还包括配置成选择性地去除标识出的重复数据的合并模块。
在另一实现中,知识管理器组件被进一步配置成创建知识库并将该知识库上传至外部源。进一步针对此实现地,知识库被在先创建并上传至外部源。根据一示例,外部源是由第三方数据源所管理的知识库存储。
另一方面涉及用于数据质量解决方案的方法。该方法包括从与数据集相关联的信息建立匹配策略。该信息被包含在知识库中。该方法包括基于匹配策略对数据集进行匹配训练。该方法还包括作为匹配训练的结果构建匹配项目。匹配项目标识数据集中所包括的重复数据并合并重复数据以创建单个条目。
在一示例中,建立匹配策略包括从第三方数据源下载知识库并用与数据集相关的附加知识补充该知识库。附加知识通过辅助知识采集来获取。
在又一示例中,执行匹配训练包括索要对重复数据的反馈信息并用该反馈信息补充知识库。在再一示例中,构建匹配项目包括构建包括每个重复数据和每个重复数据中所包含信息的电子表格。
在一示例中,合并重复数据是基于用户偏好和规则的至少之一的。在另一示例中,执行匹配训练包括获取数据集中的至少一个子集的语义理解。
另一方面涉及计算机可读存储介质,该计算机可读存储介质包括存储在其中的计算机可执行指令,这些指令响应于执行致使计算系统执行各操作。这些操作包括收集与数据集相关的信息并将该信息供应给知识库。这些操作还包括基于知识库中的信息对数据集执行一个或多个操作,其中该一个或多个操作包括提纯数据集。
在一示例中,操作进一步包括基于对数据集的语义理解标识数据集中所包含的重复数据,其中语义理解被包括在知识库中。操作还包括基于与用户偏好或规则的一致性选择重复数据的至少之一,并从数据集中移除未被选择的重复数据。
另一方面涉及包括数据质量引擎的装置。数据质量引擎包括配置成基于数据样本获取关于数据的信息、并将该信息保存在知识库中的知识发现组件。数据质量引擎还包括配置成基于知识库中的信息提纯数据的提纯组件,以及配置成移除数据内发现的重复数据的匹配组件。
在一示例中,数据质量引擎与数据质量服务器通信,该数据质量服务器配置成与一个或多个数据质量客户机和一个或多个第三方数据源通过接口连接。在另一示例中,数据质量服务器包括配置成对知识库中所包含的信息执行参考数据服务的应用程序接口。
根据另一示例,数据质量服务器与配置成从知识库获取和更新参考数据的应用程序接口通信。此外,应用程序接口被配置成从第三方源获取参考数据服务和参考数据集。
在一些示例中,知识发现组件被配置成提供辅助知识采集以采集与数据相关的信息。
在一示例中,装置进一步包括数据剖析和探查组件。在另一示例中,装置包括来自知识库存储的参考数据,知识库存储包括已发布的知识库。
在又一示例中,参考数据组件被进一步配置成将本地创建的知识库发布到远程存储介质。根据另一示例,参考数据组件被进一步配置成接收对本地创建知识库的选择并从远程位置下载该本地创建知识库。
又一方面涉及一种对数据进行交互式提纯的方法。该方法包括接收对改进数据源质量的请求,并访问包括与数据源中的数据元相关的信息的知识库。该方法还包括应用来自外部源的参考数据服务。该参考数据服务包括有关数据元的外部知识。该方法还包括因变于参考数据服务修正数据元子集。
在一示例中,访问知识库包括获取针对数据元的参考数据定义。根据另一示例,访问知识库包括获取值和规则以应用于数据元。在又一示例中,访问知识库包括获取被配置成标识和消除数据元中的数据重复的匹配策略。
根据另一示例,修正数据元子集包括在数据元中审阅不正确记录,并输出修正不正确记录的至少之一的建议。进一步针对此示例地,该方法包括基于对该建议的肯定回复对不正确记录的至少之一应用修正。
在一示例中,应用参考数据服务包括使用来自第三方数据服务的参考数据服务。在另一示例中,应用参考数据服务包括接收对参考数据服务的选择并使用来自外部源的参考数据服务。
另一方面涉及一种包括用于索要有关数据集的信息的装置的系统。该系统还包括用于将信息储存在知识库中的装置。该系统中还包括用于基于知识库评估信息的装置。此外,该系统包括用于因变于评估提纯数据的装置和用于基于评估移除数据集内的重复数据的装置。
根据一示例,该系统还包括用于提供计算机辅助的知识采集以采集附加信息的装置。
在一些示例中,用于去除重复数据的装置进一步被配置成创建数据的合并视图,其中该合并视图以视觉格式输出。
又一方面涉及用于数据质量解决方案的系统。该系统包括配置成采集关于第一数据集和第二数据集的数据信息的访问模块。系统还包括配置成针对第一数据集和第二数据集创建一个或多个域的域创建模块。该系统还包括配置成集聚一个或多个域并用集聚后的域填充知识库的编译模块。该知识库用于处理一个或多个数据质量集。
在一示例中,域创建模块被配置成因变于数据或数据的属性来创建域。在另一示例中,域创建模块被进一步配置成创建基本域,该基本域包括与第一数据集或第二数据集的属性相关联的数据质量问题。在又一示例中,域创建模块被进一步配置成基于跨两个或多个域应用的规则来创建合成域。
在另一示例中,访问模块被配置成通过辅助知识采集过程来采集数据信息。根据一些示例,知识库包括封装为单个可移动单元的多个域。在另一示例中,知识库以可共享和可下载的格式储存。
在一实现中,系统包括配置成获取关于第一数据集和第二数据集的语义信息的采集模块。该系统还包括配置成部分地基于语义信息标识第一数据集和第二数据集之间的数据重复的匹配模块。此外,系统包括配置成与第一数据集和第二数据集组合大致同时地合并标识出的重复数据。
在一些实现中,系统进一步包括配置成捕捉与第一数据集和第二数据集的属性相关的历史信息,其中历史信息被包括在域中。在另一实现中,系统包括配置成捕捉与关联于第一数据集和第二数据集的源的数据质量度量相关的统计信息的统计模块,其中统计信息被包括在域中。在另一示例中,系统包括配置成作出与第一数据集或第二数据集相关的一个或多个推断的推断模块,其中一个或多个推断被包括在域中。
根据另一方面,提供一种包括获取与属性和参考数据服务提供者相关联的参考数据的方法。该方法还包括针对每个属性创建多个域,其中多个域中的每一个包括属性和与该属性相关联的参考数据。此外,该方法包括储存多个域的编译作为知识库。
在一示例中,获取参考数据包括获取属性的参考数据定义。在另一示例中,获取参考数据包括将规则与一个或多个属性相关联。
在一些示例中,创建多个域包括创建包括与属性相关联的数据质量问题的基本域。在另一示例中,创建多个域包括创建包括两个或多个基本域的合成域,其中规则跨两个或多个基本域应用。在又一示例中,储存编译包括将知识库上传至外部源所维护的库。
根据一些实现,方法包括检索知识库,以及因变于知识库中包含的域对数据执行一个或多个处理。
另一方面涉及计算机可读存储介质,该计算机可读存储介质包括存储在其中的计算机可执行指令,这些指令响应于执行致使计算系统执行各操作。操作包括采集关于多个属性的参考数据,并创建包括参考数据和多个属性的一个或多个域。操作还包括编译一个或多个域作为可再使用知识库,其中该一个或多个域包括基本域和合成域。在一示例中,操作进一步包括实现计算机辅助的知识发现以采集参考数据。
此处,以上已经呈现了用于实现基于知识的数据质量解决方案的实施例中的某些的概览。作为接下来的内容的向导,更详细地描述基于知识的数据质量管理的各示例性、非限制性实施例和特征。随后,为了附加说明,给出一些非限制性实现和示例,之后是其中可实现这些实施例和/或特征的代表性网络和计算环境。
基于知识的数据质量解决方案
本文中所公开的各个方面提供针对数据质量解决方案的知识管理、知识应用、以及管理服务。知识管理包括创建包含关于数据集的信息(例如参考数据)的知识库。知识库可包括诸如如何提纯数据、如何学习数据、如何连接外部源(例如提供知识管理的外部源)等等的信息。在一些方面中,知识管理和相关联参考数据可包括:创建和管理数据质量知识库,从内部(例如机构内部)数据样本发现知识,以及用第三方参考数据进行探查和集成。应用知识包括提纯数据、修正数据、执行匹配、执行重复数据去除、和数据标准化、以及其它应用。管理服务可包括用于监视和控制数据质量过程的工具。
在一些方面中,提供了调整数据的用户访问权的安全模型。例如,每个用户可具有不同的角色和与该角色相关联的不同凭证。在这些用户的示例中,第一用户可以是管理者,第二用户可创建知识,而第三用户可提纯数据并使用数据。根据一方面,安全模型可被配置成维护知识库的完整性。
通过利用所公开的各个方面,数据可被提纯并且可通过应用数据质量解决方案的持续过程来保持纯净。基于此,企业数据中的置信度可被构建、恢复和/或扩展。此外,数据质量结果可快速地获得,而无需等待数周或数月以便完成手动数据质量过程。
通过参考用于提供通过分离的知识采集和应用实现的数据质量解决方案的一个或多个非限制性方式进行的进一步描述,图1大致地示出了示例性计算系统的框图。该示例性计算系统被配置成收集有关感兴趣数据的知识(例如来自内部和/或外部源的一个或多个数据集)以创建知识库并使用该知识库来提纯数据。例如,原始数据集可被提纯以产生与原始数据集相比具有改进质量的数据集。根据一些方面,该示例性计算系统实现采集与数据集相关的知识、以及因变于该知识可对数据执行的处理的分离。
图1所示的计算系统包括具有一个或多个结构化数据集110的环境100。例如,结构化数据可以包括但不限于数据库、表格、电子表格等的多种格式保留。将来自各个源的数据收集成结构化数据已呈指数级地增加。然而,数据在至少部分时间可具有低质量。例如,可能存在附随至少一个数据子集的一个或多个问题(例如,不准确的数据、拼写错误的词、数据部分缺失、误置数据、重复数据以及其它问题)。附随数据的问题(例如低质量数据)的影响可对数据的使用有直接影响。例如,如果决定或分析基于低质量数据,则该决定或分析可固有地具有缺陷,且数据可能不再能作为分析的依据。
在一示例中,如果数据是手动输入(例如通过操作人员)的,则出错(包括简单错误)的可能性在疲劳、生病、厌倦期间或其它原因会增大。在另一示例中,数据可源自带噪声源。例如,即使数据显现为自动生成,有时人还是会编程一个或多个自动传感器和/或手动输入数据,该程序可能会被粗心地编写,和/或所生成的数据由于另一未知原因具有低质量。
为了提供改进的质量解决方案以修正或补偿低质量数据,知识管理器组件120被配置成收集与环境100中所包含数据(例如一个或多个结构化数据集110)相关的信息。这种知识可基于一个或多个规则、推断、数据字段正确值的列表、与用户的交互以及其它源从数据(或数据子集)的描述收集。
知识管理器组件120所收集的信息或知识可涵盖不同类型的信息。例如,信息可以是针对属性(例如电子表格中的列)可用的正确值列表。例如,如果列为美国的州摂,则可以有50个正确值(尽管如果使用缩写以及完全拼写出州名,则可以有更多的正确值)。值的紧凑列表(在一些情形中可以是数据的所有可能值的长列表)是有关可通过知识管理器组件120获得的数据的信息或知识的一种形式。
在另一示例中,通过知识管理器组件120收集的信息可与数据拼写属性的通常错误相关。有关数据的信息的另一示例是同义字(例如,杰克和约翰、威廉和比尔、无和伪等等)。其它示例与规则相关。例如,规则可以是字段的长度不长于20个字符。规则的另一示例是字段以阿拉伯数字8结束、或者字段以大写字母开始。其它示例包括众多规则、描述、(一个或多个)数据模型等等。
根据一些方面,知识管理器组件120获取信息,并从所采集信息创建知识库130。知识库摂是保留各种类型数据的原子单元。数据的类型摂可以是例如具有多个属性(例如10个属性或列)的消费者数据,针对该消费者数据创建知识库。知识库中所包括的是一个或多个域。域摂是包含有关特定数据的信息的原子单元。继续以上示例,域的示例包括地址、名称、城市、年龄等等。
两种不同类型的域包括基本域和合成域。基本域是数据的属性(例如公司名称)且包含有关该数据的所有知识。例如,该域可包含核心值列表、错误列表、同义字列表、验证规则等等。在一些方面中,该域可包含向数据质量引擎指示该域内所包含的数据要由例如第三方来提纯的陈述。
在一些情形中,利用一个以上的域。例如,对于地址,该地址可包含地址行、城市、州和邮编。在该情形中,每个域可单独地修正。然而,如果不同的域一起作为一个实体来修正,则可获得改进结果。例如,知晓邮编可有助于修正地址行或州。为了创建该有不同域的实体,创建合成域。该合成域包括若干域,并且这些域之间的关系在合成域内定义。
知识库130可由知识管理器组件120保留在本地。然而,根据各个方面,知识库130通过云计算从外部源取回。云计算可提供各种计算能力(例如,软件、数据访问、存储服务等),而无需用户(例如,终端用户)知晓递送服务的系统的物理位置和/或配置。
在一些方面中,保留在知识库130中的信息是第三方(例如,提供信息的商用数据库)提供的信息,有时称为外部参考数据或外部参考源。在其它方面中,保留在知识库130中的信息是数据的用户(例如与环境100相关联的机构)所编译的信息,称为内部参考数据。例如,用户能创建内部参考数据,且该数据可通过知识管理器组件120编译到知识库内。此外,知识库可被上传至云用于储存和检索用途,以供后来使用和/或修改。
基于由知识管理器组件120收集的参考数据,数据增强组件140被配置成应用知识来对数据执行操作以提高数据的质量。如在本文中使用的数据质量摂表示数据适于在商业(以及非商业)过程中使用的程度。数据质量可通过各种数据质量度量来定义、测量和管理。质量度量的示例包括完整性、符合度、一致性、精确性、重复度、及时性等等。在一些方面中,数据质量可通过人、技术和过程来实现。
数据增强组件140可被配置成基于知识库130中所包括的参考信息提纯数据。例如,可因变于参考信息分析数据行,并且可修正该行内的错误。在另一示例中,数据增强组件140可被配置成配齐数据的缺失部分。在又一示例中,数据增强组件140可被配置成修正常见错误拼写、识别同义字、和/或执行其它功能。
根据另一示例,数据增强组件140可被配置成执行数据的匹配(有时称为重复数据去除或实体解析)。匹配或重复数据去除是从实体列表开始、且解析该列表以使每个实体仅被包括一次的过程。例如,数据库包括消费者列表,并且可以假设每个消费者仅列出一次。然而,情形是单个消费者会因为错误拼写或替代拼写而重复出现(例如,该列表包括“Tom Mangas”,“Thomas Mangas”,“Tom B.Mangas”,“Mr.Mangas”等等,这些全部指同一人)。在另一示例中,同一人可列有不同地址、不同电话号码、不同电子邮件别名等等。如果替代名组合有不同地址、电话号码等等,则数据重复问题会是复合式的。由此,机构所具有的消费者的数量可能是过分夸大的,这可导致其它问题(例如,不实际的企业成长)。数据增强组件140被配置成识别这些重复数据,并且合并重复数据以产生单个实体,和/或选择实体之一作为重复数据的代表且删除其它(重复)实体。
如由数据增强组件140执行的对数据的改变或改进可被传达至知识管理器组件120,并保留为知识库130的一部分。根据一些方面,在数据增强组件140对数据执行各种操作之后(例如由用户)对数据的修改可由知识管理器组件120监视,并应用至知识库130。可以理解,知识管理器组件120可执行进行中信息发现以允许知识库130及时更新。
在一实施例中,图1所示的计算系统在操作上可不同于常规的计算系统,以便提供胜于可由采用一般解决方案的计算系统获得的益处的额外益处。这种一般解决方案由于数据的实际知识未知而会受到限制,因此对于可应用于数据的修正的数量或修正的深度存在限制。例如,本文中所揭示的计算系统可基于具有数据的知识来提供数据质量解决方案,该数据的知识包括数据内容的知识、数据的源、以及数据的期望用途。在一示例中,计算系统可创建关于数据的知识,并使用该知识来对数据进行提纯或重复数据去除。此外,这种知识是可再使用的。例如,信息工作者和信息技术专业人员(例如用户)可合并和再使用各种数据质量改进和企业数据管理过程(例如提纯、匹配、标准化、丰富等等)的知识。
由此,所公开的各个方面可提供与以一致、受控、管制、集成和快速的方式传递经改进的数据质量有关的益处,经改进的数据质量提供经改进的商业结果。本文中所揭示的数据质量解决方案知识库方法使机构能通过其用户有效地捕捉和提纯数据质量知识库中的数据质量相关知识。
图2示出根据一方面的配置成提供知识驱动的数据质量解决方案的系统200的框图。系统200可被配置成获取有关一个或多个数据集的知识,并基于所获取的知识对数据集执行处理。根据一方面,获取知识和执行处理是分离和不同的过程。根据不同方面,可获得的关于数据的信息或知识的量和/或深度对知识应用于可对数据执行的处理(例如提纯数据、数据的重复去除、或其它功能)的效率有直接影响。
系统200中所包括的是可被配置成获取关于数据集210(例如感兴趣数据)的知识的知识管理器组件205。系统200中还包括的是可被配置成基于知识库中所包含的信息改进数据质量的数据增强组件215。知识库可被保留在系统200或其信息正在处理的机构外部。例如,知识库可被发布,并储存在外部存储位置中(例如云中)。然而,在一些方面,知识库被保留在本地(例如系统200本地)。
根据一些方面,数据增强组件215被配置成定义对于使用目的而言数据集210足够、还是不足。例如,由数据增强组件215执行的定义可基于将在以下进一步详细讨论的一个或多个质量度量。如果数据集210对于使用目的而言不足,则数据增强组件215被配置成部分地基于知识管理器组件205获取的信息和/或基于质量度量对数据执行处理。
知识管理器组件205被配置成收集与数据集210相关的信息。这种信息收集可由知识管理器组件205基于显式证据和/或隐式证据来执行。该显式证据可包括直接从源(例如用户、第三方等)接收的信息。隐式证据可包括基于数据本身获得的信息(例如确定电子表格中的列包含州名等)。
为了获得显式证据和/或隐式证据,知识管理器组件205可包括被配置成获取关于数据集210的信息或参考数据225的采集模块220。
在一示例中,参考数据225可从用户环境230和/或外部环境235(例如用户外部)获得。但是,在一些方面中,用户环境230可包括用户数据240,该用户数据240被储存在外部环境235中(例如云计算)。用户数据240可以是用户生成的数据(例如,由用户直接输入的数据,先前通过外部源获得且由用户修改或与其它用户数据组合的数据)。外部环境235包括第三方数据245,其可包括来自一个或多个外部源的数据,这些外部源诸如供应信息的第三方服务、从其引入数据的数据库等等。用户数据240和/或第三方数据245可包括数据本身以及有关数据的信息(例如知识库)。
通过采集模块220获取的参考数据225可包括提供数据集210的语义理解的信息。例如,语义理解包括与数据集210的同义字或其它组分相关的知识。语义理解的示例是知晓“Corp.”和“Corporation”(公司)旨在被解释为同一词。为便于采集模块220获取此知识,数据拥有人可与采集模块220(和知识管理器组件205和/或数据增强组件215的其它组件)交互,以提供至少一些语义理解。根据一些方面,采集模块220可被配置成从外部环境2335(例如外部源、第三方数据库等)获取对数据集210的语义理解。
例如,采集模块220可被配置成发送对标识各种属性或电子表格内列的内容的请求。列标识可以是该列包含适当名称、该列包含地址、该列包含销售额等等。采集模块220所获取的其它信息可包括各种属性的内容和该内容的相关源的标识(对从哪里获取数据、用来获取诸如自动生成数据或手动输入数据的数据的方法等等的标识)。
根据一方面,采集模块220被配置成提供计算机辅助的知识采集。例如,采集模块220可与发现模块250交互,该发现模块250被配置成审阅数据集210中的至少一个样本,并尝试基于参考数据225中所包含的各种标准(例如规则/策略、常见错误拼写等等)来理解数据。发现模块250(或另一系统200的组件)可请用户确认(例如通过计算环境向用户显示的提示)通过发现模块250的理解是否正确。根据一方面,发现模块250可执行与用户的来回交互以便于获取其它关于数据集210的信息。
根据一些方面,发现模块250(知识管理器组件205和/或数据增强组件215的其它模块)可通过接口组件255与用户交互。接口组件255可以提供图形用户界面(GUI)、命令行界面、语音界面、自然语言文本界面等等。例如,可以呈现向用户提供对各种请求进行加载、导入、选择、读取等的区域或手段的GUI,并且该GUI可包括呈现这些动作的结果的区域。这些区域可以包括已知的文本和/或图形区域,包括对话框、静态控件、下拉菜单、列表框、弹出式菜单,编辑控件、组合框、单选按扭、复选框、按钮以及图形框。另外,可使用便于信息传达的实用工具,诸如用于导航的垂直和/或水平滚动条以及确定一区域是否可被查看的工具栏按钮。
用户还可与这些区域交互,以便通过诸如鼠标、滚球、键区、键盘、笔、用照相机捕捉的姿势和/或语音激活等各种设备来选择和提供信息。通常,诸如键盘上的按钮或回车键等机制可在输入了信息之后采用以启动信息传达。然而,可以理解,所公开的各方面不限于此。例如,只突出显示一复选框可以启动信息传达。在另一示例中,可以使用命令行界面。例如,命令行界面可通过提供文本消息、产生音调等来向用户提示信息。用户然后可提供适当的信息,诸如对应于在该界面提示中提供的选项的字母数字输入或对提示中所提出的问题的回答。可以理解,命令行界面可以与GUI和/或API结合使用。另外,命令行界面还可以与硬件(例如,视频卡)和/或具有有限的图形支持的显示器(例如,黑白、以及EGA)、和/或低带宽通信信道结合使用。
在一示例中,采集模块220被配置成处理来自数据集210的一个样本,并关于什么值是重要的作出判定。基于该确定,发现模块250可索要来自用户的(例如通过接口组件255)关于判定是否正确的反馈。基于从用户处接收到的反馈,关于哪些值重要的信息可被保留(例如在知识库中)。如果来自用户的反馈指示由采集模块220作出的判定不正确,则可索要来自用户的进一步输入以改进系统性能。
基于知识管理器组件205保留或形成的参考数据225,数据增强组件215被配置成对数据集210执行处理。该处理可包括提纯数据、匹配数据元(例如重复数据去除)、以及用于改进数据的其它过程。如果数据具有足够的质量,则数据增强组件215可确定对数据的修改将不会是有益的。
在一方面,数据增强组件包括被配置成评估与数据集210相关联的数据质量的质量分析模块260。数据质量表示数据适合商业用途(以及其它用途)的程度。因为数据可由多个系统和多方跨机构和地理边界生成,所以数据常常包含不准确、不完整、或陈旧的数据元。质量分析模块260被配置成利用围绕数据质量的各种数据质量问题来解决和修正这些问题。根据一些方面,质量分析模块260可确定质量问题不存在或者数量不够多,因此,将不执行数据的提纯(或其它处理)。
在一示例中,质量分析模块260可将一致性用作数据度量。一致性涉及多个值是否表示相同的含义、和/或多个数据元是否被一致性地定义和理解。在一示例中,质量分析模块260可确定收入是否总是用美元来表示,或者收入是否还可能用欧元来表示。
质量分析模块260还可执行对数据是否完整和相关信息是否可用的分析。完整性查询可询问数据值是缺失还是处于不可使用状态的问题。在一些情形中,缺失数据是不相关的,但当缺失信息对所定义的商业过程是关键的时,完整性就变成问题了。完整性缺失的一个示例是可能具有消费者数据库中20%的姓字段空白的数据的系统。在另一示例中,系统可具有50%的邮编列为“99999”的数据。在又一示例中,如果存在其中总共75,000个记录中只呈现50,000个值的电子邮件字段,则电子邮件字段是66.6%完整的。
可由质量分析模块260分析的另一质量度量或问题涉及符合度。符合度涉及是否期望数据值符合所定义的格式,并且如果符合则所有(或基本上所有)的值是否符合那些格式。维持与所定义格式的符合度对数据表示、呈现、集聚报告、搜索和建立关键关系有用。例如,两个不同系统中的性别代码(例如男、女、未知)可不同地表示。在第一系统中,代码被定义为“M”,“F”和“U”,而在第二系统中,代码显现为“0”,“1”和“2”。质量分析模块260可被配置成因变于与数据相关的知识(例如,第一系统和第二系统中的列都与如知识管理器组件205所确定的性别代码相关)使这两个系统相关。
质量分析模块260可分析的另一度量是数据的准确性。例如,质量分析模块260可确定数据对象是否准确地表示了期望数据对象建模的现实摂值。例如,产品名称或人名、地址的不准确拼写、以及甚至数据的不及时或非当前(例如过时)会影响操作和分析应用。例如,消费者的地址是有效的USPS地址,但是邮编不准确并且消费者姓名包含拼写错误。在另一示例中,数据的准确性可与数据是否准确地表示了实际或可确认源相关。例如,供应商可能被列为活动摂,但却在六年前破产。
质量分析模块260还可被配置成评估数据的有效性、或数据值是否落在可接受范围内。例如,对于职位级别51和52,薪水值要在$60,000至$120,000之间。质量分析模块260可审阅数据,且确定该数据是否符合可接受范围。
质量分析模块260可分析的另一度量是数据的排他性。当数据出现数次时这种排他性数据质量问题会产生。例如,在系统中出现了Jack Ryan和John Ryan两者,但是他们却是同一个人。由此,质量分析模块260可确定在数据集内是否存在相同数据的多个非必要表示。跨多个系统无法对每个实体维护单个表示提出了多个弱点和风险。测量对重复数据测量在记录总数中所占百分比。可存在重复的个人、公司、地址、生产线、帐单等等。以下示例表格示出数据集中存在的重复记录。
姓名 |
地址 |
邮编 |
城市 |
州 |
Mag.Smith |
545 S Valley ViewD.# 136 |
34563 |
任何城镇 |
New York |
Margaret smith |
545 Valley View ave unit 136 |
34563-2341 |
任何城镇 |
New-York |
Maggie Smith |
545 S Valley View Dr |
|
任何城镇 |
NY. |
质量分析模块260可评估质量度量的一个或多个,并且确定是否有必要修正数据。在一些情形中,如果质量度量指示该数据具有高于阈值水平的质量水平(例如98%,95%等等),则质量分析模块260可确定不执行数据修正。然而,如果质量水平低于阈值水平,则质量分析模块260可推荐修正数据(例如通过数据增强组件215)。根据一些方面,质量分析模块260向知识管理器组件205提供用于分析的质量度量和所获取的值,以保留为知识库的一部分和/或参考数据225。
图3示出根据一方面的用于数据质量解决方案的另一系统300。系统300被配置成提供基于知识的解决方案,集中于能被重新使用来执行各种数据质量操作(诸如数据提纯和匹配)的数据质量知识库的创建和维护。系统300(以及本文中所公开的其它方面)提供快速的、容易部署的、容易使用的、可通过最少努力建立的数据质量产品。至此,所公开的各个方面集中于创建公开环境以消费第三方知识。
知识库是基于质量专属知识库的知识驱动解决方案的一部分。根据一些方面,质量特定知识库可驻留在结构化查询语言(SQL)服务器中。SQL是一种可用来更新、删除和/或请求来自数据库的信息的编程语言(或声明性计算机语言)。由此,SQL可被用来管理关系数据库管理系统(RDBMS)中的数据。SQL的范围包括数据插入、查询、更新和删除,以及数据访问控制,以及其他。一般而言,RDBMS包括存储在表中的数据,而各个表之间的关系也被存储在表中。尽管参照SQL和RDBMS来讨论各个方面,可以理解,就所公开的各个方面而言,可利用其它编程语言和/或数据库管理系统。
知识库被配置成以数据域形式储存综合性的质量相关知识。数据域封装特定类型数据源的语义表示。例如,数据源的类型可包括姓名、城市、州、邮编、标识号等等。对于每个数据域,知识库储存能用来提纯企业商业数据或其它数据的所有标识出的词、拼写错误、规则和外部参考数据。
系统300被配置成以实现与数据(例如企业商业数据)对齐的快速知识采集的方式建立知识库。例如,系统300可被配置成通过经由数据样本和用户反馈采集知识来建立知识库。该知识库经由计算机辅助的知识发现过程、或通过用户生成的知识和第三方参考数据提供者的智力成果来丰富。
系统300包括:配置成获取关于数据的信息的知识管理器组件310以及配置成根据所获取的信息对数据执行一个或多个质量增强任务的数据增强组件320。知识管理器组件310被配置成通过处理数据样本并请求与所处理样本相关的用户输入来获取信息。根据一些方面,知识管理器组件310所获取的信息被供应给知识库330并被包括在知识库330中。
根据一些方面,知识库330被配置成储存与特定类型的数据源相关的所有知识,并且可由机构的用户(例如数据管理员)维护。例如,第一知识库可被配置成管理机构的消费者库,而第二知识库可被配置成管理员工数据库。
一个或多个知识库可包含与数据源相关的数据域(例如,姓名、城市、州、邮编、id号)。例如,知识库可储存可用来对数据源执行质量动作的所有标识出的词、拼写错误、验证和商业规则、以及参考数据。知识库330可包括数据描述(例如每一列中所包括的数据的类型)、正确值列表、常见拼写错误列表、规则、策略和/或其它参数。
包括在知识管理器组件310中的是配置成采集数据信息以创建知识库330的访问模块340。根据一些方面,知识库330可从用户数据350和/或第三方数据360构建。根据一些方面,知识库330可基于由知识管理器组件310执行的与用户的交互(例如计算机辅助的知识采集)来构建。访问模块340可在接收数据请求的几乎同时或在不同时间获取信息。
还包括在知识管理器组件310中的是配置成捕捉和保留与用户数据350和/或第三方数据360的历史信息的历史模块370。例如,历史信息可包括关于过去发现的问题、问题已修正或尚未修正等等的细节。历史信息还可与关联于第三方数据源的数据质量问题(例如关联于相同第三方数据源的相似数据质量问题)相关。数据增强组件320被配置成与来自知识库330的信息大致同时地利用历史信息来对数据执行一个或多个操作以提高数据集的质量。
统计模块375可被配置成保留与关联于第三方数据360的源的数据质量度量相关的统计信息(例如,如由数据增强组件320提供)。数据增强组件320被配置成与来自知识库330的信息大致同时地利用历史信息来对数据执行一个或多个操作以提高数据集的质量。
推断模块380被配置成作出有关数据(例如用户数据和/或第三方数据360)的一个或多个推断。例如,推断可以是来自每个源的数据包含相似的信息(例如性别代码),并且“M”和“male”(男性)是相同的,而“F”和“female”(女性)是相同的。在一些方面中,推断可以是:当一列中的大部分词是城市名时,则整个列与城市名相关,即使一些城市名并没有被知识管理器组件310识别出。根据一些方面,推断模块380利用历史模块370所创建的历史数据来执行推断。附加地或替代地,推断模块380利用统计模块370所创建的统计数据来执行推断。
在一示例中,推断模块380可采用各种基于人工智能的方案来执行其各个方面。例如,用于确定特定动作是否改进了数据质量的过程可通过自动分类器系统和过程来实现。分类器是将输入属性矢量x=(x1,x2,x3,x4,xn)映射到该输入属于某一个类的置信度的函数,即,f(x)=置信度(类)。分类可采用基于概率和/或基于统计的分析(例如,分解成分析效用和成本)来预测或推断将提高数据质量且要自动执行的动作。
还包括在知识管理器组件310中的是配置成创建数据的一个或多个域的域创建模块385,其中这些域被用来填充知识库。例如,域可以是基本域、合成域、或交叉域。通过域创建模块385对特定类型域的创建可因变于数据和/或数据的属性来选择。
例如,域创建模块385可创建包含数据属性和关于数据的知识的基本域。该域可包含核心值列表、错误列表、同义字列表、验证规则等等。属性的示例是包含公司名称的列。在一些方面中,该域可包含向数据质量引擎指示该域内所包含的数据要由例如第三方来提纯的陈述。
在另一示例中,域创建模块385可创建合成域。有时存在作为交叉域(例如,跨多个列)的规则。例如,规则可以是如果名字为Jack,则性别是男性。另一示例规则是如果城市是Des Moines(得梅因),则州为爱荷华州。尽管这些仅仅是出于解释目的的简单规则,但就所公开的多个方面而言,可利用更复杂的规则。描述数个列中数据的特征的规则被称为合成域。
基本域和合成域由编译组件390集聚以创建知识库330。例如,知识库330和其内的所有域可被封装为单个单元。此单个单元是可移动的。例如,已创建的域可置于可检索位置(例如Web上)。当置于可检索位置时,该域可被浏览、下载到产品的当前实例等等。根据一些方面,多个域可被共享,或者可从第三方数据源购买。
图4示出根据一方面的配置成提供数据质量解决方案的系统400。包括在系统400中的是被配置成基于采集关于数据的知识和处理所采集的知识的明确分离来提供数据质量解决方案的知识管理器组件410和数据增强组件420。
包括在数据增强组件420中的是配置成修正不正确数据的提纯模块430。例如,提纯模块430可处理数据并修正数据内的名称、地址等。在一些方面中,提纯模块430被配置成修改、移除或丰富不正确或不完整的数据。在一些方面中,提纯模块430被配置成执行数据的修正、标准化和/或丰富。
还包括在数据增强组件420中的是配置成标识第一数据集和第二数据集之间的重复数据的匹配模块440。还包括的是配置成选择性地去除标识出的重复数据的合并模块450。根据一些方面,合并模块450可在第二数据集和第一数据集合并之前、在两个数据集合并的几乎同时、或两个数据集合并之后移除标识出的重复数据。在一方面中,第一数据集和第二数据集可属于同一用户。
根据一些方面,匹配模块440被配置有寻找重复数据的能力,重复数据可以是语义重复数据(例如Shanetz Corporation,Shanetz Corp.和Shanetz Ltd.)以及绝对重复数据(例如Shanetz Corp.和Shanetz Corp.)。可由匹配模块440标识出的重复数据的另一示例是同一公司的拼写错误表示。尽管这被称为匹配,但它也可被称为重复数据去除或实体解析。在一些方面中,匹配模块440被配置成标识、链接或合并多个数据集内或跨多个数据集的相关条目。
包括在知识管理器组件410中的是配置成跟踪和监视质量动作状态和数据质量的监视模块460。例如,监视模块460可执行为数人监管一产品的管理功能,并跟踪谁正在做什么、正在运行的过程等等。可以理解,任何数据收集是在已经显式地(或在某些情况下隐式地)接收到来自被跟踪的个人或组织的授权之后进行的。例如,消费者(或通过获授权个体的组织)可同意共享个人以及非个人信息,并且可以向消费者(或通过获授权个体的组织)呈现一个或多个机会来选择退出对数据的收集。在一些方面,该个人或组织必需在数据被收集之前采取肯定动作。根据其他方面,该个人或组织在数据被收集之前采取肯定动作来阻止对数据的收集,这阻止了这样的数据收集。
知识管理器组件410还包括配置成分析数据源并提供对数据质量的识别力的剖析模块470。这种分析和识别力可有助于标识数据质量问题。例如,如果存在有1000个消费者的列表,则可执行数据质量解决方案并且使用所提供的任一解决方案。然而,如果存在有100万个消费者的列表,则关于数据质量解决方案要应用于什么数据、和/或是否对所有数据或数据子集执行该数据质量解决方案作出判定。由此,剖析模块470还可作出数据是否是好数据、以及如果执行该针对数据的数据质量解决方案将改进数据的判定。例如,如果数据已被视为好数据,则可能不执行数据质量解决方案,这可节约资源(例如时间、开销、处理能力等等)。根据一些方面,剖析模块470与图2的质量分析模块260协同工作。
图5示出根据一方面的配置成提供数据重复去除的系统500。包括在系统500中的是配置成基于有关已通过知识管理器组件520获取的数据(例如保留在知识库中)的知识来执行各种操作(包括数据的重复去除)的数据增强组件510。
数据增强组件510包括配置成匹配数据源540内的数据并标识重复数据的比较模块530。例如,数据源540可包括第一数据集和第二数据集。在一方面中,第一数据集和第二数据集可属于同一用户。在另一示例中,可标识出第一数据集和第二数据集之间的重复数据以在合并两个数据集时消除重复数据的创建。根据一些方面,数据源540(或一个以上的数据源)可以是第三方数据市场,并且来自数据市场的数据可被用来通过参考数据服务来提纯和丰富数据。数据源540的另一示例是所公开的各个方面可与之具有开放集成关系的第三方参考数据提供者。数据源540的另一示例是包含可用于下载的数据质量解决方案知识的网站。数据源540的又一示例是从用户的数据源(例如机构数据)创建多个域。数据源540的再一示例是通过数据质量解决方案变得即时可用的数据域集合。
比较模块530还被配置成创建数据的综合视图。例如,该综合视图可包括重复数据,但是这些重复数据出于数据输出和分析目的被组合为单个条目。例如,在一些方面中,仅一个重复数据被呈现给用户,而其它重复数据在该一个重复数据之下分层排列。
为便于比较模块530对数据的匹配,匹配策略模块550被配置成建立匹配策略。例如,匹配策略模块550可被配置成获取与数据源540中所包含的数据相关一个或多个策略。根据一些方面,至少一个策略可被保留于在数据源540外部的位置。例如,策略可与商业目的(例如,到年底可将消费者库增加7%)相关。基于此策略,在跟踪周期开始时具有简明消费者列表会是有用的,其中该消费者列表中没有重复数据。
在它与消费者数据库相关时,单个消费者可多次地列出,每一次有一个或多个差异。在一示例中,对于同一公司,消费者可具有四个列示,如下所示:
XY Sea Corporation,Shawn lakes,7XY SeaWay,Somewhere(某处),NH11111
XY Sea,Lakes,Seven XY Sea way,Somewhere,NH
XY Sea Corp.,Shawn Henry Lakes,7XYC way,Somewhere,NH
XY See,S.H.Lakes,Somewhere,NH
如上所示,尽管只有一个消费者(XY Sea Corporation),但有四个列示。这样的不精确性会产生与实际数量的消费者相关的错误数据。此外,如果在产生阈值数量(例如年度开始时的消费者数量)时不修正这些重复数据,则可呈现目标不能达到。例如,如果在年度中间发现重复数据并加以修正,则可导致针对每个消费者的一个、两个或三个(例如去除重复数据之一、去除全部三个重复数据等等)条目的净减少。
为了标识出重复数据,知识管理器组件520中包括的采集模块560(例如图2的采集模块220)可被配置成在各种情形下引导用户。例如,可询问用户审阅至少一个数据子集,并标识出重复数据、替代拼写、常见的拼写错误、同义词等等。至少部分地基于采集模块560获取的信息,标识模块570被配置成创建可包括标识出每一重复数据的数据库或电子表格的匹配项目。根据一方面,该数据库和/或电子表格可被呈现给用户。选择模块580被配置成选择重复数据之一作为“幸存”重复数据。例如,其它非幸存重复数据可被删除、合并和/或从视图中去除。
例如,匹配项目的数据可与图6的示例性匹配结果域600相似地构建。如图6所示,显示与表格中标识为匹配一个或多个其它行的每一行相关的信息。例如,行1具有匹配行2-4,而行5具有匹配行6。还包括的是分数602,因为其与该行中所包含的数据是正确数据的置信度水平相关。
在匹配结果域600中可提供其它信息。这种信息可包括可以是与自动应用的修正相关的供信息的自动核准细节604。可以表格格式(或以不同格式)呈现的其它信息包括匹配细节606和合并细节608。同样提供的可以是所利用的规则610、以及剖析器数据612和通知细节614。
根据一些方面,用户可与示例性匹配结果域600交互以更新或修正数据。例如,机构的规则或策略可改变。由此,用户可访问规则610选项卡并更新其中所包含的规则。在另一示例中,用户可审阅合并细节608并指示不要合并的一些行。匹配结果域600中的被用户修改的信息可被(图5的)数据增强组件510用来对数据执行后续处理(例如修正、重复去除等等)。根据一些方面,用户所作修改可由指示管理器组件520捕捉并添加至知识库。
图7示出根据一方面的用于基于知识的数据质量解决方案的示例性系统体系结构。如图所示,数据质量服务器700与一个或多个数据质量(DQ)客户机705和/或一个或多个第三方数据源708通过接口连接。这些数据质量客户机705可包括数据集成组件710(示为SSIS数据质量(DQ)组件)以及其它客户机715。根据一示例,数据集成组件710可在相关应用(例如数据库程序或应用)中提供和执行,其中可提供知识库的映射和选择。在一方面中,知识库已经存在,并且提供可配置和可定义的(例如提议做什么)附加设置。根据一些方面,数据集成组件710可被配置为同步数据流变换组件,其根据与指定数据质量知识库相关联的域值、规则和参考数据实现对输入数据的修正。
在一些方面中,数据质量客户机705通过专用的数据质量解决方案客户机提供自助数据质量体验,其中没有数据库经验的用户可创建、维护和执行数据质量操作。例如,通过与用户界面720的交互设立和准备时间将最少,该用户界面提供计算机辅助的数据采集并且可便于与用户的交互。通过计算机辅助的数据采集,可获得知识发现和管理725,可执行交互式数据质量项目730,并且可实现数据探查735。
知识发现和管理725涉及创建和维护数据质量知识库(DQKB)。例如,知识管理是使数据管理员(或其他用户)能手动地定义、更新和审阅DQKB的知识的功能集。知识发现是来自数据源样本的知识的自动化计算机辅助采集。知识发现和管理725还提供其中可定义将用作管理匹配过程的策略的规则集的匹配策略训练。知识发现和管理725还提供的是参考数据探查,其中用户可探查、选择来自第三方的参考数据,并将其集成到DQKB域中。
交互式数据质量项目730根据与所设计的数据质量知识库相关联的域值、规则和参考数据实现对源数据的修正、标准化和匹配。
根据一些方面,还提供可涵盖若干管理功能的管理。管理功能的一个示例是监视当前和过去的数据质量过程,诸如数据修正和匹配。另一管理功能涉及参考数据提供者的定义。管理功能的其他示例是与数据质量活动相关的参数的设置。
一个或多个第三方源708可包括参考数据服务740和/或参考数据集745。在一示例中,参考数据服务740和/或参考数据集745可被配置成接受数据,并且可输出该数据为有效或无效。在另一示例中,可接受数据,并且输出可以是数据是否为有效和/或用于改进数据质量的建议。在一些方面中,参考数据服务740和/或参考数据集745被实现为一个或多个API。
该一个或多个第三方源708可以是例如参考数据服务提供者。参考数据服务提供者可提供服务,这可与面向服务体系结构(SOA)方法相似。例如,SOA是用于设计和开发可互操作服务(其可以是商业功能)形式的软件的原理和/或方法集合。SOA可在开发和集成阶段期间使用。此外,SOA向服务用户提供变得知晓可用SOA的能力。
数据质量服务器700能够与可以是外部参考数据源的知识库750交互。外部数据源可以是例如例行地搜集或收集与各种主题有关的信息的商用数据源。例如,商业数据源可收集与分类参考数据服务755、分类参考数据760、和/或数据质量域存储765相关的信息。根据一方面,该用户可选择知识库并从云(例如云计算)下载知识库。附加地或替代地,用户可创建知识库并将其上传至云(例如云计算)。
图8示出根据一方面的数据质量(DQ)服务器800的组件。数据质量服务器800可与数据质量客户机805和第三方810交互。数据质量服务器800可包括各种应用程序接口(API)。例如,数据质量服务器800中所包括的可以是配置成浏览、设置、验证和执行与知识库820和数据质量引擎825相对应的其他功能的研究和开发(RD)服务API 815。在另一示例中,数据质量服务器800中所包括的是配置成浏览、获取、更新和执行与知识库820相关联的其他功能,并对数据连同知识库820中所包含的信息执行动作(例如提纯、匹配等)的参考数据API 830。
数据质量引擎825包括配置成访问可包括数据质量活动项目840的数据质量项目存储835的知识发现组件832。
数据质量引擎825中所包括的数据剖析和探查组件845被配置成访问通用知识存储850。通用知识存储850中所包括的可以是由商业源维护的一个或多个商业数据域855。还包括在通用知识库850中的是一个或多个本地数据域860。
还包括在数据质量引擎825中的是配置成基于从知识库820中检索的信息来提纯数据(例如修正错误)的提纯组件865。匹配组件870也被包括在数据质量引擎825中。匹配组件870被配置成去除数据重复或去除数据中发现的重复。
数据质量引擎825还包括可供应给知识库存储880的参考数据875。在一些方面中,参考数据可从第三方源下载。例如,如果存在具有知识(例如美国地址)的第三方,则可检索该知识而非不得不手动创建该知识。根据一些方面,知识库存储880可包括公布知识库885。公布知识库885可以是被创建并诸如在云中或以另一可检索格式保存的一个或多个知识库。例如,知识库可被创建并上传至存储(例如知识库存储880)和/或知识库可从存储下载。
图9示出根据一方面的使用数据集成的批量提纯。如图所示,数据质量解决方案(DQS)服务器900包括可包括与数据相关的众多信息的知识库910,或对该知识库910具有访问权。例如,该知识库910能包括值和/或规则920以及参考数据定义930。例如,值和/或规则920可与要如何表达数据相关。规则可以是词以例如大写字母开始。参考数据定义930可包括与数据有关的对知晓该数据有用的信息。例如,定义可解释数据(例如,此列中的数据是访问网站的次数)。
数据质量服务器900还被配置成获取参考数据服务或云数据服务940。例如,云计算可提供各种计算能力(例如,软件、数据访问、存储服务等),而无需用户(例如,终端用户)知晓递送服务的系统的物理位置和/或配置。在一示例中,知识库可被储存在云中作为参考数据服务。
数据质量服务器900可与数据集成包950(例如SSIS包)通过接口连接,数据集成包950可执行包括获取与数据相关的附加信息的源和映射功能955的各种功能。数据修正组件960被配置成修正与数据相关联的一个或多个错误(例如拼写错误、不符合规则等等)。目标功能960被配置成向适当的终端用户应用(例如,电子表格、数据、表格等等)提供经修正数据。在一示例中,经修正数据被提供给数据质量服务器900,该数据质量服务器900将经修正数据提供给用户。
在一些方面中,数据集成包950被配置成从云数据服务940所提供的数据创建新记录970。例如,新记录970可以是作为已包含在用户数据库内的记录的附加的记录。在一些方面中,数据集成包950被配置成提供修正和建议975。例如,数据的一个或多个改变(例如拼写修正、缺失数据的插入、数据从数据库中的一个位置移动到数据库中的另一个位置等等)可被呈现给用户,并且基于用户接收到的回复,可自动实现一个或多个修正。在一些方面中,正确记录980以及无效记录985可基于知识库910来动态地标识。例如,符合策略和/或规则的记录可被标识为正确记录980,而偏离策略和/或规则的那些记录可被标识为不正确记录985。
图10示出根据一方面的用于创建知识库并使用知识库来改进数据质量的方法的非限制性流程图。在1000,执行知识发现。该知识发现可包括处理从数据集中取得的样本并从用户处获取关于该样本的数据。例如,请求可被发送给用户以便用户输入。所发现的知识可包括正确值列表,这些正确值可用于属性(例如,电子表格中的列)、属性的常见拼写错误、同义词、规则、描述、(一个或多个)数据模型等等。根据一些方面,在发现知识时的几乎同时(或不同时间),知识信息被保留在知识库(例如,在计算机可读存储介质)中。
在1010,所发现的知识被用来修正一个或多个数据质量问题。例如,如果发现常见拼写错误,则可动态地修正拼写错误。在另一示例中,如果一个列被标识为包括州名且字段之一包括拼写“Idaoh”,则该字段可被修正为“Idaho”,因为该字段是用于州的(并“Idaoh”不是常见拼写错误,或者是特定人的常见拼写错误)。知识发现是持续的,从而每当使用和/或修正数据时可采集附加知识。
图11示出根据一方面的用于基于知识的数据质量解决方案的方法的非限制性流程图。在1100,对一数据集(或数据集的子集,诸如数据中的一个样本)执行知识发现。例如,知识发现可基于数据本身(例如,语义的解释),和/或基于用户(包括信息技术专业人员和数据管理员)所提供的信息。用户所提供的信息可以是数据的属性列表(例如,在一些实例中“Phillis”是名字的正确拼写,但是“Phyllis”也是正确的)。用户还可基于对其他信息的请求(例如,“已输入词‘Phillis’,是正确的吗?”)提供信息,并且该用户可作出回复(例如,“是”、“否”等)。以此方式,知识发现可通过交互式计算机辅助过程扩展。根据一些方面,所发现的知识可被保留在知识库中。
在1110,审阅数据集以便于标识一个或多个质量问题。当数据被(例如手动地或自动地)输入或从外部源(例如第三方数据提供者)引入时,可产生各种质量问题。在一示例中,如果正在将数据手动地输入数据库,则一些数据会因为人为错误而被不正确地输入(例如,移置数字、错误拼写、缺失数据、重复数据等等)。在另一示例中,当数据从第三方引入时,该数据可具有各种错误或质量问题。这种错误或质量问题包括但不限于:手动输入数据时的认为错误、随现有数据创建的重复数据(例如,来自第三方的数据是已包含在数据库中的数据的重复数据)、数据中的不一致性(例如,当第三方数据用“M”,“F”,“U”或“1”,“2”,“3”等标识时,用户数据库使用词“男性”、“女性”和“未知”)。
在1120,因知识发现和所标识出的质量问题,这些所标识出的质量问题被修正。例如,有关数据的知识被用来修正问题、或者请求与是否要修正问题相关的其他信息。可以理解,1100的知识发现和/或1110的数据质量问题标识可以是迭代的。例如,例如,可连续地、周期性地、有可变间隔地、或基于各种参数(例如,至少一个数据集已改变,已输入了新数据,已对数据执行了查询等等)来对数据查阅数据质量和知识的任一个(或两者)。
在一示例中,如果在1110没有(或几乎没有)标识出数据质量问题,则不可修正数据。然而,在其他示例中,不管标识出的数据质量问题的数量有多少都修正数据。
根据一方面,出于统计目的(例如为了访问数据源的质量),利用所标识出的质量问题。此外,可利用所标识出的质量问题来验证数据质量解决方案的有效性。例如,在1120修正了问题之后,可再次在1110审阅数据集来确定问题是否仍然存在。如果问题仍然存在,则可在1100收集其他知识以确定要如何修正问题(例如通过索要来自用户的反馈)。如上所述,知识的收集可以是持续的,从而在使用数据时,收集有关数据的附加信息并以可检索格式储存。
图12示出了根据一方面的另一方法的非限制性流程图。在1200,捕捉数据以包括在表格、数据库、电子表格中,或以另一格式包括。当用户手动输入数据时、当从外部源(例如网站、第三方数据源等)引入数据时,可捕捉数据。在另一示例中,可从用户和/或第三方源维护的另一表格、数据库、电子表格等获取数据。在一些示例中,数据可来自表格并且该数据的目标是电子表格(例如,不同格式)。例如,用户可具有包括对特定主题感兴趣的消费者清单的表格,并且愿意用近来对该主题表示新区的其他消费者补充该表格。可从搜集市场化数据的第三方源处获得附加消费者,并将其添加至用户所维护的表格中。
在1210,通过例如计算机辅助的知识采集从用户处获得有关数据的知识。该有关数据的知识可被用来提高数据质量。此外,该知识可被保留为知识库。根据一方面,知识库可被保留在提供移动性的位置中,诸如远程存储位置(例如,云中)。所获得的知识可基于直接信息(例如,与用户的交互、用户输入)或基于推断(例如策略、规则、模型)。
该数据和/或有关数据的知识在1220审阅以确定是否存在一个或多个数据质量问题。根据一些方面,该审阅可包括评估一个或多个规则(例如知识)来确定数据是否符合规则。在另一方面中,该审阅可包括将至少一个数据子集(例如属性或列)和常见拼写错误、同义字等的列表作比较。
作为审阅的结果,在1230,可标识出一个或多个质量问题(如果发现了任一个的话)。例如,规则可以是列中的项以数字8结束。不符合该规则的列中的项被加以旗标或以其他方式标记。在另一示例中,可标识出重复数据(例如基于对数据的语义理解),并且可标记重复数据的一个或多个以供删除。
在1240,对是否可动态地应用针对质量问题的解决方案作出判定。例如,如果规则是列中的项要以数字8结束,则在没有其他信息或来自用户或另一源的输入的情况下纠正质量问题是不太可能的。在又一示例中,如果质量问题涉及常见拼写错误,则特定项的拼写能被自动修正。
如果解决方案能被动态地应用(“是”),则在1250,自动地应用该解决方案。如果判定是该解决方案不能动态地应用(“否”),则在1260,发送对附加信息和/或确认的请求。例如,如果要搜集更多信息、替代解决方案存在等等,则该解决方案不可动态地应用。该请求可指示所发现的质量问题,并且还提供对该问题的推荐解决方案。在一示例中,该请求可在用户设备的显示器上被输出为提示,请求用户审阅数据并提供可用来纠正问题的附加信息。根据一些方面,附加信息可指示该数据是正确的。
在1270,作出是否接收到回复的判定。如果在1240已接收到了回复(“是”),则对是否可动态地应用解决方案和/或是否应该获得附加信息作出判定。以这种方式,用户可在获得了对数据的更详细理解的情况下继续提供附加信息,该附加信息可被包括在知识库中。
如果在1270判定为尚未接收到回复(“否”),则处理可结束。替代地,在1260可发送另一请求以尝试获取附加信息和/或确认。
根据一些方面,在已应用了质量解决方案之后或者如果将不应用质量解决方案,可捕捉进一步的数据并且可获得关于现有的、新的、和/或修正数据的知识。以此方式,根据一方面,进行持续的学习过程从而可获得附加知识和提高的数据质量。
图13示出根据一方面的用于执行重复数据去除作为基于知识的解决方案的方法的非限制性流程图。重复数据去除包括标识数据或数据源中的重复数据,并去除该一个或多个重复数据。
在1300建立匹配策略。该匹配策略可基于与数据相关的各种知识。例如,该知识可包括常见拼写错误、同义字(例如William和Bill相同,Corp.和Corporation相同)以及其他数据。
在1310,可进行匹配训练。1310的训练可包括索要对可能重复数据的反馈。例如,可标识出两个或更多个可能的重复数据,并且可向用户发送提示以确认可能的重复数据是否是实际的重复数据。如果可能的重复数据不是重复数据,则可从用户处索要进一步的信息以便于标识出它们不是重复数据的原因。例如,数据被标识为重复数据的原因可被提供给用户,并且可提供与标识不正确的原因相关的信息。所获得的附加信息可被添加至知识库。
根据一些方面,可基于对数据的语义理解进行匹配训练。例如,语义理解可基于词“Corporation”和“Corp.”相同的知识。根据一些方面,基于原样的重复数据进行匹配训练。根据一些方面,可基于对数据的语义理解进行匹配训练。
在1320,基于关于可能的重复数据是否正确的信息,该信息可被用来构建匹配项目。例如,匹配项目可被构建为包括每个重复数据和关于它们为何是重复数据的相关信息的电子表格或数据库。
在1330,来自每个重复数据集的重复数据之一被标识为“幸存”重复数据。这种标识可基于用户偏好和/或规则(例如,选择姓和名的第一个字母大写的重复数据)。例如,如果重复数据之一是“Scott Rosen”且另一重复数据为“Scottrosen”,则将选择第一重复数据“Scott Rosen”,因为该重复数据满足规则和/或用户偏好。如果没有一个重复数据满足该规则,则可使用其他标准以选择幸存重复数据(例如,列表中的第一个重复数据、重复数据之一的随机选择等等)。
图14示出根据一方面的用于交互式提纯数据的方法的非限制性流程图。在1400,接收对改进数据源质量的请求。在1410,访问包括与数据源中的数据元相关的信息的知识库。根据一些方面,访问包括获取针对数据元的参考数据定义。根据一些方面,访问包括获取值和规则以应用于数据元。在一些方面中,访问包括获取被配置成标识和消除数据元中的重复数据的匹配策略。
在1420,从外部源访问参考数据服务。根据一些方面,访问包括访问来自第三方数据服务的参考数据服务。根据一些方面,服务包括选择参考数据服务,其中该参考数据服务通过外部源应用。
在1430,数据元子集因变于知识库和参考数据服务进行修正。根据一方面,修正包括在数据元中查阅不正确记录。进一步地针对此方面,修正包括输出建议(例如,向用户)以修正不正确记录的至少之一。修正可基于接收到对该建议的肯定回复来应用不正确记录之一。
图15示出根据一方面的用于创建知识库的方法的非限制性流程图。在1500,获取与数据源的属性相关联的参考数据。根据一些方面,获取包括获取针对属性的参考数据定义。根据一些方面,获取包括将规则与属性的一个或多个相关联。
在1510,针对数据源的每个属性创建多个域。该多个域的每一个包括属性和与该属性相关联的参考数据。根据一方面,创建包括创建包括与属性相关联的数据质量问题的基本域。基本域的示例包括电子邮件别名、性别和州。在一些方面中,创建包括创建包括两个或多个基本域的合成域。合成域的示例包括以下:
全名(教名+中名+姓)
地址(街道+城市+州+国家)
规则可跨两个或多个基本域应用。域知识包括属性和值。属性的示例是名称和类型。值的示例是正确、错误、同义词。
在1520,多个域的编译被储存为知识库。根据一方面,储存包括将知识库上传至外部源所维护的库。根据一些方面,方法还可包括检索(例如下载)知识库,以及因变于知识库中包含的域对数据执行一个或多个处理。
如本文中所讨论地,所公开的各个方面提供基于丰富知识库的知识驱动的数据质量解决方案。该数据质量解决方案可提供连续的改进,并且可基于连续(或持续)的知识采集。该数据质量解决方案可建立一次,且可重新用于多次数据质量提高,其可针对相同数据或相似数据。所公开的各个方面容易使用且集中于生产力和用户体验。此外,所公开的各个方面是开放和可扩展的,且可应用于基于云的参考数据(例如第三方数据源)和/或用户生成的知识。根据一些方面,所公开的各个方面可与诸如SQL服务器集成服务(SSIS)的数据集成服务或不同的数据集成服务集成。
示例性联网以及分布式环境
本领域普通技术人员可以理解,此处所描述的数据质量解决方案的系统和方法的各实施例可以结合任何计算机或其它客户机或服务器设备来实现,该任何计算机或其它客户机或服务器设备可作为计算机网络的一部分来部署或者部署在分布式计算环境中,并且可以连接到任何种类的数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户机计算机的环境。
分布式计算通过计算设备和系统之间的通信交换提供了计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件等对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化,等等。分布式计算利用网络连接,从而允许客户机利用它们的集体力量来使整个企业受益。在这一点上,各种设备可具有应用、对象或资源,它们可以参与如针对本发明的各实施例描述的访问控制和执行机制。
图16提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象1610、1612等以及计算对象或设备1620、1622、1624、1626、1628等,这些计算对象或设备可包括如由应用1630、1632、1634、1636、1638和数据存储1640表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象1610、1612等以及计算对象或设备1620、1622、1624、1626、1628等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每个计算对象1610、1612等以及计算对象或设备1620、1622、1624、1626、1628等可经由通信网络1642直接或间接地与一个或多个其他计算对象1610、1612等以及计算对象或设备1620、1622、1624、1626、1628等通信。尽管在图16中被示为单个元件,但通信网络1642可包括向图16的系统提供服务的其他计算对象和计算设备,和/或可表示未示出的多个互连网络。每一个计算对象1610、1612等或计算对象或设备1620、1622、1624、1626、1628等还可以含有应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于实现或与根据本公开内容的各实施例所提供的访问控制和管理技术进行通信的应用1630、1632、1634、1636、1638。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构可用于与如各实施例中所描述的访问控制管理系统相关联的示例性通信。
由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与它无关的另一类或组的服务的一个类或组中的成员。客户机可以是进程,即大致上是请求由另一程序或进程提供的服务的一组指令或任务。客户机进程利用所请求的服务,而不必“知道”有关其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图16的图示中,作为非限制性示例,计算对象或设备1620、1622、1624、1626、1628等可被认为是客户机而计算对象1610、1612等可被认为是服务器,其中计算对象1610、1612等担当提供数据服务的服务器,诸如从客户机计算对象或设备1620、1622、1624、1626、1628等接收数据、存储数据、处理数据、向客户机计算对象或设备1620、1622、1624、1626、1628发送数据等,但任何计算机都可取决于环境而被认为是客户机、服务器或两者。
服务器通常是可通过诸如因特网或无线网络基础结构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。按照此处所描述的技术来利用的任何软件对象可以被单独提供或分布在多个计算设备或对象上。
在其中通信网络1642或总线例如是因特网的网络环境中,计算对象1610、1612等可以是其他计算对象或设备1620、1622、1624、1626、1628等通过诸如超文本传输协议(HTTP)等多种已知协议中的任一种与其通信的Web服务器。担当服务器的计算对象1610、1612等还可用作客户机,例如计算对象或设备1620、1622、1624、1626、1628等,这是分布式计算环境的特性。
示例性计算设备
如上所述,有利的是,此处所描述的技术可适用于期望在计算系统中执行数据质量解决方案的任何设备。因此,可以理解,构想了结合各实施例使用的所有种类的手持式、便携式和其他计算设备和计算对象,即,在设备的资源使用可理想地提升的任何地方。因此,以下在图17中所述的通用远程计算机只是计算设备的一个示例。
尽管并非所需,但各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其他设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
图17由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境1700的一个示例,尽管如上所述,计算系统环境1700仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。也不应当将计算系统环境1700解释为对在示例性计算系统环境1700中所示的组件中的任何一个或其组合有任何依赖或要求。
参考图17,用于实现一个或多个实施例的示例性远程设备包括计算机1710形式的通用计算设备。计算机1710的组件可包括,但不限于,处理单元1720、系统存储器1730、以及将包括系统存储器的各种系统组件耦合到处理单元1722的系统总线1720。
计算机1710通常包括各种计算机可读介质,并且可以是可由计算机1710访问的任何可用介质。系统存储器1730可包括计算机存储介质。计算设备通常包括各种介质,各种介质可包括计算机可读存储介质和/或通信介质,此处使用的这两个术语彼此有如下不同。计算机可读存储介质可以是可以被计算机访问的任何可用的存储介质,并包括易失性和非易失性介质,可移动的和不可移动的介质。作为示例而非限制,计算机可读存储介质可结合用于存储诸如计算机可读指令、程序模块、结构化数据、或非结构化数据之类的信息的任何方法或技术来实现。计算机可读存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD ROM、数字多功能盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或者可用于存储所需信息的其他有形的和/或非瞬时介质。计算机可读存储介质可由一个或多个本地或远程计算设备访问(例如,经由访问请求、查询或其他数据检索协议),用于关于该介质所存储的信息的各种操作。
通信介质通常以诸如载波或其他传输机制等已调制数据信号之类的数据信号来体现计算机可读指令、数据结构、程序模块或其他结构化或非结构化数据,且包含任何信息递送或传递介质。术语“已调制数据信号”或信号是指具有以在一个或多个信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。
用户可通过输入设备1740向计算机1710输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口1750之类的接口连接到系统总线1722。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口1750连接。
计算机1710可使用到一个或多个其他远程计算机(诸如远程计算机1760)的诸如网络接口1770的逻辑连接在联网或分布式环境中操作。远程计算机1770可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机1710所述的任何或全部元件。图17所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络1772,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但底层概念可被应用于任何网络系统和任何计算设备或系统。
此外,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于以上所述的示例性系统,参考各附图的流程图还可理解根据所述的主题实现的方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,并非全部所示的框都是实现下面所述的方法所必需的。
除了此处所描述的各实施例之外,可以理解,可以使用其他相似的实施例或者可对所述实施例作出修改和添加以便执行对应的实施例的相同或等效的功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。