CN104756106B - 表征数据存储系统中的数据源 - Google Patents

表征数据存储系统中的数据源 Download PDF

Info

Publication number
CN104756106B
CN104756106B CN201380055136.6A CN201380055136A CN104756106B CN 104756106 B CN104756106 B CN 104756106B CN 201380055136 A CN201380055136 A CN 201380055136A CN 104756106 B CN104756106 B CN 104756106B
Authority
CN
China
Prior art keywords
data
field
value
record
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380055136.6A
Other languages
English (en)
Other versions
CN104756106A (zh
Inventor
阿伦·安德森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ab Initio Software LLC
Original Assignee
Ab Initio Software LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ab Initio Software LLC filed Critical Ab Initio Software LLC
Publication of CN104756106A publication Critical patent/CN104756106A/zh
Application granted granted Critical
Publication of CN104756106B publication Critical patent/CN104756106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

表征数据包括:从接口读取数据到数据存储系统,并存储两组或更多组汇总数据(200A‑200D),所述汇总数据用于汇总存储在所述数据存储系统中的不同相应数据源的数据;以及处理所存储的各组汇总数据,以生成用于表征来自所述数据存储系统中多个数据源的数据的系统信息(208)。所述处理包括:分析所存储的各组汇总数据,以选择存储了满足预定准则的数据的两个或更多个数据源,以及至少部分基于来自用于汇总所选择的数据源中的第一数据源的所存储的一组汇总数据的值与来自用于汇总所选择的数据源中的第二数据源的所存储的一组汇总数据的值之间的比较,来生成所述系统信息,所述系统信息包括识别包括在不同数据源中的记录的字段之间潜在的关系的信息。

Description

表征数据存储系统中的数据源
相关申请的交叉引用
本申请要求2012年10月22日提交的序列号为61/716,909的美国申请的优先权,其通过引用合并于此。
背景技术
本说明书涉及表征(characterizing)数据存储系统中的数据源。
存储的数据集常包括各种特性未知的数据。例如,数据集的取值范围或典型值、数据集内的不同字段之间的关系、或不同字段中值之间的依赖关系可能是未知的。数据剖析(data profiling)可涉及检查数据集的源以确定这些特性。
发明内容
在一个方面中,一般地,一种用于表征数据的方法,包括:从接口读取数据到数据存储系统,并存储两组或更多组汇总数据,所述汇总数据用于汇总存储在所述数据存储系统中的不同相应数据源的数据;以及使用至少一个处理器处理所存储的各组汇总数据,以生成用于表征来自所述数据存储系统中多个数据源的数据的系统信息。所述处理包括:分析所存储的各组汇总数据,以选择存储了满足预定准则的数据的两个或更多个数据源,以及至少部分基于来自用于汇总所选择的数据源中的第一数据源的所存储的一组汇总数据的值与来自用于汇总所选择的数据源中的第二数据源的所存储的一组汇总数据的值之间的比较,来生成所述系统信息,所述系统信息包括用于识别包括在不同数据源中的记录的字段之间潜在的关系的信息。
各个方面可以包括一个或多个以下特征。
所述处理还包括:存储对应于相应各组汇总数据的数据单元,所述数据单元中的至少一些数据单元包括用于描述与对应的一组汇总数据相关联的一个或多个特性的描述性信息,以及基于从所存储的数据单元聚合得到的所述描述性信息来生成所述系统信息。
所述处理还包括方法:应用一个或多个规则到两个或更多个第二组汇总数据,聚合所述第二组汇总数据以生成第三组汇总数据,以及存储所述第三组汇总数据。
两个或更多个第二组汇总数据由相同记录格式的两个或更多个数据源推导出。
所述一个或多个规则对所述两个或更多个第二组汇总数据之间的一个或多个所选择的字段的值进行比较。
用于汇总存储在特定的数据源中的数据的所存储的一组汇总数据,对于所述特定的数据源中记录的至少一个所选择的字段而言,包括值条目的相应列表,每个值条目包括在所选择的字段中出现的值。
对应于特定的数据源的值条目列表中每个值条目还包括:在所选择的字段中出现该值的记录的数量的计数。
对应于特定的数据源的值条目列表中每个值条目还包括:识别在所选择的字段中出现该值的记录在所述特定的数据源内相应位置的位置信息。
所述位置信息包括所识别出的相应位置的比特向量表示。
所述比特向量表示包括经压缩的比特向量。
所述位置信息指向不再存储数据的位置,基于已存储的副本来重构该位置信息所指向的数据。
所述处理还包括:将一个或多个字段添加到所述多个数据源中的至少一个数据源的记录。
所添加的字段填充有由所述至少一个数据源的一个或多个所选择的字段或字段的片段计算出的数据。
所添加的字段填充有由所述至少一个数据源的一个或多个所选择的字段或字段的片段计算出的数据,并填充有来自所述至少一个数据源以外的数据(例如,来自查找以丰富该记录)。
所述处理还包括:将所述一个或多个字段添加到第一组汇总数据。
在另一方面中,一般地,一种用于表征数据的方法,包括:从接口读取数据到数据存储系统,并存储两组或更多组汇总数据,所述汇总数据用于汇总存储在所述数据存储系统中的不同相应数据源的数据;以及使用至少一个处理器处理所存储的各组汇总数据,以生成用于表征来自所述数据存储系统中多个数据源的数据的系统信息。所述处理包括:存储对应于相应各组汇总数据的数据单元,所述数据单元中的至少一些数据单元包括用于描述与对应的一组汇总数据相关联的一个或多个特性的描述性信息,以及基于从所存储的数据单元聚合得到的所述描述性信息来生成所述系统信息。
各个方面可以包括一个或多个特征。
用于汇总第一数据源中存储的数据的至少第一组汇总数据,对于所述第一数据源中存储的记录的至少一个字段而言,包括在所述字段中出现的特异值的列表以及每个特异值所出现的记录的数量的相应计数。
用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述与所述第一组汇总数据相关联的一个或多个潜在问题的问题信息。
所述一个或多个潜在问题包括:被检测为候选主关键字字段的字段中存在重复值。
用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述所述第一数据源中存储的记录的字段的填充度的填充信息。
用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述所述第一数据源中存储的记录的字段中出现的值的唯一性程度的唯一性信息。
用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述对所述第一数据源中存储的记录的字段中出现的值加以表征的一个或多个重复模式的模式信息。
在另一方面,一般地,一种用于表征数据的计算机程序,存储在计算机可读存储介质上,所述计算机程序包括用于使得计算机系统执行上述方法中任一种的各个步骤的指令。
在另一方面,一般地,一种用于表征数据的计算系统,所述计算系统包括:数据存储系统,和被配置为从数据存储系统接收数据的输入设备或端口;以及至少一个处理器,被配置为实施上述方法中任一种的各个步骤。
各个方面可以包括一个或多个以下优点。
在一些数据处理和/或软件开发环境中,数据质量跟踪程序中的一个方面包括在数据存储系统内对数据源(多个)进行剖析,以生成特征描述,其使得该程序能够对数据质量进行量化。特征描述中的信息和从特征描述中提取的数据质量信息使得用户或数据分析员能够更好地理解该数据。除了特征描述中的信息以外,诸如唯一值和特异值的计数、最大和最小值或共同和非共同值的列表、字段特定验证规则(例如,“在信用卡号字段中的值必须是16-位数字”)等可以在剖析之前推断出,并且特征描述将包括逐个字段基础上的每个验证规则的无效例的计数。从长远来看,因为对具有相同格式和出处的一系列数据源进行了剖析,所以数据质量指标(例如,“具有无效的信用卡号的记录的分数比例(fraction)”)可以被定义和用于随着时间的推移监测数据质量。
对于某些程序,数据剖析和数据质量跟踪基本上在逐个字段基础上(因此在一次一个源的基础上)构思而成,(尽管允许涉及跨越源配对的字段的规则)。数据剖析中的验证规则被应用于字段,或字段的组合、字段级,并且在剖析之前被指定,并用作对字段特定值进行分类。多个验证规则可被应用到同一字段,导致包含在被分析的记录的该字段中的值的更多样的分类,而不是简单地分为有效的或无效的。
在剖析之后,在为数据源中的特定字段初始定义之后,可应用数据质量度量。数据质量度量的值可聚合到一定层级上的数据质量测量值,以给出多组相关字段视图。例如,顾客数据中“first_name(名字)”和“last_name(姓氏)”字段的关于质量和填充度的字段特定数据质量度量能够被聚合到“顾客姓名”的数据质量测量值,其依次被与“顾客地址”的类似的经聚合的数据质量测量值结合,以计算“顾客信息”的数据质量测量值。汇总仍然是数据特定的:数据质量测量值“顾客信息”的意思和用途来源于包含顾客数据的字段中的原始数据(相对于例如生成数据而言)。
然而,在某些情况下,数据质量的系统级视图是有用的。例如,在第一种情景下,一个公司有一个包括一千张表格的关系数据库。一千个数据特征描述可以包括关于每一个表格的大量有用的信息,但不提供整个数据库的视图,基本无需数据分析员的更多时间和精力投资。特别是,用不断发展的验证规则对完整的表格进行重新剖析的代价可能很高,而在开始剖析之前构建完整的一组验证规则的延迟可能很长。
在第二种情景下,一个公司迁移到一个新的计费系统。他们现有的计费系统包括多个数据库,好几个数据库包含有一千张以上表格。他们知道在开始数据迁移前应对数据进行剖析,但他们将如何及时消化所有的分析结果,更不用说利用它?此外,在适合迁移之前他们将需要确保数据符合预定义的数据质量标准。他们如何优化精力来清理数据?
在第三种情景下,公司有多个副本数据库,但这些数据库已经被允许进行更新,并可能独立修改。没有人知道它们是否仍然保持同步,或可能有什么差异。他们只是想无需构建验证规则来比较这些数据库——他们更关注一致性而非有效性。
本文描述的技术使得能够基于应用一个或多个表征步骤来表征数据,包括在批量数据的情况下,可以在数据剖析和数据质量跟踪之间执行,既按照处理的次序又依据目的来进行。在一些实现方式中,表征步骤使得数据表征能够基于剖析结果,更有效地应用验证规则或者各种数据质量度量,而无需对数据存储系统中的所有数据源进行多个数据剖析。
从下面的描述中,以及从权利要求书中,本发明的其他特征和优点将变得明显。
附图说明
图1是用于表征数据源的系统的方框图。
图2是数据表征步骤的示意图。
具体实施方式
参照图1,数据处理系统100从存储在数据存储系统中的一个或多个数据源102(例如,数据库表或含有记录集合的其他数据集)读取数据,并使用剖析引擎104对其进行剖析。存储数据源102的数据存储系统可以包括例如任何数量的数据库系统或存储介质,并且可以与数据处理系统100集成或经由一个或多个本地或网络连接进行耦接。剖析引擎104从元数据存储106读取记录格式信息、验证规则、和可选的数据集位置信息、以及剖析配置信息,为剖析做准备。存储在特征描述(profile)存储108中的剖析结果可以包括对数据源102中的任何对象(包括字段、记录或数据集)进行汇总的信息。例如,字段级特征描述汇总关于数据源的记录的特定字段中出现的值的信息。可选地,特征描述结果还可以包括汇总统计文件(census file),其存储被布置为所选字段的值条目列表的统计数据,每个值条目包括所选字段中出现的特异值(distinct value)和(可选的)在所选字段中该特异值出现的记录的数量计数。在剖析之后,从特征描述存储108读取所选对象的剖析结果,并由表征引擎110进行处理。表征引擎110从元数据存储106或用户接口112读取表征步骤、表征配置信息,和特征描述识别信息,以准备执行一个或多个所选表征步骤。来自用户接口112的用户输入可以直接控制表征引擎110的各个方面,包括选择哪些特征描述进行表征、应用哪些表征步骤(可能按类别分组)、以及在特定表征步骤中使用什么阈值。用户输入还可以用于构造将应用的新的表征步骤。可选地,在对一个或多个特征描述应用一个或多个表征步骤之后,数据(例如,表征步骤的结果),可以通过数据质量引擎114传递,用于随着时间的推移进行数据质量跟踪和监控。
在一些实现方式中,存储在特征描述存储108中的文件可以包含位置信息、识别数据源中哪些特定记录包括给定值,并且(所选择的)数据源的(可选地经压缩的)索引副本可以归档在索引源存档116中。在数据源(例如数据库)随时间变化的情况下,这些数据源副本用作在剖析时刻的数据的快照。通过使用附加到表征步骤的结果的位置信息以支持“深入(drill-down)”(例如,响应于通过用户接口112的请求),系统100可以从索引源存档116检索对应于数据表征观察结果(表征步骤的结果)的记录(原则上为穷尽集合)。检索到的记录可以可选地转移到其他数据处理系统用于进一步的处理和/或存储。在一些实现方式中,该位置信息表示采用比特向量的形式。如果出现一个值的记录的数量计数未明确地包括在该值条目中,则可从该位置信息计算出。
基于一个或多个表征步骤的数据表征可以以无视数据(data-blind)的方式应用:忽略字段中的特定值及其含义,取其模式、计数和分布(例如,特征描述和统计数据的组成部分)。例如,对于一些表征步骤,字段保存值“股票(equity)”、“债券(bond)”和“衍生品(derivative)”而非值“p”、“q”和“r”并不重要,但该字段包含带有取一个值的分布的三个值可能是重要的。表征步骤一般应用于一类特征描述(或统计)对象中的任何对象,例如,应用于任何字段级特征描述。这意味着相同的表征步骤可以应用于一类特征描述对象中的每个对象而无需该对象下的语义的先验知识。表征步骤本身的一部分能够确定其可应用性。
例如,字段级特征描述可以包含值的共同模式及其相关的计数的列表(即,展现特定模式的记录的数量计数),其中模式的一个例子通过用“A”取代每个字母并用“9”取代每个数字而保持所有其他字符(例如,空格或标点符号)不变,由字段值形成的模式。“主要模式”表征步骤可以被配置为通过将具有共同(非空白)模式的记录的分数比例与一阈值进行比较(“如果超过95%的被填充记录共用一共同模式,则该字段主要由该模式填充),来确定一个字段是否主要填充了具有特定模式的值。此表征步骤可以应用到所有字段,但只有某些字段将满足该条件并且得到数据表征观察结果(主要以一个模式填充)。2012/0197887号美国申请中可以找到模式的其他例子,该申请通过引用合并于此。
对表征步骤的数据特定(data-specific)(语义)改进和扩展是可能的,并且可以可选地被应用于使得结果更丰富。这样的扩展可以要求对特征描述或统计数据中的值的评估,或可以指标识具有特定语义意义的特殊值。经扩展的表征步骤仍可以应用到其类(或子类,如果表征步骤之前应用的条件是相关的)中的所有特征描述对象。
表征步骤可以分层和/或是有条件的。已确定字段主要以一种模式填充,可以取决于该模式的性质应用额外的表征步骤。例如,如果主要模式表征步骤发现字段主要填充有16位数字,则这可能引发二级(数据特定)表征步骤来检查特定的16位数字值是否满足卢恩测试(Luhn test),其中如果应用到头15个数字的算法可确定第16个数字,则该测试成功。值的取样(sample)可以以共同和非共同值的列表的形式被提供在字段级特征描述中。因为随机成功的几率只有十分之一,所以取样可足以以一置信度确定字段中的值是否有可能满足卢恩测试,但只要不同的情况需要或发现确切集合测试失败,则在统计数据中呈现特异值的完整集合。
数据表征的一个目的是编制观察结果以通知用户(可能是数据分析员或程序员)在预先不知道字段和语义内容之间关联的情况下从数据存储系统的填充结构可以推断出什么。这些观察结果并不一定暗示数据剖析和数据质量监控的值判断(例如,“无效”,“低质量数据”),但可能会简单地识别数据的特性(例如,“主要是空值(null)”,“候选主关键字(key)”)。
作为字段与语义内容分离的一个例子,设想一个推断语义结论的数据表征:满足卢恩测试的由16位数字构成的字段的值被推断为上有效的信用卡号。而通过应用卢恩测试将16位数字识别为有效的信用卡号的表征步骤在表征步骤开始之前已被定义,要应用该步骤的特定字段不一定被预先指定——这些字段可以在表征步骤中推导出来。这种推导待表征的字段的能力使这种类型的表征步骤区别于大多数验证规则,即使像验证规则那样,表征步骤也可以最终实现语义结论(“有效的信用卡号”)。在包括大量的数据库表的数据存储系统的情况下,该区别可以是显着的。它可能需要专业技能和巨大的工作量来从数据库架构(schema)中识别哪些字段应保存信用卡号并指定将被应用到这些被识别出的每个字段的信用卡验证规则,做这些用于要在数据剖析过程中执行的验证规则。与此相反,在数据剖析之后应用的数据表征能够利用特征描述结果来发现哪些字段主要填充有16位数字,并随后对这些字段应用卢恩测试以识别哪些可能包含信用卡号(例如,基于满足该测试的值的统计)。此外,在提供字段包含信用卡号的观察结果后,可以识别并(从统计数据)提取出无效信用卡号的子集。
该信用卡号的例子表明,至少一些验证规则可以改写为表征步骤并追溯应用而无需重新对数据进行剖析。
一些数据表征的结果可能会伴随着从这些结果得到的潜在结论(例如,“此字段保存信用卡号”或“此字段为主关键字”)。在整个系统中,根据各种基于潜在结论和观察结果的性质的各种层次结构,这些结论连同其他观察结果(例如,“此字段主要是空值”)可以以优先的方式(例如,连同表示结论的置信度的评级)被编制并呈现给用户。这向用户群体提供了到他们的数据的各种条目路由,包括数据存储系统的内容的初步纲目(例如,关键字标识、建议的关键字关系、列举的域标识等)、证实或否认潜在结论(语义推论)所需的专业技能(expertise)的指示、以及需要调查以确定它们是否是潜在的数据质量的征兆的问题(例如,参照完整性(referential integrity)违反、域或模式违反、离群(outlier)值等)。
在存储多个数据源的数据存储系统中,具有一个或多个路线图(roadmap)是有用的,即使是宽泛的纲目形式的,也提供了如何查看系统的视角。数据表征能够提供一些细节来填充这样的架构图,并使它们有用。对于关系数据库,数据库的架构提供了一张架构图,但是当注释有从数据本身获知的信息时该架构图被大大丰富了。在数据表征后填充的注释后的架构图在用户接口中可以回答以下问题:每个实体中有多少记录?实体之间的关系的基数(cardinality)是多少?如果关系的基数是多对一或多对多,基数级的分布(即,N对1映射中的数N)及每级的例子是什么?
当沿线而非内容区域和关键字关系(例如,主关键字对外关键字关系)来重新表达架构时还可以有另一种视角。例如,一种替代方案是设想对记录的多个数据集在各个字段中存储值的数据存储系统,通过原始记录计数或通过最多样化字段(通常上主关键字字段)的特异值的计数,按大小对数据集排序,用次级布置以尽量减少最密集数据集之间的关键字关系路径的长度。此表示方式强调数据集中。当加上测量字段的填充度的数据表征的可视化表示方式(例如无填充或空字段),则可以看出数据的完整性和全面性。其中,可以识别出数据不完整的区域用于调查和可能的补救。
第二种替代方案可能集中在个别字段,为每个字段列出一组出现该字段的关联数据集。系统100可以生成用于对用户显示包括字段的表示的图,并且如果它们属于共同的数据集,则做出字段之间的联系。可以通过将最多重用字段放置在中央,并且将最少使用字段放置在图的外部区域来进行总体排序。这里表征问题可以覆盖在该图的上方,例如,与一个字段相关联的每个数据集的相关联表征。例如,与一个字段相关联的数据集的列表可能具有交通灯指示器(具有映射到不同表征状态的绿色/黄色/红色),与每个数据集配对以显示数据集-字段对的表征状态。整个数据集上绑定到特定字段的表征指示器的相关性会易于视觉查看。对所显示的表征步骤的选择可以由用户改变,以提供该步骤结果的全系统视图的可视化。
数据表征的另一个方面,这样的以字段为中心的视图将提供整个系统中枚举域值的使用的显示。某些字段保存常被编码的参考数据,一些数据集为其提供了允许值及其说明的列表。在布置为示出共用共同字段的数据集的列表的视图中,已被发现作为枚举域的字段的填充的验证一致性是有可能的。例如,数据集可以被着色以区分哪些保存枚举域的所有允许值,哪些保存允许值的子集,以及哪些包含超出允许值的额外值。通过编码值的列表的相似性程度进行排序将使得显示变得整洁。当试图传送与大量表征相关联的结果时,这样的可视化是非常重要的。
在数据表征提供的进入数据源的其他条目路线当中,语义推断可能是非常重要的。如已经说明的,有时确认可能的信用卡字段比从整个架构中识别出它们要更容易,因此作为起点,即使不完全准确,也可能优于初始一片空白。同样,在许多场景中,识别特定种类的数据,例如如社保号码的个人身份信息,是很重要的,特别是在包含任意文本的字段中。表征步骤可以被配制来识别这样的信息。
1数据剖析
数据源的数据剖析可以作为数据质量跟踪步骤的一部分来执行。可对各个数据源进行剖析以汇总它们的内容,包括:特异值的计数、唯一值的计数、空白(blank)值的计数、空值的计数、或其他类型的值的数量计数;将每个字段的值与它的相关联的元数据比较,以确定数据类型规范的一致性(例如,数字字段中是否为数字?);将验证规则应用到一个或多个字段来确认,例如,域、模式或一致性;比较字段的函数依赖性;比较一个或多个数据集的字段的参照完整性(即,如果字段被用作联接关键字则数据是否匹配)。用户可见的剖析结果例如是汇总报告或其他类型的数据特征描述,其还可以包括共同、非共同或其它类型的值的列表和值的模式(例如,当每个字母被替换为A并且每个数字被替换为9时,结果是值中表示字母、数字、空格和标点符号的位置的模式)。用于查看数据特征描述的用户接口可以包括各种表格和图表来传达上述信息,并且可以提供从报告深入到原始数据的能力。数据特征描述对于发掘丢失的、不一致的、无效的或者以其他方式存在问题而可能妨碍正确的数据处理的数据非常有用。在开始开发软件之前识别和处理这些问题比在开发之后试图解决首次遇到问题的软件更经济和更容易。
数据特征描述后面可能存在统计文件,其记录数据源的各个字段的特异值的所有集合和具有这些值的记录的数量计数。在一些实现方式中,还捕获标识具有给定值的原记录的位置的位置信息(例如,原始数据源中的存储位置或数据源的一个副本)。
在剖析之前可以指定验证规则来检测各种数据特定的情况。例如,一个字段中的值可以与有效值(或已知的无效值)的枚举列表,或与包含有效(或无效)值的参考数据集进行比较。也可以指定有效或无效值的范围或有效或无效值的模式。也可应用涉及多个字段、阈值和基于示例(case-based)的业务逻辑的层次结构的更复杂的规则。
数据特征描述可能是多个粒度级别。例如,可以是与数据源内的记录中每个字段相关联的特征描述信息、与数据源中每个记录相关联的单独的特征描述信息、以及与数据源作为一个整体相关联的特征描述信息。
字段级别特征描述可包括数量计数,包括字段中特异值的数量,唯一值(即出现一次的特异值)的数量,或空值、空白或其他类型的值的数量。可以创建问题规则以在处理剖析以检测和记录各种状况的过程中将不同的数量与阈值、范围进行比较或相互进行比较。或者,如果特异值的数量大于唯一值的数量,(“特异值的数量>唯一值的数量”),则一定存在“字段的复制”。当汇总到系统级时,能够对每个问题的实例的数量进行计数。
多字段或记录级特征描述信息可包括与涉及多个字段的验证规则相关联的计数、包括相关的填充的模式(例如,一对字段要么都被填充要么都未填充)、相关值和/或模式(例如,如果country_cd(国家代码)为“US”,则邮政编码字段必须用五位数字填充)、或指示多个字段的特定组合(“复合关键字”)的唯一性的计数。
可以在剖析之前添加数据模式码字段到记录中以支持与字段的相关填充关联的表征步骤。数据的模式码被分配为对一个或多个字段或字段的片段的一个或多个类的值的存在进行编码的值。例如,对于记录中的字符串字段使用以下分类填充模式码可以被构造:每个字符串字段被分配“0”值如果其为空值(不存在),被分配“1”如果它已被填充(存在,且不是空的或空白),被分配“2”如果它是空的(存在但不包含任何数据:空字符串),且被分配“3”如果它是空白的(存在但由一个或多个空格字符构成)。记录的值是记录中出现的字符串字段的有序集合的这些值的串联(concatenation),例如五个字符串字段记录的“11230”指示第一和第二个字符串字段被填充,第三个字段为空的,第四个为空白,并且最后一个为空值。另一个模式码可以表示为位图,其指示符字段的设置集合只取两个值中的一个(例如,0或1,“Y”或“N”,“M”或“F”)。当构造数据模式码时组合不同的值类是可能的。数据模式码实现了许多记录级有效性规则以制定记录中多个字段之间的相关性而无需返回到原始数据源。
数据源级特征描述信息可以包括记录的数量、体积(volume)和剖析运行的时间。当处理到系统级时,这给出了数据存储系统中存储的数据源的记录数量和体积的分布。在时间上,可以为各个源单独确定和集体确定记录的数量和/或体积的生长速率。对于数据迁移,知道数据库中未被填充的表所占的部分和具体哪些表未被填充以及其他表中的尺寸分布对于规划迁移很有帮助。对于容量规划,记录数量和体积的度量被添加到数据库中是很重要的。
数据剖析有时被视为基本上一次一个源(source-at-time)。每个数据源有一个特征描述,带有数据源之间的偶然的重叠以用第二个数据源分析参照完整性和函数依赖性。
这种类型剖析后面的一个挑战是,对于大型数据源和/或大量数据源,可能需要很长时间来计算统计文件和数据特征描述。对于什么验证规则是感兴趣的或适于被应用可能也没有先验知识。或者,对于许多源,在剖析开始之前可能需要很长时间来制定和应用对源的集合的验证规则。可以首先获取数据源的数据特征描述而无验证规则。分析数据特征描述、制定候选验证规则并产生第二个特征描述。随着时间的推移,随着验证规则的积累和完善不断重新运行剖析。
2表征步骤
表征步骤可以被应用于现有的数据特征描述及其关联的统计文件。这允许对于数据源的给定集合只执行一次生成完整的特征描述的潜在高代价的步骤。这还能够避免在开始剖析之前制定完整的一套验证规则的延迟。可应用于任何字段级特征描述的预定义的表征步骤的范围可以最初被应用到完整特征描述的结果。可以逐步发展进一步的数据特定表征步骤,其有些类似于验证规则,而不带来采取超过一个完整剖析或在开始剖析之前(在任何剖析结果可用之前)制定完整的一套验证规则的延迟。当数据源变化时,可以再次按需生成完整的数据剖析,并且表征步骤可被应用到所得到的数据特征描述。
下面例子中的“系统”被设想包括两个或多个数据源。如上所述对每个数据源一起或单独进行剖析,并且可能以多向方式进行,例如,将功能依赖性和参照完整性分析与数据的表征分离。这导致两个或两个以上数据特征描述及其相关联的统计文件的集合。表征引擎110处理所选择的数据特征描述。特别是,表征步骤被应用到一个或多个特征描述以生成汇总并扩充有观察结果。此外,表征步骤观察结果可以经过聚合,并进行额外的表征步骤,以生成系统级汇总。系统可以以可能重叠的方式进行分组以形成更大的系统,其结果是对于数据源和系统的不同组合的汇总的集合。
当对数据特征描述应用表征步骤时可以进行跟随各种类型的分析的几个例子(示例性但非穷尽性)。首先设想对单个特征描述的分析,其集中于字段的问题和记录的填充。如果对于一个字段包含空值的记录分数比例大于阈值(例如,“空值的数量/记录的数量>0.95”),则问题“字段主要为空值”可以被检测到并被记录。或者,如果空白、空或空值字段的数量大于阈值(例如,“空白的数量+空的数量+空值的字段>0.95”),则可以标记“字段主要是未填充的”。类似地,用户可修改可调阈值,默认被设置为0.3,来检测“字段显著未填充”。
不成比例的表示一个或多个值的字段可能是感兴趣的。在一些实现方式中,这可能会被检测如下。如果与一值相关联的记录的计数在与任何值相关联的记录的平均计数之上超过一个标准偏差,则表征引擎110可报告“字段主要已被填充”,并且提供主要的值的列表。这可以通过估计共同值及其数量的集合的平均值和标准偏差来进行计算。报告所有值的主要的值和主要值,排除特定值,例如空白或空值(或用户声明的“标志(sentinel)”值)是有用的。作为一个例子,假定共同值的列表包含具有计数10、1和1的三个值。平均计数为(10+1+1)/3=4。标准偏差是sqrt((36+9+9)/3)~4.2。因而10>4+4.2意味着最高计数的值是被主要填充的值。此步骤不需要知道这些值。
此步骤的数据特定的变型例将涉及特定的数据值:假设三个字段值是“A”、“P”和“Z”,并且如果“A”的记录的分数比例大于50%则它是显着的。表征步骤可能被制定如下:“对于包含三个值“A”、“P”和“Z”的字段,如果“A”的记录的分数比例大于50%则它是显着的”。此表征步骤将首先识别哪些字段具有计数为3的特异值,然后,识别出那些具有共同值“A”、“P”和“Z”的,最后识别“A”的分数比例是否大于50%。作为第一印象,这似乎费事,但实际上当应用到系统中所有字段的大批量字段时是很有效的,这是因为该步骤对其相关的字段将被迅速地发现并且应用适当的测试,而无需对数据模型的特别了解。
上面的一些步骤使用剖析输出中存在的一个或多个计数、值列表、或者计数和列表的函数,以检测关于字段的填充问题并进行记录。在一些实现方式中,由表征引擎110执行的对一组特征描述的随后汇总将对每个种类的观察结果进行计数并且可以记录到产生观察结果的该每个数据集/字段/特征描述三重链接。(使用三重是因为对给定的数据集/字段对可以做出多个特征描述,特别是随着时间的推移)。该链接可以被存储以支持在最终汇总特征描述报告中“深入”到做出观察结果所在的每个底层数据集/字段/特征描述。然后,可以使用索引源存档116在所识别的特征描述内进一步深入以找到体现该问题的特定记录。
有时在剖析之前丰富数据集以允许对特征描述进行更详细的分析是非常有用的。例如,在剖析之前如上所述的用于填充的数据模式码可以由系统100添加到数据中。每个字段的填充状态、被填充与否可以被组合成用于记录的码。这使得能够在对特征描述的分析中检测跨多个字段相关的填充模式。例如两个字段可以总是或者都被填充或两者都不被填充。这可以通过检查具有每对字段之间的成对相关性的记录的分数比例从填充模式码的集合来确定——即,可以通过采用“异-非(exclusive-nor)”来计算具有填充状态的逻辑等同性的记录的分数比例:如果两个字段均被填充或两个均未被填充则为1,否则为0。这种通用计算对字段的内容是无视的,因此,可以批处理情况下应用。
数据特定的模式代码也会导致有用的表征步骤。例如,假设原来的记录包含三个感兴趣域对于客户名称的“名”、“中间名”、“姓”。简单的模式码可以是以下字母的串联:如果名字段已填充则为字母“F”,如果中间名字段已填充则为字母“M”,如果姓字段已填充则为字母“L”。如果有任何字段未被填充,则相应的字母不包含在代码中。因此,“FM”代码将表示含有名字和中间名但没有姓的记录。在一个特征描述中,每个码的计数的数量结果将为共同值的列表(并且更一般地,经呈现在该特征描述下层的统计文件中,其中记录了每个特异值的计数)。然后,用户可以从与“FM”关联的计数中确定多少记录同时有名字和中间名但没有姓。该数量不能从数据集的特征描述中存在的、名字字段已填充的记录的计数和中间名字段已填充的记录的计数,而没有填充模式代码来确定。
当名字和中间名已被填充时姓的存在是上游系统发生特定错误的指标。通过监测具有此状况的记录的计数,公司可以监测此错误发生的频率并且验证解决问题的工作的有效性。
指示两个或更多字段的相关填充的问题往往细微很难诊断,因此在特征描述中具有识别相关记录的手段是有用的。可以是在开始时不知道字段之间的相关性与问题的发生关联的情况。这种关联可以通过将已知具有特定错误的记录的列表与和不同填充模式代码关联的记录的列表进行关联来推导出。一旦识别出关联,则历史特征描述可以被用来确定过去发生错误的频率——在知道要寻找什么之前。这可以由系统100建立足够丰富的填充码,以便能够回溯地识别这种相关性来实现。包括数据模式码和相关联的记录位置信息的目的在于部分地促进了这种回溯分析。
在仅考虑字段的填充状态之后,可能的下一个步骤是集中于字段中字符的模式。如果每个字母被替换,比如,替换成“A”,并且每个数字被替换成“9”,留下标点符号和空格不变,则由构成字段值的字符形成模式。往往首先要确立的事实是,字段中所有条目是否主要满足相同的模式。这本身是将被检测和记录的显著的特征,因为其将固定模式的字段区别于那些包含较少约束文本的字段。许多字段值,如日期、信用卡号、社保号和帐号,具有特性模式。例如,日期通常包括各种可能格式的八个数字,如99/99/9999、9999-99-99、或者就只是99999999。认识到这些特性模式其中之一,特征描述中的共同值的列表可以被传递给用于验证为日期的函数——其可能会一致地检查列表中的值:1到12之间相同的两个数字、1到31之间相同的两个数字、以及1910至2020范围内余下的4位数字(视情况也许更窄或更宽)。信用卡号码为16位数字字段,其最后一个数字是可以通过卢恩测试确认它是有效的信用卡号码的校验数字。
如果字段具有主要模式但非通用模式,则例外情况常常是感兴趣的。这可以被检测和记录。如果位置信息例如与每个模式相关联地被记录在特征描述中的记录,则它们可以从汇总报告中通过深入被检索到。
考查字段中的模式还允许将字段的内容比对字段的数据类型规范进行验证。此验证可以被单独记录在特征描述中,但有时可以根据特征描述进行更详细的分析。特别是,例如,如果在明显数字字段中存在字母,这是很明显的。有时帐户号码将被指定例如NUMERIC(10),但特征描述显示帐户号码的前两个字符实际上是字母而非数字。如果这是主要模式,则可以得出推断,帐户号码事实上以两个字母开头,并且错误的是类型规范。这将是在准备一份或多份特征描述时在分析特征描述之后被记录的结论。
在考虑每个字段的数据的模式之后,可以将注意力集中到字段中的一组值。第一个考虑是字段中特异值的数量。具有相对小数量(无论是绝对数量或相对于记录量)的特异值的字段通常包含从一组枚举值的有限集合得到的参考数据。这样的字段与特异值的数量和记录数相当的字段不同。这些字段通常是关键字(唯一标识一个记录)或事实数据(具体数据项,如交易金额,每个记录随机地不同)。关键字也在其他数据集中重用用于链接数据的目的,而事实数据并非如此。数据集之间的交叉联接(cross-join)分析可以确认基于字段值的相对唯一性和重叠范围最初提出的关键字关系。
第三组感兴趣的值是特异值的基数不仅不与记录的数量相当,还少得多。这些值可以是外键或可以是事实数据。可能有必要决定与其他特征描述中的数据进行比较。
考虑具有相对小的数量的特异值的该组字段。记录数量等于特异值的(少)数量的数据集是包含一套完整的枚举值的候选参考数据集。候选参考数据集和字段的识别是显著的,并可以被记录在汇总特征描述中。这样的参考数据集通常具有至少两个字段,其数量与特异值的数量相同:一个是将在其他数据集中重用的代码,而另一个是描述。这些可以以两种方式进行区分。首先描述比代码通常具有更自由的格式(整组记录会有不规则的模式)。第二,代码在其他数据集被重用。
在一个实现方式中,一个数据集的一个字段的字段值在其他数据集的其他字段的重用可以通过以下方式来确定。取字段级特征描述的集合。通过找寻特异值的数量小于一阈值(例如,150)并且特异值的数量等于唯一值的数量的字段级特征描述,来找到字段级特征描述对应于候选参考数据集的子集。接着,每个候选参考数据集的一组特异值与每个剩余的字段级特征描述中的一组特异值比较,以找到具有大致重叠的一组特异值。因为有可能是数据质量问题,所以无需完全符合:事实上,在存在大致重叠时检测不符合处是比较的目的之一。大致重叠可以被定义为:参考数据集-字段中具有一个或多个值的经填充的记录的分数比例大于一阈值。这使得源数据集中未填充的记录不会影响到关联,并且允许(少)数个无效值(即候选参考数据集-字段中不存在的值)。
在不同数据集中字段之间的关联未知并且必须被发现时,此表征步骤在发现阶段是很有用的。在操作的较后阶段,当这样关联是已知的并被宣告时,表征步骤可以被改变为检测何时超过不匹配的值的阈值分数比例。例如,新的值可能已经被添加到数据集(例如,当新的数据源被添加到上游时),但(尚且)还没有被添加到参考数据集。这对识别是一个重要变化。因此,比较字段中预期共享同组值的各组特异值是可以持续地应用到数据集-字段特征描述的重要测试。
可以有多种方式比较两个或更多个字段级特征描述中各组特异值。因为单纯的实现方式是全部对全部的成对比较,其中大多数都没有成功的机会,所以减少比较的次数的途径很重要,特别是当带有上千个表格的数据库中常面临的大量的字段级特征描述。图2示出由表征引擎110实施的表征步骤的一个实现方式。第一步骤是为数据集A、B、C、D的候选参考数据集-字段以特异值的计数N的递减顺序组织一组特征描述200A、200B、200C、200D。接着,对于每个剩余数据集-字段特征描述(被称为非参考数据集-字段特征描述),例如数据集F的特征描述200F,表征引擎110找到满足大致重叠测试所需的特异值的最小数量。这可通过取填充字段值的总和,并依次除去至少共同字段直到剩余的已填充记录的分数比例低于大致重叠阈值。参考值的最小数量是剩余字段的值的数量加1。在特征描述200F中,最后的值“s”被减去,并且对于值204,排除“s”后的已填充记录的分数比例是(163+130+121)/(163+130+121+98)=414/512,发现其小于大致重叠阈值0.95。这意味着,对于特征描述200F中的值计数,参考数据集中需要3+1=4个值以满足大致重叠标准。因为从特征描述200F选择的任何一组三个或更少的值将占F记录的分数比例小于95%,这已通过找到由三个最共同值所占的分数比例被证明,所以任何含有少于4个值的数据集都不能满足与特征描述200F的大致重叠测试。这免除了考虑具有太少值而没有大致重叠机会的那些参考数据集。在这种情况下,特征描述200D的数据集D的参考数据集-字段被去除。
下一步骤是比较非参考数据集-字段的最频繁值与每个参考数据集-字段,以确定其在哪个参考数据集-字段不会发生。如果不包括最共同值的已填充记录与所有已填充记录的比率小于大致重叠阈值,则任何不含有最共同值的数据集-字段可以被排除,因为其不会满足大致重叠阈值。在这个例子中,200F中最共同的值是“p”。不包括值“p”的已填充记录的分数比例是(130+121+98)/(163+130+121+98)=349/512<0.95,这低于大致重叠阈值。这意味着可以排除不包含“p”的任何其他数据集-字段。(一个以上的值可能需要被排除,直到没有匹配的记录的分数比例大到足以使得大致重叠阈值不能得到满足)。
进行这种比较的一种方法用表征引擎110构建的查找数据结构206(例如,查找表),其条目包括每个参考数据集-字段值和指示值出现在哪个数据集(或数据集特征描述)的位置信息的向量。为方便起见,可以添加对条目进行标签的字段。在示例性查找数据结构206中,条目“p1[A,B,D]”表示来自特征描述200F的“p”值出现在特征描述200A、200B和200D中(1是对该条目进行标签的值)。查找数据结构206还可以被保存为标准化形式,用每个条目标识该值出现在其中的一个数据集特征描述。在这里,在查找数据结构206中查找“p”值找到相关联的参考数据集“[A,B,D]”,其中D因为具有太少的参考值而已经被去除。此查找的效果是去除C,其具有足够数量的值,但不包含最共同值“p”。
最后,给出可以潜在地满足大致重叠条件的一组成对的参考数据集-字段和非参考数据集-字段,可以进行各组特异值的直接比较。在一个实现方式中,这种直接比较可通过形成各组特异值的向量相交,确定剩余的数据集-字段中匹配的记录的分数比例,并与大致重叠阈值进行比较来进行。在第二个实现方式中,可以从参考数据集-字段特征描述和非参考数据集-字段特征描述两者中一组特异值中形成比特向量(通过将一个比特赋予整个候选参考数据集-字段和候选非参考数据集-字段中所有特异值中的每个特异值——注意:如果在一个以上的参考数据集-字段中存在相同值,只需赋予其一个比特)。查找数据结构206的前两列示出对参考值赋予比特。每个参考数据集所得的比特向量被收集在系统信息208中。表示哪些参考值被填充在特征描述200F中的比特向量由比特向量212给出。第五个比特是0表示在特征描述200F中数据集-字段中不存在参考值“t”。对特征描述200F中比特向量212和系统信息208的A和B条目中的每个比特向量进行简单的逻辑与(AND),得到共同保存的特异值的集合。随后可以计算记录在剩余的数据集-字段中的分数比例,并与大致重叠阈值进行比较。结果214发现,特征描述200A和200B两者的参考数据集-字段对于特征描述200F的非参考数据集-字段都是可能的参考数据集-字段。
在一些实现方式中,附加的特征可以减少计算时间。可以在对查找数据结构206查找最共同值之后,一些非参考数据集-字段特征描述是对图2所示的一个以上的参考数据集-字段的候选匹配。一旦发现匹配能将一个非参考数据集-字段与第一参考数据集-字段配成对,则该非参考数据集-字段仅需要被视为与参考数据集-字段充分相似的那些其他参考数据集-字段的候选。
附加的处理和/或预处理用于标识相似的参考集-字段。这种相似性的检测可以独立于此计算优化而是感兴趣的。关键的观察是并非所有具有相同数量值的参考数据集实际上共享相同的值。参考数据集-字段特征描述的集合可以彼此比较,以找到每个具有多少共享值。大致重叠测试已经确定与非参考数据集-字段共享的特异值的最小数量。假设具有特征描述200A的参考数据集-字段A已被发现是具有特征描述200F的非参考数据集-字段F的匹配,也就是说,它们共享足够的值,以满足与特征描述200F的大致重叠测试。假设有具有特征描述200E的附加的参考数据集-字段E,包括四个值“p”、“q”、“r”和“w”。此参考数据集-字段具有四个值,因此它具有足够的值以满足上述与特征描述200F的大致重叠测试。但数据集-字段E仅与数据集-字段A共享三个共同值,而已知数据集-字段A匹配非参考数据集-字段F(在大致重叠内)。这表明事实上数据集-字段E可至多与非参考数据集-字段F共享三个值,因此不通过大致重叠测试。知道候选参考数据集-字段之间共享值的数量允许一些候选参考数据集-字段被拒绝作为候选,因为它们肯定会与非参考数据集-字段具有太少的共享值。与已知的匹配参考数据集-字段具有足够数量的共享值的每个候选参考数据集-字段的估计如上所述。一些候选参考数据集-字段和非参考集-字段的新配对可满足大致重叠的条件,一些则不能。由于可能需要进一步的知识以消除歧义的配对,所以如果有一个以上满足条件,则它们可以都被报告为候选匹配。
某些组的特异字段值,尤其是0、1或Y、N,被用于具有不同意义的各种不同的数据集-字段。它们不是严格的参考值,因为它们的意思在上下文中很明确(通常是从字段名),并不需要参考数据集来定义它们的意思。然而,在发现阶段检测并在操作的以后阶段监测很重要。如果非常低的基数(例如小于3或4个)的数据集-字段不具有匹配参考数据集-字段,则它可以被标记为指标字段并被如此报告。在以后的处理中,尤其是随着时间的推移,监测具有每个值的记录的分数比例的变化是很重要的。如果更高但基数仍较低的数据集-字段不具有匹配参考数据集-字段,则可以被报告为“不具有相关联的参考数据的低基数字段”。
比较数据集-字段值列表的第二种途径将产生不同但同样重要的结论。可以比较具有相同或相似的字段名的一组数据集-字段,以确定它们的字段内容是否相似。这将确定共享相同(或相似)名称的字段事实上是否包含相同类型的数据。在一些遗产系统中,特别是在存储空间非常宝贵的大型计算机系统中,一些字段已超载,并且其中存储有不同的数据而没有用字段名表示(例如,在COBOL(面向商业的通用语言)副本(copybook)中)。在其他系统中,由于设计和系统不断演变,共同术语已被用作针对保存特异种类的数据的一个以上字段的字段名。在发现模式中,当通过其数据特征描述分析不熟悉的系统时,发现这种掩藏的差异是很重要的,因为单纯的用户假定如果字段名是相同的,则字段必然保存相似的数据。
比较的过程与上文所述大致相同,除了不是选择进行比较来找到具有相似数量的特异值的数据集-字段,而是因为它们具有相同或相似的字段名而找到候选配对。基于编辑距离的模糊匹配可以用来比较字段名,但第二种形式的相似性也是相关的。这是用来如果每个字段中以相同的顺序发生字符的相同次序则识别两个字段是相似的(在两个字段名中可能有多达一些数量的不匹配的字符)。这有助于识别其中一个字段名是另一个的子字符串的字段,例如,Country(国家)和OriginCountry(原国家)。这特别常发生在参考数据集-字段中,因为来自特定的参考数据集-字段的值可以被用在另一个数据集中相同记录的多个字段中,并且每个字段常常被修改者修改为与参考字段名不同。
这种形式的相似性也标识了字段名已通过删除字符而改变的候选配对,例如,EquityFundsMarket(股票基金市场)和EqFdsMkt。这两种类型的变化在实践中均被观察到,前者更常见。有时后者与前者合并,在这种情况下,必须允许较大的容差。例如,人们可能要求一个字段名的匹配字符必须以相同的顺序发生在其他字段名中而忽略额外的字符。于是,country_cd(国家_代码)和orgn_cntry(原_国家)匹配。当然,这将接纳更多的匹配,因此可能需要更多的比较。
提供匹配组合的用户可见性,并且控制哪些匹配被传送给进一步的评估(包括进一步增加配对的能力)显然是有价值的。
在一个实现方式中,在基于字段名识别数据集-字段的候选配对的集合之后,对于相对低基数的特异值,可以如在参考数据集-字段例子中那样使用大致重叠标准来比较各配对,查找最频繁值,以确定可能匹配的候选,并且最终直接比较各特异值组。对于高基数组,可能需要联合分析或参考完整性的评估。在一些实现方式中,这涉及到比较包括每个数据集的数据集-字段-值和值-计数的统计文件,以找到每个数据集中存在多少匹配值。这一分析的结果是识别值重叠很强并且字段名符合的数据-字段——如果重叠不强或不存在,则这是值得注意的,因为它指示字段已超载。当然,仅仅是因为两个字段具有较强的重叠并不一定意味着它们是相同的数量。这在代理(surrogate)关键字字段的情况下尤其如此,其可能会无意地重叠因为两者都是具有大致连续(或准连续)的一组关键字。无论如何,在该情况下,字段名符合,有用的假设是具有重叠值组的数据集-字段是相关的。
当比较各组值时可以进行的其他检查之一是查找具有最大数量的唯一值(或低基数的特异值)的数据集的最大和最小值以外的值。这可以表明离群值。
不同的比较的集合在随时间重复对相同的逻辑数据集(多个)进行剖析的数据监测情景中是相关的。在这种情景中,直接关注的数据质量问题是随时间的数据一致性的数据质量问题。可以制定一般规则来计算基线平均值、平均值变化的速率、围绕均值曲线波动的幅度、以及其他统计测量值。这可以既适用于特定类型的(已填充的,空值等)的记录的数量计数又适用于值本身。可以回答的问题有,数据量是否不断增加?单调性增长或循环性增长?数据质量问题的频率为多少?(上述每类问题——填充、模式、枚举值——可以用这种方式进行分析)。这样的规则也可应用到数据模式码,也许测量随时间引起的数据模式的数量的变化(更大的模式变化常常预期伴随着数据量的增加)或由模式码表示的字段之间的相关性的变化。
上面所描述的技术可使用执行合适的软件的计算系统来实现。例如,软件可以包括在编程的或可编程的一个或多个计算机系统上执行的一个或多个程序中的步骤(其可以是各种架构,诸如分布式、客户端/服务器或网格),每个包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性的存储器和/或存储元件)、至少一个用户接口(用于使用至少一个输入设备或端口接收输入,和用于使用至少一个输出设备或端口提供输出)。软件可以包括较大的程序的一个或多个模块,例如,提供与设计、配置和执行数据流图相关的服务。程序的模块(例如,数据流图的元素)可被实现为数据结构或符合存储在数据存储库中的数据模型的其他有组织的数据。
软件可以被提供在有形的、非临时性介质,诸如CD-ROM或其他计算机可读介质(例如,通用或专用计算系统或设备可读的),或通过网络的通信介质传送(例如,编码成传播信号)到计算系统的有形的、非临时性介质,并在那里被执行。一些或全部处理也可以由专用计算机执行,或者使用专用硬件实现,诸如协处理器或现场可编程门阵列(FPGA)或专用的特定应用集成电路(ASIC)。处理可以以分布式方式实现,其中由软件指定计算的不同部分由不同的计算元件执行。每个这样的计算机程序优选存储在或下载到存储设备的计算机可读存储介质(例如,固态存储器或介质,或磁或光学介质)中,当存储设备介质由计算机读出以执行这里描述的处理时,其通过通用或专用可编程计算机可访问,用于配置和操作计算机。本发明系统也可被认为实现为有形的、非临时性介质,配置有计算机程序,其中如此配置的介质使得计算机以特定和预定的方式执行本文中所描述的处理步骤中的一个或多个。
本发明的一些实施例已经描述。然而,可以理解的是,前述描述旨在说明而不是限制本发明的范围,其由以下的权利要求的范围限定。因此,其他实施例也在以下权利要求的范围之内。例如,可以做出各种修改而不脱离本发明的范围内。另外,一些上述步骤可以与顺序无关,因此可以以与所描述的不同次序来执行。

Claims (23)

1.一种用于表征数据的方法,该方法包括:
从接口读取数据到数据存储系统,并存储两组或更多组汇总数据,所述汇总数据用于汇总存储在所述数据存储系统中的不同相应数据源的数据,其中存储的多组汇总数据中的至少一组包括记录位置信息,所述记录位置信息标识特定值出现在记录的特定字段中的记录在特定数据源内的相应位置;以及
使用至少一个处理器处理所存储的各组汇总数据,以生成用于表征来自所述数据存储系统中多个数据源的数据的系统信息,所述处理包括:
分析所存储的各组汇总数据,以选择存储了满足预定准则的数据的两个或更多个数据源,其中所述预定准则包括以下中的一个或多个:(1)相对于记录的总量,出现在特定数据源中记录的特定字段中的特异值的数量,或(2)在特定数据源中的两个或更多个记录字段,所述两个或更多个记录字段具有相同数量的特异值,以及
至少部分基于如下信息(1)和(2)来生成所述系统信息:(1)来自用于汇总所选择的数据源中的第一数据源的所存储的一组汇总数据的特异值与来自用于汇总所选择的数据源中的第二数据源的所存储的一组汇总数据的特异值之间的比较,(2)在两组或更多组汇总数据中标识出特定的特异值出现在相应数据源的记录的字段中的一特定组汇总数据的数据组位置信息,所述系统信息包括用于识别包括在不同数据源中的记录的字段之间潜在的关系的信息。
2.根据权利要求1所述的方法,其中所述处理还包括:
存储对应于相应各组汇总数据的数据单元,所述数据单元中的至少一些数据单元包括用于描述与对应的一组汇总数据相关联的一个或多个特性的描述性信息,以及
基于从所存储的数据单元聚合得到的所述描述性信息来生成所述系统信息。
3.根据权利要求1所述的方法,其中所述处理还包括方法:
应用一个或多个规则到两个或更多个第二组汇总数据,
聚合所述第二组汇总数据以生成第三组汇总数据,以及
存储所述第三组汇总数据。
4.根据权利要求3所述的方法,其中所述一个或多个规则对所述两个或更多个第二组汇总数据之间的一个或多个所选择的字段的值进行比较。
5.根据权利要求1所述的方法,其中用于汇总存储在特定的数据源中的数据的所存储的一组汇总数据,对于所述特定的数据源中记录的至少一个所选择的字段而言,包括值条目的相应列表,每个值条目包括在所选择的字段中出现的值。
6.根据权利要求5所述的方法,其中对应于特定的数据源的值条目列表中每个值条目还包括:在所选择的字段中出现该值的记录的数量的计数。
7.根据权利要求5所述的方法,其中对应于特定的数据源的值条目列表中每个值条目还包括:识别在所选择的字段中出现该值的记录在所述特定的数据源内相应位置的记录位置信息。
8.根据权利要求7所述的方法,其中所述记录位置信息包括所识别出的相应位置的比特向量表示。
9.根据权利要求8所述的方法,其中所述比特向量表示包括经压缩的比特向量。
10.根据权利要求7所述的方法,其中所述记录位置信息指向不再存储数据的位置,基于已存储的副本来重构该记录位置信息所指向的数据。
11.根据权利要求1所述的方法,其中所述处理还包括:将一个或多个字段添加到所述多个数据源中的至少一个数据源的记录。
12.根据权利要求11所述的方法,其中所添加的字段填充有由所述至少一个数据源的一个或多个所选择的字段或字段的片段计算出的数据。
13.根据权利要求11所述的方法,其中所添加的字段填充有由所述至少一个数据源的一个或多个所选择的字段或字段的片段计算出的数据,并填充有来自所述至少一个数据源以外的数据。
14.根据权利要求11所述的方法,其中所述处理还包括:将所述一个或多个字段添加到第一组汇总数据。
15.根据权利要求1所述的方法,其中
所述分析包括:分析所存储的各组汇总数据,以在至少一个数据源中选择存储的数据满足预定准则的一个或多个所选择的字段的至少部分,或一个或多个所选择的记录;以及
所述生成包括:至少部分基于来自所存储的一组汇总数据的值来生成所述系统信息,所述系统信息包括用于识别关于所选择的部分中至少一个部分的观察结果。
16.根据权利要求2所述的方法,其中,用于汇总第一数据源中存储的数据的至少第一组汇总数据,对于所述第一数据源中存储的记录的至少一个字段而言,包括在所述字段中出现的特异值的列表以及每个特异值所出现的记录的数量的相应计数。
17.根据权利要求16所述的方法,其中用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述与所述第一组汇总数据相关联的一个或多个潜在问题的问题信息。
18.根据权利要求17所述的方法,其中所述一个或多个潜在问题包括:被检测为候选主关键字字段的字段中存在重复值。
19.根据权利要求16所述的方法,其中用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述所述第一数据源中存储的记录的字段的填充度的填充信息。
20.根据权利要求16所述的方法,其中用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述所述第一数据源中存储的记录的字段中出现的值的唯一性程度的唯一性信息。
21.根据权利要求16所述的方法,其中用于描述与所述第一组汇总数据相关联的一个或多个特性的描述性信息包括:用于描述对所述第一数据源中存储的记录的字段中出现的值加以表征的一个或多个重复模式的模式信息。
22.一种用于表征数据的计算机程序,存储在计算机可读存储介质上,所述计算机程序包括用于执行如权利要求1至21中任一项所述的方法的指令。
23.一种用于表征数据的计算系统,所述计算系统包括:
接口,耦接到数据存储系统,被配置为读取数据,并存储两组或更多组汇总数据,所述汇总数据用于汇总存储在所述数据存储系统中的不同相应数据源的数据,其中存储的多组汇总数据中的至少一组包括记录位置信息,所述记录位置信息标识特定值出现在记录的特定字段中的记录在特定数据源内的相应位置;以及
至少一个处理器,被配置为执行如权利要求1至21中任一项所述的方法。
CN201380055136.6A 2012-10-22 2013-08-02 表征数据存储系统中的数据源 Active CN104756106B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261716909P 2012-10-22 2012-10-22
US61/716,909 2012-10-22
PCT/US2013/053352 WO2014065918A1 (en) 2012-10-22 2013-08-02 Characterizing data sources in a data storage system

Publications (2)

Publication Number Publication Date
CN104756106A CN104756106A (zh) 2015-07-01
CN104756106B true CN104756106B (zh) 2019-03-22

Family

ID=49029181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380055136.6A Active CN104756106B (zh) 2012-10-22 2013-08-02 表征数据存储系统中的数据源

Country Status (9)

Country Link
US (2) US20140115013A1 (zh)
EP (1) EP2909747B1 (zh)
JP (1) JP6357161B2 (zh)
KR (1) KR102113366B1 (zh)
CN (1) CN104756106B (zh)
AU (3) AU2013335230B2 (zh)
CA (2) CA3128654A1 (zh)
HK (1) HK1211114A1 (zh)
WO (1) WO2014065918A1 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396283B2 (en) 2010-10-22 2016-07-19 Daniel Paul Miranker System for accessing a relational database using semantic queries
EP2909746B1 (en) * 2012-10-22 2019-12-18 Ab Initio Technology LLC Profiling data with source tracking
US8601326B1 (en) * 2013-07-05 2013-12-03 Palantir Technologies, Inc. Data quality monitors
US20150074036A1 (en) * 2013-09-12 2015-03-12 Agt International Gmbh Knowledge management system
US9984173B2 (en) * 2014-02-24 2018-05-29 International Business Machines Corporation Automated value analysis in legacy data
GB201409214D0 (en) 2014-05-23 2014-07-09 Ibm A method and system for processing a data set
US10255376B2 (en) * 2014-12-30 2019-04-09 Business Objects Software Ltd. Computer implemented systems and methods for processing semi-structured documents
US9953265B2 (en) 2015-05-08 2018-04-24 International Business Machines Corporation Visual summary of answers from natural language question answering systems
CA2940760C (en) 2015-08-31 2019-05-21 Accenture Global Solutions Limited Intelligent data munging
US9372881B1 (en) * 2015-12-29 2016-06-21 International Business Machines Corporation System for identifying a correspondence between a COBOL copybook or PL/1 include file and a VSAM or sequential dataset
US11023104B2 (en) 2016-06-19 2021-06-01 data.world,Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11468049B2 (en) 2016-06-19 2022-10-11 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US10645548B2 (en) 2016-06-19 2020-05-05 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US10452975B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11036697B2 (en) 2016-06-19 2021-06-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US11947554B2 (en) 2016-06-19 2024-04-02 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11042560B2 (en) 2016-06-19 2021-06-22 data. world, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
US11042537B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11042548B2 (en) 2016-06-19 2021-06-22 Data World, Inc. Aggregation of ancillary data associated with source data in a system of networked collaborative datasets
US11334625B2 (en) 2016-06-19 2022-05-17 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11675808B2 (en) 2016-06-19 2023-06-13 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10353911B2 (en) 2016-06-19 2019-07-16 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US10747774B2 (en) 2016-06-19 2020-08-18 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US11042556B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Localized link formation to perform implicitly federated queries using extended computerized query language syntax
US10452677B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10824637B2 (en) 2017-03-09 2020-11-03 Data.World, Inc. Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data driven collaborative datasets
US11036716B2 (en) 2016-06-19 2021-06-15 Data World, Inc. Layered data generation and data remediation to facilitate formation of interrelated data in a system of networked collaborative datasets
US11941140B2 (en) 2016-06-19 2024-03-26 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10438013B2 (en) 2016-06-19 2019-10-08 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11755602B2 (en) 2016-06-19 2023-09-12 Data.World, Inc. Correlating parallelized data from disparate data sources to aggregate graph data portions to predictively identify entity data
US10324925B2 (en) 2016-06-19 2019-06-18 Data.World, Inc. Query generation for collaborative datasets
US10853376B2 (en) 2016-06-19 2020-12-01 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11126599B2 (en) * 2017-01-24 2021-09-21 Accenture Global Solutions Limited Information validation method and system
US11238109B2 (en) 2017-03-09 2022-02-01 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
US10606828B2 (en) * 2017-10-19 2020-03-31 Jpmorgan Chase Bank, N.A. Storage correlation engine
US20190163777A1 (en) * 2017-11-26 2019-05-30 International Business Machines Corporation Enforcement of governance policies through automatic detection of profile refresh and confidence
AU2019205341A1 (en) 2018-01-08 2020-06-25 Equifax Inc. Facilitating entity resolution, keying, and search match without transmitting personally identifiable information in the clear
EP3743820A1 (en) * 2018-01-25 2020-12-02 Ab Initio Technology LLC Techniques for integrating validation results in data profiling and related systems and methods
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US10922308B2 (en) 2018-03-20 2021-02-16 Data.World, Inc. Predictive determination of constraint data for application with linked data in graph-based datasets associated with a data-driven collaborative dataset platform
US11243960B2 (en) 2018-03-20 2022-02-08 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
CN108717418A (zh) * 2018-04-13 2018-10-30 五维引力(上海)数据服务有限公司 一种基于不同数据源的数据关联方法和装置
US11947529B2 (en) 2018-05-22 2024-04-02 Data.World, Inc. Generating and analyzing a data model to identify relevant data catalog data derived from graph-based data arrangements to perform an action
USD940732S1 (en) 2018-05-22 2022-01-11 Data.World, Inc. Display screen or portion thereof with a graphical user interface
USD940169S1 (en) 2018-05-22 2022-01-04 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11442988B2 (en) 2018-06-07 2022-09-13 Data.World, Inc. Method and system for editing and maintaining a graph schema
US11429616B2 (en) * 2019-04-02 2022-08-30 Keysight Technologies, Inc. Data recording and analysis system
CN110502563B (zh) * 2019-08-26 2023-09-29 腾讯科技(深圳)有限公司 一种多数据源的数据的处理方法及装置、存储介质
CN110765111B (zh) * 2019-10-28 2023-03-31 深圳市商汤科技有限公司 存储和读取方法、装置、电子设备和存储介质
CN113434490B (zh) * 2020-03-23 2024-04-12 北京京东振世信息技术有限公司 线下导入数据的质量检测方法和装置
CN111814444A (zh) * 2020-07-21 2020-10-23 四川爱联科技有限公司 一种基于bs架构的表格数据汇总分析方法
CN112486957B (zh) * 2020-12-16 2023-08-25 李运涛 数据库迁移检测方法、装置、设备及存储介质
CN113360491B (zh) * 2021-06-30 2024-03-29 杭州数梦工场科技有限公司 数据质量检验方法、装置、电子设备及存储介质
CN113656430B (zh) * 2021-08-12 2024-02-27 上海二三四五网络科技有限公司 一种批量表数据自动扩充的控制方法及装置
US11947600B2 (en) 2021-11-30 2024-04-02 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1938702A (zh) * 2004-04-27 2007-03-28 诺基亚公司 计算机化系统中的数据处理
US7756873B2 (en) * 2003-09-15 2010-07-13 Ab Initio Technology Llc Functional dependency data profiling

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3474106B2 (ja) * 1998-06-17 2003-12-08 アルプス電気株式会社 液晶表示装置
CA2340008C (en) * 1998-08-11 2008-09-23 Shinji Furusho Method and apparatus for retrieving, accumulating, and sorting table-formatted data
CN101271472B (zh) * 2003-09-15 2011-04-13 起元科技有限公司 数据处理方法和数据处理系统
US20050108631A1 (en) * 2003-09-29 2005-05-19 Amorin Antonio C. Method of conducting data quality analysis
US20080114789A1 (en) * 2006-11-15 2008-05-15 Wysham John A Data item retrieval method and apparatus
US9251212B2 (en) * 2009-03-27 2016-02-02 Business Objects Software Ltd. Profiling in a massive parallel processing environment
US9076152B2 (en) * 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Semantic analysis of information
EP2668725B1 (en) * 2011-01-28 2021-12-22 Ab Initio Technology LLC Generating data pattern information
US10534931B2 (en) * 2011-03-17 2020-01-14 Attachmate Corporation Systems, devices and methods for automatic detection and masking of private data
US8610605B2 (en) * 2011-06-17 2013-12-17 Sap Ag Method and system for data compression
US8856085B2 (en) * 2011-07-19 2014-10-07 International Business Machines Corporation Automatic consistent sampling for data analysis
US9336246B2 (en) * 2012-02-28 2016-05-10 International Business Machines Corporation Generating composite key relationships between database objects based on sampling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756873B2 (en) * 2003-09-15 2010-07-13 Ab Initio Technology Llc Functional dependency data profiling
CN1938702A (zh) * 2004-04-27 2007-03-28 诺基亚公司 计算机化系统中的数据处理

Also Published As

Publication number Publication date
AU2013335230A1 (en) 2015-04-30
AU2020250205B2 (en) 2021-12-09
JP2015533436A (ja) 2015-11-24
AU2020250205A1 (en) 2020-11-05
EP2909747B1 (en) 2019-11-27
EP2909747A1 (en) 2015-08-26
HK1211114A1 (zh) 2016-05-13
JP6357161B2 (ja) 2018-07-11
AU2013335230B2 (en) 2018-07-26
WO2014065918A1 (en) 2014-05-01
KR20150080533A (ko) 2015-07-09
US20140115013A1 (en) 2014-04-24
KR102113366B1 (ko) 2020-05-20
AU2018253479B2 (en) 2020-07-16
CN104756106A (zh) 2015-07-01
US20230169053A1 (en) 2023-06-01
CA2887661C (en) 2022-08-02
CA3128654A1 (en) 2014-05-01
AU2018253479A1 (en) 2018-11-15
CA2887661A1 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
CN104756106B (zh) 表征数据存储系统中的数据源
CN104756107B (zh) 采用位置信息剖析数据
US11429614B2 (en) Systems and methods for data quality monitoring
JP5306360B2 (ja) データ記録を一致させるシステムの分析のための方法およびシステム
CN110008288A (zh) 用于网络故障分析的知识图谱库的构建方法及其应用
CN109471846A (zh) 一种基于云日志分析的云上用户行为审计系统及方法
JP4997856B2 (ja) データベース分析プログラム、データベース分析装置、データベース分析方法
CN107810500A (zh) 数据质量分析
KR101125417B1 (ko) 데이터 품질 진단 방법과 시스템
KR20160104064A (ko) 복잡한 양자 또는 다자 상대방 관계를 탐색하기 위해 이용되는 다차원 재귀적 학습 과정 및 시스템
CN111177139A (zh) 基于数据质量体系的数据质量验证监控及预警方法和系统
CN113779261B (zh) 知识图谱的质量评价方法、装置、计算机设备及存储介质
CN107016028A (zh) 数据处理方法及其设备
CN112966901B (zh) 面向检察业务协同流程的世系数据质量分析与验证方法
CN112950350B (zh) 一种基于机器学习的贷款产品推荐方法及系统
CN112786124B (zh) 一种问题排查方法、装置、存储介质及设备
CN114710344A (zh) 一种基于溯源图的入侵检测方法
CN114331679A (zh) 数据问题的分析方法及相关装置
CN107730021A (zh) 一种业务指标优化方法和装置
CN112732773A (zh) 一种继电保护缺陷数据的唯一性校核方法及系统
CN108737399A (zh) 一种基于角标随机读取的Snort报警数据聚合方法
CN108647298A (zh) 一种三七数据的处理系统
WO2021224709A1 (en) Data aggregation for verifying and reporting data integrity
CN115860010A (zh) 一种话题挖掘方法及相关装置
CN115631053A (zh) 一种反洗钱处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1211114

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant