CN102982065B - 数据处理方法、数据处理装置及计算机可读存储介质 - Google Patents

数据处理方法、数据处理装置及计算机可读存储介质 Download PDF

Info

Publication number
CN102982065B
CN102982065B CN201210367944.3A CN201210367944A CN102982065B CN 102982065 B CN102982065 B CN 102982065B CN 201210367944 A CN201210367944 A CN 201210367944A CN 102982065 B CN102982065 B CN 102982065B
Authority
CN
China
Prior art keywords
field
value
record
data
investigation
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
CN201210367944.3A
Other languages
English (en)
Other versions
CN102982065A (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
Priority claimed from CN 200480026429 external-priority patent/CN1853181A/zh
Publication of CN102982065A publication Critical patent/CN102982065A/zh
Application granted granted Critical
Publication of CN102982065B publication Critical patent/CN102982065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Abstract

本发明提供一种数据处理方法、计算机系统及计算机可读存储介质,所述方法包括接收记录流,每个记录包括一个或多个字段和对应值;在多个处理器之间分割所述记录流;为每个记录生成在各记录中具有值的每个字段的字段值对,所述字段值对表示各记录中的字段和用于所述字段的对应值;为每个处理器生成每个相异字段值对的调查元素,所述调查元素包括表示所述相异字段和所述相异值的字段值对的计数;基于用于各字段的所述调查元素计算所述记录流中每个字段的统计数字;以及基于对应的统计数字为所述记录流中的每个字段生成概要。本发明可以自动确定或协同用户确定的信息可以用于转存数据源的元数据,之后用于进一步的处理。

Description

数据处理方法、数据处理装置及计算机可读存储介质
本申请是申请日为2004年9月15日、申请号为200480026429.2(国际申请号为PCT/US2004/030144)、发明名称为“数据归档”的中国专利申请的分案申请。
相关申请的参照
本申请要求2003年9月15日提交的No.60/502,908、2003年10月20递交的No.60/513,038以及2003年12月22日递交的No.60/532,956的美国临时申请的权益。上述引用的申请通过参考援引在此。
技术领域
本发明涉及数据概要分析(profiling)。
背景技术
存储的数据集经常包括事先未知各种特性的数据。例如,数据集的值或一般值的范围,在数据集内不同字段之间的关系,或在不同字段中的值之间的函数依赖性可能是未知的。数据概要分析会涉及到检查数据集的源,以确定这些特性。数据概要分析系统的用途之一是收集有关数据集的信息,然后该信息用于设计集结区(staging area),以便在进一步处理之前装载数据集。然后,基于在数据概要分析过程中收集的信息,在集结区中进行将数据集映射到希望的目标格式和位置所需的转换。这种转换可能是必要的,例如,使第三方数据与已有数据存储器兼容,或者将数据从原来的计算机系统转移到新的计算机系统。
发明内容
一般而言,在一个方案中,本发明的特征是数据处理方法。接收记录流,每个记录包括一个或多个字段和对应值;在多个处理器之间分割所述记录流;为每个记录生成在各记录中具有值的每个字段的字段值对,所述字段值对表示各记录中的字段和用于所述字段的对应值;为每个处理器生成每个相异字段值对的调查元素,所述调查元素包括表示所述相异字段和所述相异值的字段值对的计数;基于用于各字段的所述调查元素计算所述记录流中每个字段的统计数字;以及基于对应的统计数字为所述记录流中的每个字段生成概要。
本发明的方案可以包括一个或多个以下特征。
生成在每个记录中具有值的每个字段的所述字段值对的步骤包括确定记录中的特定字段是否为条件字段;以及响应于确定所述特定字段为条件字段,确定所述特定字段是否具有值。
记录流的至少一个记录包括可变数目的字段。
基于所述统计数字确定格式规范。
为至少一个字段计算直方图或十分位数统计数字。
基于所述记录的顺序特性计算用于所述记录流的序列统计数字。
一般而言,在另一个方案中,本发明的特征是数据处理装置。该数据处理装置包括:接收模块,用于接收记录流,每个记录包括一个或多个字段和对应值;分割模块,用于在多个处理器之间分割所述记录流;字段值对生成模块,用于为每个记录生成在各记录中具有值的每个字段的字段值对,所述字段值对表示各记录中的字段和用于所述字段的对应值;调查元素生成模块,用于为每个处理器生成每个相异字段值对的调查元素,所述调查元素包括表示所述相异字段和所述相异值的字段值对的计数;计算模块,用于基于用于各字段的所述调查元素计算所述记录流中每个字段的统计数字;以及概要生成模块,用于基于对应的统计数字为所述记录流中的每个字段生成概要。
本发明的方案可以包括一个或多个以下特征。
字段值对生成模块包括:用于确定记录中的特定字段是否为条件字段的模块;以及用于响应于确定所述特定字段为条件字段,确定所述特定字段是否具有值的模块。记录流的至少一个记录包括可变数目的字段。
数据处理装置还包括用于基于所述统计数字确定格式规范的模块。
数据处理装置还包括:用于计算至少一个字段的直方图或十分位数统计数字的模块。
数据处理装置还包括:用于基于所述记录的顺序特性计算用于所述记录流的序列统计数字的模块。
一般而言,在再一个方案中,本发明的特征是存储用于数据处理的计算机程序的计算机可读存储介质,所述计算机程序包括用于使计算机系统执行以下操作的指令:接收记录流,每个记录包括一个或多个字段和对应值;在多个处理器之间分割所述记录流;为每个记录生成在各记录中具有值的每个字段的字段值对,所述字段值对表示各记录中的字段和用于所述字段的对应值;为每个处理器生成每个相异字段值对的调查元素,所述调查元素包括表示所述相异字段和所述相异值的字段值对的计数;基于用于各字段的所述调查元素计算所述记录流中每个字段的统计数字;以及基于对应的统计数字为所述记录流中的每个字段生成概要。
本发明的方案可以包括一个或多个以下特征。
生成在每个记录中具有值的每个字段的所述字段值对的步骤包括如下步骤:确定记录中的特定字段是否为条件字段;以及响应于确定所述特定字段为条件字段,确定所述特定字段是否具有值。
记录流的至少一个记录包括可变数目的字段。
计算机程序还配置为包括用于使计算机系统基于所述统计数字确定格式规范的指令。
计算机程序还包括用于使计算机系统为至少一个字段计算直方图或十分位数统计数字的指令。
计算机程序还包括用于使计算机系统基于所述记录的顺序特性计算用于所述记录流的序列统计数字的指令。
本发明的各个方案在对用户不熟悉的数据集进行概要分析时是很有用的。可以自动确定或协同用户确定的信息可以用于转存(populate)数据源的元数据,之后用于进一步的处理。
本发明的其它特征和优点将从以下描述以及权利要求书中显而易见。
附图说明
图1为包括数据概要分析模块的系统的方框图。
图2为用于数据概要分析的元数据存储器中对象的组织结构的方框图。
图3为概要分析模块的概要分析图表。
图4为用于说明数据格式类型对象的层级树形图。
图5A-C为实施概要分析图表的调查进行组件、调查分析组件以及采样组件的子图表的示意图。
图6为上滚过程的流程图。
图7为规范化过程的流程图。
图8A-C例示了显示概要分析结果的用户界面屏幕的输出。
图9为示范性的概要分析过程的流程图。
图10为示范性的概要分析过程的流程图。
图11A-B为对来自两对字段的记录进行的汇合操作的两个范例。
图12A-B为对来自两对字段的调查记录进行的调查汇合操作的两个范例。
图13为用于对两对字段进行单个调查汇合操作的扩展记录的范例。
图14为用于产生扩展记录的扩展组件。
图15A-C为用于进行汇合-字段分析的图表。
图16为具有函数依赖性关系的字段的范例表格。
图17为用于进行函数依赖性分析的图表。
具体实施方式
1概述
参照图1,数据处理系统10包括:概要分析和处理子系统20,其用于处理来自数据源30的数据,更新数据存储子系统40中的元数据存储器112和数据存储器124。然后,所存储的元数据和数据对于使用接口子系统50的用户是可访问的。
一般而言,数据源30包括多种独立的数据源,每个数据源具有独有的存储格式和接口(例如,数据库表格、电子数据表(spreadsheet)文件、平面文本文件或主机110使用的固有格式)。各独立的数据源对于概要分析和处理子系统20可以是本地的,例如,位于相同的计算机系统(例如,文件102),或者对于概要分析和处理子系统20可以是远端的,例如,位于通过局域或广域数据网访问的远端计算机(例如,主机110)。
数据存储子系统40包括数据存储器124和元数据存储器112。元数据存储器112包括与数据源30中的数据相关的信息和关于数据存储器124中的数据的信息。这种信息可包括记录格式和确定这些记录中字段值的有效性的规范(有效性规范)。
元数据存储器112可以用于存储关于待概要分析的数据源30中的数据集的初始信息,以及在概要分析过程中获得的关于此数据集的信息,和从该数据集获取的数据存储器124中的数据集。数据存储器124可以用于存储已从数据源30读取的、使用从数据概要分析过程中获取的信息随意转换后的数据。
概要分析和处理子系统20包括概要分析模块100,其以离散工作元素例如单独记录为单位直接从数据源读取数据,而不必在概要分析之前装载(landing)数据的完整副本至存储介质。一般地,一个记录与一组数据字段相关联,并且对于每个记录,每个字段具有特定值(可能包括零值)。数据源中的记录可以具有固定的记录结构,即,每个记录包括相同的字段。可替换地,记录可以具有可变记录结构,例如,包括可变长度矢量或条件字段。在可变记录结构的情况下,处理记录,不必在概要分析前存储数据的“展平(flattened)”(即,固定的记录结构)副本即可处理记录。
首先,当从数据源读取数据时,概要分析模块100一般利用关于数据源中的记录的某些初始格式信息启动。(注意,在某些情况下,甚至不知道数据源的记录结构)。关于记录的初始信息可包括:表示相异值(例如,16位(=2字节))的位数;值(包括与记录字段相关联的值和与标志符或分隔符相关联的值)的顺序;以及由位表示的值的类型(例如,串、带符号/不带符号的整数)。此关于数据源的记录的信息在元数据存储器112所存储的数据操纵语言(DML)文件中说明。概要分析模块100可以使用预定义的DML文件,来自动说明来自各种通用数据系统格式(例如,SQL表格、XML文件、CSV文件)的数据,或使用从元数据存储器112获得的DML文件描述定制化的数据系统格式。
部分地,可能不精确地,在概要分析模块100初始读取数据之前,概要分析和处理子系统20可以得到关于数据源的记录的初始信息。例如,与数据源相关联的副本簿(copy book)可以作为存储的数据114得到,或者由用户118通过用户接口116输入得到。这种已有信息由元数据输入模块115处理并存储在元数据存储器112中和/或用于定义访问数据源时使用的DML文件。
当概要分析模块100从数据源读取记录时,其计算统计数字和反映数据集内容的其他描述性信息。然后,概要分析模块100将这些统计数字和描述性信息以“概要”的形式写入到元数据存储器112中,然后,通过用户接口116或其他任何可以访问元数据存储器112的模块来检查元数据存储器112。概要中的统计数字优选包括每个字段中的值的直方图、最大值、最小值及平均值,最小公共值和最大公共值的采样。
通过读取数据源所获得的统计数字可以用于各种用途。这些用途包括发现不熟悉数据集的内容、建立与数据集相关联的元数据的集合、在购买或使用之前检查第三方数据,以及对收集到的数据实施质量控制方案(scheme)。下面将详细描述使用数据处理系统10执行这些任务的过程。
元数据存储器112能够存储与每个被概要分析的字段相关联的有效性信息,例如将其作为对有效性信息编码的有效性规范。可替换地,有效性信息可以存储在外部存储位置并由概要分析模块100检索(retrieved)。在将数据集概要分析前,有效性信息可以指定每个字段的有效数据类型。例如,如果一个字段是一个人的“头衔”,默认有效值可以是“串”数据类型的任何值。用户在将数据源概要分析前还可以提供有效值例如“Mr.”、“Mrs.”和“Dr.”,从而概要分析模块100读取的任何其他值都将被识别为无效。用户还可使用从概要分析运行过程中获得的信息来指定特定字段的有效值。例如,在将数据集概要分析后,用户可能会发现作为公共值出现的“Ms.”和“Msr.”。用户可以将“Ms.”添加为有效值,并将值“Msr.”映射到“Mrs.”作为数据清除选项。因此,有效性信息可包括有效值和映射信息,从而允许通过将映射信息映射到有效值来清除有效值。当通过连续的概要分析运行过程发现更多关于数据源的信息时,可以以迭代方式对数据源概要分析。
概要分析模块100也可以产生可执行代码,以实施能够访问被概要分析的数据系统的其它模块。例如,处理模块120可包括概要分析模块100产生的代码。作为对数据源的访问过程的一部分,这种代码的一个范例可以将值“Msr.”映射到“Mrs.”。处理模块120可以在与概要分析模块100相同的运行时间环境中运行,且优选能与元数据存储器112通信,以访问与数据集相关联的概要。处理模块120可以读取与概要分析模块100相同的数据格式(例如,通过从元数据存储器112获得相同的DML文件)。处理模块120在将输入记录存储在数据存储器124之前,可以使用数据集概要获得验证或清理这些输入记录的值。
与概要分析模块100相似,处理模块120也以离散工作元素为单位直接从数据系统读取数据。工作元素的这种“数据流”有利于对较大数据集进行数据概要分析,而不必在本地存储器(例如,磁盘驱动器)上复制数据。将在下文详细描述的此数据流模型还允许处理模块进行复杂的数据转换,而不需先将源数据复制至集结区,这就潜在地节省了存储空间和时间。
2元数据存储器组织结构
概要分析模块100使用元数据存储器112组织和存储各种元数据,并将优选项和结果以数据对象的形式概要分析。参照图2,元数据存储器112可以存储一组概要建立对象201(均用于与概要分析工作相关的信息)、一组数据集对象207(均用于与数据集相关的信息)、以及一组DML文件211(均描述特定的数据格式)。概要建立对象包含概要分析模块100执行的概要分析运行过程的优选项。用户118可以输入用于建立新概要建立对象的信息或选择预存储的概要建立对象200。
概要建立对象200包含对数据集对象206的参考204。数据集建立对象206包含数据集定位器202,用于使概要分析模块100将待概要分析的数据定位在一个或多个在运行时间环境中可访问的数据系统上。数据集定位器202一般是路径/文件名、URL,或路径/文件名和/或URL的列表,用于在多个位置上的数据集散布(spread)。数据集对象206可以选择性地包含对一个或多个DML文件210的参考208。
一个或多个DML文件210可以基于关于数据集中的数据格式的知识被预选择,或可以由用户在运行时间指定。概要分析模块100能够获得数据集的初始部分,并基于默认的DML文件通过用户接口116向用户呈现对初始部分的解释。然后,用户可以基于解释的交互视图来修改默认的DML文件规范。如果数据集包括具有多种格式的数据,则需要参考一个以上的DML文件。
数据集对象206包含对一组字段对象214的参考212。在待概要分析的数据集的记录中,每个字段有一个字段对象。一旦由概要分析模块100执行的概要分析运行过程完成,数据集对象206中就包含对应于已概要分析数据集的数据集概要216。数据集概要216包含与数据集相关的统计数字,例如记录的总数和有效/无效记录的总数。
字段对象218可以选择性地包含有效性信息220,概要分析模块100可使用有效性信息220来确定对应字段的有效值,并指定用于清除无效值的规则(即,将无效值映射到有效值上)。字段对象218也包含概要分析模块100在完成概要分析运行过程时存储的字段概要222,字段概要222包含与对应字段相关的统计数字,例如相异值、零值以及有效/无效值的数量。字段概要222还可包括采样值,例如最大值、最小值、最大公共值和最小公共值。一个完整的“概要”包括数据集概要216和所有被概要分析字段的字段概要。
其他用于概要分析装置(profiler)运行的用户优选项可以被收集和存储在概要建立对象200或数据集对象206中。例如,用户可以选择过滤表达式(filter expression),该过滤表达式可用于限制字段或已概要分析的值的个数,包括对值的随机采样(例如,1%)概要分析。
3运行时间环境
概要分析模块100在允许数据从数据源读出并处理成离散工作元素流的运行时间环境中运行。概要分析模块100和处理模块120执行的计算通过有向(directed)图表以数据流的形式表达,同时这些计算式中的分量与图表的顶点(vertice)以及这些分量之间的数据流(其对应于图表的链路(弧、边缘))相关联。实施这种基于图表的计算的系统在U.S.专利5,966,072,“运行表达成图表的计算”中有描述。按照此系统制成的图表提供了这样这些方法,即,获取进/出由图表分量表示的各进程的信息,在这些进程之间移动信息,以及定义这些进程的运行次序。此系统包括选择进程间通信方法(例如,与图表链路一致的通信路径可以使用TCP/IP或UNIX字段套接字,或使用共享存储器来在这些进程之间传递数据)的算法。
运行时间环境也允许概要分析模块100作为并行进程来运行。与上述相同类型的图表表示(representation)可以用于描述并行处理系统。作为讨论,并行处理系统包括使用多个中央处理单元(CPU)的任意结构的计算机系统,或者本地的(即,多处理器系统例如SMP计算机),或本地分布式(例如,连接成群集的多处理器或MPP),或远程的,或远程分布式(例如,经LAN或WAN网连接的多处理器),或它们的任意组合。再者,这些图表将由分量(图表顶点)和流(图表链路)组成。通过明确或暗含地复制图表的元素(分量和流),可以表现系统中的并行度。
使用用于输入分量的链路输入队列来实施流控机制。此流控机制允许数据在图表的分量之间流动,而不会被写入非易失性本地存储器例如通常较大但速率较慢的磁盘驱动器中。输入队列可以足够小,以能够将工作元素保存在一般来讲比非易失性存储器小和快速的易失性存储器中。即使对于非常大的数据集,这也能潜在地节省存储空间和时间。这些分量可以使用输出缓冲器来代替输入队列,或在使用输入队列之外还使用输出缓冲器。
当两个分量通过流连接时,只要下游分量持续使用工作元素,上游分量就发送工作元素至下游分量。如果下游分量滞后(falls behind),上游分量将填补(fill up)下游分量的输入队列,并停止工作,直到输入队列再次清除为止。
可以使用不同程度的提取方式(abstraction)来指定计算图表。因此,可以在另一个图表中将包含分量和链路的“子图表”表示为单个分量,该单个分量仅显示那些连接至图表剩余部分的链路。
4概要分析图表
参照图3,在一个优选实施例中,概要分析图表400进行用于概要分析模块100的计算。输入数据集组件402表示来自潜在的几种类型的数据系统的数据。这些数据系统可以具有不同的物理介质类型(例如,磁、光、磁光)和/或不同的数据格式类型(例如,二进制、数据库、电子数据表、ASCII串、CSV或XML)。输入数据集组件402发送数据流到调查进行组件406中。调查进行组件406进行数据集的“调查”,在流入该调查进行组件的记录中为每个独有的字段/值对创建单独的调查记录。每个调查记录包括用于该调查记录的独有字段/值对(pair)的出现次数的计数。
调查进行组件406具有清除选项,该清除选项可以根据存储在对应字段对象的有效性信息将一组无效值映射到有效值上。该清除选项也可以将记录(具有包含无效值的字段)存储在由无效记录组件408表示的位置上。然后,例如想要确定无效值的源的用户可以检查这些无效记录。
在所示出的实施例中,从调查进行组件406流出的调查记录被存储在由调查文件组件410表示的文件中。在某些情况下,对调查记录进行中间存储可以增加多个图表分量访问调查记录的效率。可替换地,调查记录可以从调查进行组件406直接流到调查分析组件412,而不存储在一个文件中。
调查分析组件412创建每个字段的值的直方图,并基于调查记录对数据集进行其他分析。在所示出的实施例中,字段概要组件414表示字段概要的中间存储位置。元数据装载库组件416将字段概要和其他概要分析结果装载到元数据存储器112中的对应对象中。
用户接口116允许用户使用分析后的数据浏览,例如,查看字段中的直方图或公共值。提供“往下深钻(drill-down)”能力,例如,查看与直方图中的条(bar)相关联的特定记录。用户还可以基于概要分析结果通过用户接口116更新优选项。
采样组件418存储采样记录420的集合,采样记录420表示与用户接口116上显示的值相关联(例如,与直方图中的条相关联)的记录的采样。阶段(phase)虚线422表示图表400中执行的两个阶段,即,在左侧线的所有组件运行完成后,右侧线的组件开始运行。因此,在调查分析组件412完成将结果存储在字段概要组件414之后,采样组件418运行。可替换地,可以从输入数据集402中所记录的位置检索(retrieved)采样记录。
概要分析模块100可以由用户118或自动调度程序初始化。一旦初始化概要分析模块100,主脚本(master script)(未示出)从元数据存储器112收集概要分析图表400将使用的任何DML文件和参数。参数可以从对象例如概要建立对象200、数据集对象206以及字段对象218获得。如果必要,主脚本可以基于所提供的、关于待概要分析的数据集的信息来创建新的DML文件。为方便起见,主脚本可以将参数编译成工作文件。然后,主脚本可以使用来自工作文件的适当参数运行概要分析图表400,并在概要分析图表400运行完成前呈现出进程显示,来跟踪已经经过的时间和估计剩余时间。在概要分析图表400运行时,基于写入元数据存储器112的数据(例如,工作元素)来计算所估计的剩余时间。
4.1数据格式解释
利用一个输入组件来实施概要分析模块100中能解释广泛类型的数据系统的数据格式部分。该输入组件配置为直接解释一些数据格式,而不使用DML文件。例如,输入组件可以从使用结构化查询语言(SQL)(一种访问和操纵数据库的ANSI标准计算机语言)的数据系统读取数据。不使用DML文件处理的其它数据格式例如是根据XML标准或使用逗号分隔值(CSV)格式化的文本文件。
对于其它数据格式,输入组件使用概要建立对象200中指定的DML文件。DML文件可以指定解释和操纵数据集中的数据的各个方面。例如,DML文件可以指定数据集的以下方面:
类型对象-定义原始数据与原始数据所表示的值之间的对应关系。
键指定符(key specifier)-定义在记录之间的排序、分割和分组关系。
表达式-定义使用来自常数、数据记录字段或其它表达式结果的值进行的计算,以产生新的值。
转换函数-定义用于从0到多个输入记录产生一个或更多个输出记录的规则和其它逻辑的集合。
包(packet)-提供将类型对象、转换函数以及可以由组件使用而完成各种任务的变量进行分组的便利方式。
类型对象是基本机构(mechanism),用于从数据系统中的原始数据读取各工作元素(例如,各记录)。运行时间环境允许以原始数据位的串(例如,安装在文件系统中或在网络连接上流动)访问物理计算机可读存储介质(例如,磁、光或磁光介质)。输入组件可以访问DML文件以确定如何读取和解释原始数据,以产生工作元素流。
参照图4,类型对象502例如可以是基本类型504或复合类型506。基本类型对象504指定如何将位的串(给定长度的串)解释成单个值。基本类型对象504包括长度说明,其指出待读取和分析的原始数据位的个数。长度说明可以指示固定长度例如指定个数的字节、或可变长度(在数据末端指定分隔符(例如,特定字符或串)、或待读取的字符的个数(潜在可变的长度)。
空类型(void type)514表示其含义或内部结构不必解释的数据块(例如,压缩数据,其不被解释,直到解压之后)。空类型514的长度用字节指定。数字类型516表示一个数字,并且如果该数字根据标准的或特定CPU固有的各种编码被指定为整数524、实数526,或小数528,则会对其作出不同的解释。串类型518用于使用指定的字符集解释文本。日期类型520和日期时间类型522用于使用指定的字符集和其它格式化信息解释日历日期和/或时间。
复合类型506是由多个子对象构成的对象,这些子对象本身可以是基本类型或复合类型。矢量类型508是包含相同类型(基本或复合类型)的对象序列的对象。在矢量中的子对象的个数(即,矢量长度)可以由DML文件中的常数或由允许用可变长度来概要分析矢量的规则(例如,指明矢量末端的分隔符)指明。记录类型510是包含对象序列(其中每个对象可以是不同的基本类型或复合类型)的对象。该序列中的每个对象对应于与被命名的字段相关联的值。使用记录类型510,组件可以解释原始数据块,以提取一个记录的所有字段的值。联合(union)类型512是与记录类型510相似的对象,不同之处在于对应于不同字段的对象可以将相同的原始数据位解释成不同值。联合类型512提供了对相同原始数据进行多种解释的方式。
DML文件还允许使用定制数据类型进行数据概要分析。用户通过提供类型定义,可以用其它DML类型对象(基本或复合类型)定义一个定制类型对象。然后,概要分析模块100可以使用定制类型对象来解释不具有标准结构的数据。
DML文件也允许使用条件结构进行数据概要分析。记录可以基于与其它字段相关联的值而仅包括一些字段。例如,如果字段“婚否”的值是“是”,记录可以仅包括字段“配偶”。DML文件包括用于为给定记录确定是否存在条件字段的规则。如果记录中确实存在条件字段,可以用DML类型对象来解释字段的值。
图表可以使用输入组件有效地处理各种类型的记录结构。输入组件使用可变记录结构例如条件记录或可变长度矢量来解释记录的能力,使得图表不必先将这种数据展平成固定长度的区段就能处理这种数据。图表使用输入组件可以进行的另一类型的处理是发现数据的各部分之间的关系(例如,不同的记录、表格或文件中的数据)。图表可以使用输入组件内的规则来寻找在一个表格中的外键或字段与另一个表格中的主键或字段之间的关系,或对数据的各部分进行函数依赖性计算。
4.2统计数字
参照图5A,实施调查进行组件406的一个实施例的子图表600包括过滤组件602,其可以基于概要建立对象200a中存储的过滤表达式使一部分输入记录通过。过滤表达式可以限制被概要分析的字段或值的个数。过滤表达式的一个范例是将概要分析限制到每个输入记录的单个字段(例如,“标题”)。过滤组件602的另一个可选的功能是运行上述的清除选项,发送无效记录的采样值到无效记录组件408。从过滤组件602流出的记录流入局部上滚序列统计数字组件604和循环分割组件612。
在子图表600中,概要分析图表400(以及其它图表和子图表)在多个处理器和/或计算机上并行运行的能力,以及概要分析图表400读取多个位置上存储的并行数据集的能力,通过组件的线厚度和组件之间的链路上的符号不明显地表示。表示存储位置的组件例如输入数据集组件402的厚边线表明其可选的为并行数据集。处理组件例如过滤组件602的厚边线表明:以多个分区可选地运行进程,每个分区在不同的处理器或计算机上运行。用户可以通过用户接口116表明是否以并行或串行方式可选地运行并行图表组件。细边线表明数据集或程序是串行的。
局部上滚序列统计数字组件604计算与输入记录的顺序特性相关的统计数字。例如,组件604可以对顺序的记录对(其字段值增加、减少或递增1)的个数进行计数。在并行运行的情况下,为每个分区分别计算序列统计数字。上滚程序涉及从多个输入元素(组件604执行的用于上滚程序的序列统计数字)合并信息,产生单个输出元素来代替合并的输入元素。集合链接符号606表示将来自并行组件的任意多个分区的数据流合并或“集合”到串行组件的单个数据流中。整体上滚序列统计数字将来自多个分区的“局部”序列统计数字合并到单个的“整体”序列统计数字集合(其表示来自所有分区的记录)。所得到的序列统计数字可以存储在临时文件610中。
图6为用于执行上滚程序的程序700的范例的流程图,包括局部上滚序列统计数字组件604和整体上滚序列统计数字组件608执行的上滚程序。程序700通过接收输入元素(步骤702)开始。然后,程序700在步骤704更新正在编译的信息,在步骤706确定是否还有元素需要编译。如果还有要编辑的元素,程序700在步骤702接收下一个元素,继而在步骤704更新信息。如果没有要更新的元素,程序700在步骤708基于已编译的上滚信息结束输出元素。上滚程序可以用于将一组元素合并成单个元素,或确定一组元素的集聚(aggregate)属性(例如,这些元素中的值的统计数字)。
循环分割组件612从输入数据集402的单个或多个分区中提取记录,并在多个并行处理器和/或计算机(例如,用户选择的)之间重新分割记录,以在这些处理器和/或计算机之间平衡工作负荷。交叉连接链路符号614表示数据流的重新分割(由链接的组件612执行)。
标准化组件616提取记录流,并送出包含字段/值对(其表示输入记录中每个字段的值)的调查元素流。(具有10个字段的输入记录产生10个调查元素的流)。每个值被转换成规范的(即,根据预定的格式)、由人员可读取的串表达方式。调查元素中还包括标志(flag),其指出值是否有效以及值是否为0(即,对应于预定的“0”值)。这些调查元素流入局部上滚字段/值组件,后者(为每个分区)提取相同字段相同值的出现率,并将其合并到一个调查元素(包括对出现次数的计数)中。规范化组件616的另一个输出是对字段和值的总数的计数,对于所有分区,这些字段和值都被集合并合并到上滚总计数组件618中。这些总计数存储在临时文件620中,用于装载到数据集概要216中。
图7为标准化组件执行的程序710的范例的流程图,可以处理可能并不都具有相同字段的条件记录,以产生包含字段/值对的调查元素流。程序710执行嵌套循环,该嵌套循环始于在步骤712得到新记录。对于每个记录,程序710在步骤714得到那个记录中的字段,在步骤716确定那个字段是否是条件字段。如果该字段是有条件的,程序710在步骤718确定那个记录的那个字段是否存在。如果该字段确实存在,则程序710在步骤720规范化那个字段的记录的值,并产生对应的包含字段/值对的输出元素。如果该字段不存在,则程序710在步骤722继续确定是否有另一个字段或在步骤724确定是否有另一个记录。如果该字段不是有条件的,则程序710在步骤720规范化那个字段的记录的值(包括可能的0值)并继续到下一个字段或记录。
字段/值分割组件624通过字段和值重新分割这些调查元素,从而在整体上滚字段/值组件626中执行的上滚程序能够添加在不同分割中计算的出现率,以便为包含在已概要分析记录内的每个独有字段/值对产生单个调查元素中的总出现计数。整体上滚字段/值组件626在由调查文件组件410表示的潜在并行文件的潜在多个分区中,处理这些调查元素。
图5B为实施概要分析图表400的调查分析组件412的子图表630的示意图。字段分割组件632从调查文件组件410读取调查元素流,并基于字段根据散列值(hash value)重新分割这些调查元素,从而使具有相同字段(但具有不同的值)的调查记录位于同一分区中。串、数字、日期分割组件634还根据调查元素中的值的类型分割这些调查元素。对于作为串(在上滚串组件636中)、作为数字(在上滚数字组件638中)或作为日期/日期时间(在上滚日期组件640中)的值,(使用上滚进程)计算不同的统计数字。例如,计算平均值和标准偏差对于数字而言是适当的,但不适用于串。
从所有分区收集这些结果,并且直方图/十分位数信息计算组件642将用于计算直方图的信息(例如,每个字段的最大和最小值)提供给渲染区域(bucket)计算组件654,并将用于计算十分位数统计数字(例如,每个字段的值的个数)的信息提供给十分位数计算组件652。在直方图/十分位数信息计算组件642(在阶段虚线644上方)完成运行后,子图表630的产生直方图和十分位数统计数字(在阶段虚线644下方)的组件运行。
子图表630通过以下步骤构建十分位数边界的值(例如,大于值的10%、20%的值等等)的列表:在每个分区(在归类组件646中)内通过值对这些调查元素进行归类;根据所归类的值(在值分割组件648中)重新分割这些调查元素;并将这些调查元素合并成已归类(串行)流,并流入十分位数计算组件652。十分位数计算组件652在每个字段中的值的总数的十分之一的组中,计数该字段的已归类值,以寻找在十分位数边界的值。
子图表630通过以下步骤构建每个字段的直方图:计算定义每个值的括弧(或“渲染区域”)的值;对落入相同渲染区域的每个分区的值进行计数(在局部上滚直方图组件656中);对来自所有分区的每个渲染区域内的值进行计数(在整体上滚直方图组件658中)。然后,合并字段概要部分组件660从临时文件610将用于每个字段概要的所有信息,包括直方图、十分位数统计数字以及序列统计数字,收集到字段概要组件414中。图5C为实施概要分析图表400的采样组件418的子图表662的示意图。与子图表600一样,循环分割组件664从输入数据集402的单个或多个分区提取记录,并在多个并行处理器和/或计算机之间重新分割记录,以在这些处理器和/或计算机之间平衡工作负荷。
查找和选择组件666使用来自字段概要组件414的信息,确定记录是否对应于用户接口116上显示的值,该值可以由用户选择用于“往下深钻”的查看。用户接口116中显示的每种类型的值对应于不同的“采样类型”。如果记录中的值对应于采样类型,查找和选择组件666计算随机选择数,该随机选择数确定该记录是否被选择用于表示采样类型。
例如,对于特定采样类型的总共五个采样记录,如果选择数是能够看到的五个最大数之一(其为单个分区内的特定采样类型),那么传递对应的记录以及指明什么值可以对应于“往下深钻”的浏览的信息作为输出。采用这种方案,任何采样类型的第一组五个记录与具有所能看到的五个最大选择数之一的任何其他记录一样,可以自动地传递到下一个组件。
下一个组件是采样类型分割组件668,其根据采样类型重新分割记录,从而归类组件670可以使用每个采样类型内的选择数进行类别。然后,搜寻)组件672为每个采样类型选择具有最大选择数(在所有分区之间)的五个记录。然后,记录/链接采样组件674将这些采样记录写入到采样记录文件420,并将这些记录链接到字段概要组件414中的对应值。
元数据装载库组件416将数据集概要从临时文件组件620装载到元数据存储器112中的数据集概要216对象中,并将每个字段概要从字段概要组件414装载到元数据存储器112中的字段概要222对象中。然后,用户接口116可以检索数据集的概要分析结果,并在用户接口116产生的屏幕上显示给用户118。用户可以浏览概要结果,以观看字段的直方图或公共值。例如,可以提供“往下深钻”的能力,以观看与直方图中的条相关联的特定记录。
图8A-C例示了显示概要分析结果的用户界面屏幕输出。图8A示出来自数据集概要216的结果。数据集的各种总数802作为整体示出,还示出了与已概要分析字段相关联的属性的概述804。图8B-C示出来自示范性的字段概要222的结果。以各种形式显示对例如最大公共值806以及最大公共无效值808的值的选择,这些形式包括:其自身作为人员可读的串的值810、值的出现率的总计812、作为值的总数的百分比的出现率814以及条形统计图表816。所显示的值的直方图818示出跨越值的范围的多个渲染区域中每个渲染区域的条目,包括计数为0的渲染区域。还显示了十分位数边界820。
5范例
5.1数据发现
图9为程序900的范例的流程图,用于将数据集概要分析,以便在将其用于另一个程序之前发现其内容。程序900可以自动(例如,由调度脚本)或手动(例如,由用户在终端)进行。首先,程序900在902在在运行时间环境中可访问的一个或多个数据系统上识别待概要分析的数据集。然后,程序900可以基于所提供的信息或已有的元数据,选择性地在步骤904设置记录格式并在步骤906设置有效性规则906。对于某些类型的数据,例如数据库表格,可以使用默认记录格式和有效性规则。然后,程序900在步骤908对数据集(或数据集的子集)运行概要。程序900可以基于初始概要的结果在步骤910精简记录格式,或在步骤912精简有效性规则。如果任一概要分析选项发生改变,那么程序900在步骤914判定是否使用新的选项对该数据集运行另一概要,或者如果已经从(可能重复的)概要分析过程中获得关于该数据集的足够信息,则在步骤916处理该数据集。该过程将使用从概要分析过程中获得的信息直接从一个或更多个数据系统读取。
5.2质量测试
图10为程序1000的范例的流程图,用于将数据集概要分析,以在将其转换并装载到数据存储器中之前测试其质量。进程1000可以自动或手动进行。测试数据集的质量的规则可以来自数据集的先前知识,和/或来自概要分析程序例如对相似的数据集(例如,作为待测试数据集的来自相同源的数据集)进行的程需900的结果。此程序1000例如可以为商业上使用,用以在输入或处理数据之前,将从商业伙伴发送的定期的(例如每月)数据输入进行概要分析。这将允许商业上检测到“坏”数据(例如,无效值的比例高于阈值的数据),因此不会因难以取消的动作“污染”了已有的数据存储器。
首先,程序1000在步骤1002在运行时间环境中可访问的一个或多个数据系统上识别待测试的数据集。然后,程序1000在步骤1004对数据集(或数据集的子集)运行概要分析,并在步骤1006基于概要分析结果进行质量测试。例如,可以将该数据集的特定公共值的出现比例与先前数据集(基于先前的概要分析运行)的该公共值的出现比例相比较,如果二者的比例相差超过10%,则质量测试失败。此质量测试可以应用于一系列数据集中众所周知的一直出现的值(在10%内)。程序1000在步骤1008确定质量测试的结果,如果失败则在步骤1010产生标志(例如,用户界面提示或登录到日志文件)。如果质量测试通过,则程序1000直接从一个或多个数据系统读取数据,并在步骤1012变换(可能使用来自概要的信息)并将其从数据集装载到数据存储器中。然后,例如通过在步骤1002识别另一个数据集重复该程序。
5.3代码产生
概要分析模块100可以产生可执行代码,例如可以用于处理来自数据集的记录流的图表组件。所产生的组件可以对输入(incoming)记录进行过滤,只允许有效记录流出,这类似于概要分析图表400的清除选项。例如,用户可以选择概要分析选项,该概要分析选项指明一旦完成概要分析运行就应产生清除组件。用于实施该组件的代码指向文件位置(由用户指定)。然后,所产生的清除组件可以在与概要分析模块100(其在概要分析运行期间使用存储在元数据存储器112的信息)相同的运行时间环境中运行。
6汇合-字段分析
概要分析模块100可以选择性地对一组或多组字段内的关系进行分析。例如,概要分析模块100能够在一对字段的两个字段之间进行分析,这一对字段可以在相同或不同的数据集中。类似地,概要分析模块能够对多个字段对进行分析,例如分析一个数据集中的每个字段与一个数据集中的每个字段,或分析一个数据集中的每个字段与同一数据集中的每个其它字段。在不同数据集中的两个字段的分析与这两个数据集在这些字段上的汇合操作的特性有关,这一点将在下面详细描述。
在汇合-字段分析的第一种方式中,对两个数据集(例如,文件或表格)进行汇合操作。在另一方式(将在下面的6.1节中描述)中,在调查进行组件406产生数据集的调查文件后,该调查文件中的信息可以用于在两个不同的已概要分析数据集中的字段之间,或在相同的已概要分析数据集(或任何其它存在调查文件的数据集)的两个不同部分中的字段之间进行汇合-字段分析。汇合-字段分析的结果包括关于这些字段之间的潜在关系的信息。
发现三种类型的关系:“通用域”关系,“汇合井(joint well)”关系以及“外键”关系。如果汇合-字段分析的结果符合如下文所述的某种标准,一对字段则被分类为具有这三种类型的关系之一。
汇合-字段分析包括编译信息,该信息例如是使用这两个字段作为键字段进行的汇合操作所产生的记录个数。图11A-B为对来自两个数据库表格的记录进行的汇合操作的两个范例。表格A和表格B均具有标注为“字段1”和“字段2”的两个字段和四个记录。
参照图11A,汇合组件1100将来自表格A的记录的键字段的值与来自表格B的记录的键字段的值相比较。对于表格A,键字段是字段1;对于表格B,键字段是字段2。因此,汇合组件1100将来自表格A、字段1(Al)的值1102与来自表格B、字段1(Bl)的值1104相比较。汇合组件1100从这些表格接收输入记录流1110,并基于键-字段值的比较结果产生用以形成的新的汇合表格,即表格C的汇合记录流1112。汇合组件1100为这些输入流的每对匹配的键-字段值,产生一个汇合记录,该汇合记录是具有匹配的键-字段值的记录的串联。
在汇合输出端口1114输出的具有特定键-字段值的汇合记录的个数是记录个数分别与每个输入的键-字段值的笛卡尔乘积(Cartesian product)。在所示出的范例中,所示出的输入记录流1110由它们各自的键字段的值标注,并且所示出的汇合记录的输出流1112由匹配值标注。由于在两个输入流中均出现两个“X”值,在输出流就有四个“X”值。对于表格A和表格B的输入流,在一个输入流中具有与在其它输入流中的任何记录都不匹配的键-字段值的记录,分别在“拒绝”输出端口1116A和1116B输出。在所示出的范例中,“W”值出现在“拒绝”输出端口1116A。
概要分析模块100编译汇合和拒绝的值的统计数字,用于对两个字段之间的关系进行分类。这些统计数字被概述在分布表1118中,该分布表1118对这两个字段中的值的分布进行分类。“出现次数”表示在字段中值出现的次数。该表中的栏对应于第一字段(在此范例中来自表格A)的出现次数0、1以及N(其中N>1),该表中的行对应于第二字段(在此范例中来自表格B)的出现次数0、1以及N(其中N>1)。该表中的框包含与对应的分布图形相关联的计数:“栏出现数”ד行出现数”。每个框包含两个计数:具有该分布图形的相异值的个数,这些值的各汇合记录的总数。在一些情况下,这些值在两个字段都出现(即,具有分布图形:l×l、l×N、N×l或N×N),在另一些情况下,这些值仅在一个字段中出现(即,具有分布图形:1×0、0×l、N×0或0×N)。这些计数用逗号分开。
分布表1118包含对应于汇合记录1112和在端口1116A上的拒绝记录的计数。在“拒绝”输出端口1116A上的值“W”对应于分布图形1×0的框中的计数“1,1”,分别表示单个值和单个记录。由于值“X”在每个输入流出现两次,对于总的四个汇合记录,值“X”对应于分布图形N×N的框中的计数“1,4”。由于值“Y”在第一输入流出现一次而在第二输入流出现两次,对于总的两个汇合记录,值“Y”对应于分布图形1×N的框中的计数“1,2”。
图11B为与图11A的范例类似的范例,但是具有不同的键字段对。对于表格A,键字段是字段1;对于表格B,键字段是字段2。因此,汇合组件将来自表格A、字段1(A1)的值1102与来自表格B、字段2(B2)的值1120相比较。此范例具有分布表1122,该分布表1122的计数对应于这些字段的输入记录流1124。与图11A中的范例类似,存在单个拒绝值“Z”,其对应于分布图形0×1的框中的计数“1,1”。然而,在此范例中,存在两个值“W”和“Y”,由于有两个值和两个汇合记录,它们都具有分布图形l×l,对应于分布图形1×1的框中的计数“2,2”。值“X”对应于分布图形N×1的框中的计数“1,2”,指明单个值和2个汇合记录。
从分布表的这些数字可以进行各种合计。其中某些合计包括:在表格A和表格B中都出现的相异键-字段值的总数,在表格A中出现的相异键-字段值的总数,在表格B中出现的相异键-字段值的总数,以及在每个表格中的独有值(即,在键字段值的单个记录中仅出现一次的值)总数。基于这些合计的某些统计数字用于确定一对字段是否具有前述三种类型的关系之一。这些统计数字包括:字段中具有相异或独有值的总记录的比例、具有特定分布图形的总记录的比例,以及每个字段的“相对值重叠”。相对值重叠是在一个字段出现、也在其它字段出现的相异值的比例。确定一对字段是否具有三种类型的关系(这些关系不一定是互斥的)之一的标准如下:
外键关系-这些字段的第一个字段具有较高的相对值重叠(例如,>99%),且第二个字段具有较高比例(例如,>99%)的唯一值。第二个字段是潜在的主键,且第二字段是潜在的主键的外键。
汇合井关系-这些字段中至少一个字段的拒绝记录具有较小的比例(例如,<10%),且具有分布图形NxN的各汇合记录的比例较小(例如,<1%)
通用域关系-这些字段中至少一个字段具有较高的相对值重叠(例如,>95%)
如果一对字段具有外键以及汇合井或通用域关系,则报告外键关系。如果一对字段具有汇合井与通用域关系,但不具有外键关系,则报告汇合井关系。
6.1调查汇合
参照图12A,在实际对这些表格执行汇合操作的一个替换方案中,调查汇合组件1200分析来自表格A和表格B的字段,并通过对这些表格的调查数据执行“调查汇合”操作,来编译分布表的统计数字。每个调查记录具有字段/值对以及该值在该字段中的出现计数。由于对于给定的键字段,每个调查记录具有独有的字段/值对,则调查汇合组件1200的输入流的值是独有的。图12A的范例对应于对键字段对Al、B1(图11A所示)的汇合操作。通过比较与该汇合操作中的键字段对应的调查记录,由过滤组件1202选择“字段1”(A1)和由过滤组件1204选择“字段1”(B1),调查汇合组件1200潜在地进行比汇合组件1100(其比较来自表格A和表格B的各记录的键字段)的比较数目小得多的比较。图12B的范例对应于对键字段对Al、B2(图11B所示)的汇合操作,由过滤组件1206选择“字段1”(A1)和由过滤组件1208选择“字段2”(B2)。所示出的所选调查记录1210-1218由它们各自在字段/值对中的字段值和该值的出现计数来标注。
如果调查汇合组件1200发现两个输入调查记录1210-1218中的值之间的匹配,输出记录包含:匹配值、基于这两个计数的对应分布图形,以及在该对键字段的汇合操作中将产生的记录总数(其就是这两个计数的乘积)。如果没有发现该值的匹配,也输出该值与对应的分布图形和记录总数(其是在单个输入记录中的单个计数)。在调查汇合组件1200的输出记录内的此信息足以编译在汇合操作的分布表中的所有计数。
在图12A的范例中,在输出端出现的值“W”的分布图形为1×0,共为1;在输出端出现的值“X”的分布图形为N×N,共为4;以及在输出端出现的值“Y”的分布图形为1×N,共为2。此信息对应于图11A的分布表1118中的信息。在图12B的范例中,在输出端出现的值“W”的分布图形为1×1,共为1;在输出端出现的值“X”的分布图形为N×1,共为2;在输出端出现的值“Y”的分布图形为1×1,值为1;以及在输出端出现的值“Z”的分布图形为0×1,值为1。此信息对应于图l lB的分布表1122中的信息。
6.2扩展记录
用于在单个调查汇合操作中的多个字段对的汇合-字段分析包括基于调查记录产生“扩展记录”。在图13所示的范例中,调查汇合组件1200比较用于两对键字段A1、B1和A1、B2的汇合-字段分析的记录,并结合图12A-B所示的汇合-字段分析。通过连接被汇合的一对键字段的独有标识符与在调查记录中的值,并保持相同的出现计数作为该调查记录,从该调查记录产生扩展记录。
如果汇合-字段分析包括与多个其它字段汇合的一字段的结果,则为该字段的每个值产生多个扩展记录。例如,调查记录1210对应于两个扩展记录l301-1302,且值“W”分别与标识符“A1B1”和“A1B2”连接。调查汇合组件1200处理扩展记录1301的方式与其将处理具有值“WA1B1”的调查记录的方式相同。同样,调查记录1211对应于两个扩展记录1303-1304,以及调查记录1212对应于两个扩展记录1305-1306。
在图13的汇合-字段分析中,字段B1仅与一个其它字段(A1)汇合,因此每个调查记录1213-1214分别对应于单个扩展记录1307-1308。同样,字段B2仅与一个其它字段(A1)汇合,因此每个调查记录1215-1218分别对应于单个扩展记录1309-1312。每个扩展记录包括基于与独有的字段标识符连接的原始值的值。
参照图14,扩展组件1400基于汇合信息1401处理输入调查记录以产生扩展记录,汇合信息1401指明在汇合-字段分析中哪些字段与哪些其它字段汇合。在此范例中,汇合信息1401指明来自表格T1的调查数据的字段F1(具有四个调查记录1402)正与四个其它字段汇合:来自表格T2的调查数据的字段F1(具有两个调查记录1404),来自表格T2的调查数据的字段F2(具有两个调查记录1406),来自表格T3的调查数据的字段F1(具有两个调查记录1408),以及来自表格T3的调查数据的字段F2(具有两个调查记录1410)。流入扩展组件1400的调查记录1412表示来自表格T1(具有字段F1和值Vi,其中i=1,2,3,或4)的调查数据的四个调查记录1402之一。对于输入调查记录1412,扩展组件1400产生四个扩展记录1413-1416。
对于字段(包括在不同表格中具有相同名字的字段),调查汇合组件1200使用独有的标识符。扩展记录1413具有值c(T1,F1,T2,F1,Vi),值c是原始值Vi与被汇合的字段的标识符以及表格(或文件或其它数据源)的标识符的连接,其中从该表格(或文件或其它数据源)中产生字段的调查数据。表格包括标志符能够区分具有相同名称的字段。扩展记录1415具有区别于扩展记录1413的值c(T1,F1,T2,F1,Vi)的值c(T1,F1,T3,F1,Vi),其中两个表格T2和T3具有相同的字段名F1。可替换地,可以代替字段名,将独有数字分配给每个字段并使用。
6.3汇合-字段分析图表
图15A-B为概要分析模块100使用的图表,以对在数据源30内的源(例如,表格或文件)中所选择的字段进行任意的汇合-字段分析。用户118选择用于概要分析和汇合-字段分析的选项,包括执行不进行汇合-字段分析的概要分析的选项。用户118选择用于汇合-字段分析的字段对,包括:互相成对的两个指定字段、与每个其它字段成对的一个字段、或与每个其它字段成对的每个字段。用户118选择一选项,以允许在相同的表格或文件内的字段的成对,或仅允许在不同的表格或文件内的字段的成对。这些选项存储在元数据存储器112中。
参照图15A,对于汇合-字段分析选项中指定的字段的每个源(例如,表格或文件),图表1500利用为这些指定字段准备的调查数据1510产生一文件。图表1500对汇合-字段分析中所含的每个这样的源运行一次。过滤组件1504从调查进行组件406产生的调查数据1502接收记录,并准备用于汇合-字段分析的记录。过滤组件1504丢掉该分析中不包括的字段的记录(由存储在元数据存储器112的用户选项确定)。过滤组件1504还丢掉无效值、零值、以及对数据源的内容的有意义的分析中不包括的其它值(例如众所周知的数据标志)。
调查数据组件1502中的值已经被规范化组件616在调查进行组件406中规范化。然而,这些规范化的值可能具有不应当用在值的逻辑比较中的部分(例如,具有引导或拖尾空间的串,或具有引导或拖尾零的数字)。用户118可以选择用于“字面地”或“逻辑地”比较这些值的选项。如果用户118选择“字面”比较,则调查记录中的这些值以规范化的形式保留。如果用户118选择“逻辑”比较,则过滤组件1504根据规则(例如除去数字的引导和拖尾空间以及除去数字的引导和拖尾零)来转换调查记录中的值。
值分割组件1506基于调查记录中的值重新分割记录。具有相同值的任何调查记录被放入相同的分区。这允许汇合-字段分析跨过任意个数的分区并行运行。由于对于具有匹配值的输入记录,调查汇合组件1200只产生输出记录,在不同分区中的调查记录(或它们产生的任何扩展记录)不必互相比较。
上滚逻辑值组件1508合并因过滤组件1504进行的转换具有匹配的字段/值对的任意调查记录。合并后的记录具有出现计数,该出现计数是对所有合并记录的计数的和。例如,如果字段、值、计数为“数量,01.00,5”的调查记录被转换为“数量,1,5”,且字段、值、计数为“数量,1.0,3”的调查记录被转换为“数量,1,3”,则上滚逻辑值组件1508将这两个转换后的记录合并成字段、值、计数为“数量,1,8”的单个记录。
参照图15B,对于如汇合-字段分析选项所指定的具有一个或多个待比较字段的每对源,即,源A和源B,图表1512使用准备的调查数据A1514和准备的调查数据B1516(均由图表1500准备)运行。两个扩展组件1400从这些准备的调查数据组接收记录以及汇合信息1515,该汇合信息1515指定将要与源B中的指定字段进行比较的源A中的指定字段。扩展记录流入调查汇合组件1200,该调查汇合组件1200产生包含值、分布图形、以及分布表中正在比较的字段的计数的记录。局部上滚汇合统计数字组件1518编译在每个分区内的这些记录中的信息。然后,在各种分区中的记录由整体上滚汇合统计数字组件1520收集和编译,该整体上滚汇合统计数字组件1520输出文件1522,其包含对被分析的所有数据源对中的字段的所有汇合-字段分析统计数字。汇合-字段分析的结果(包括在各种字段之间潜在地存在这三种类型的关系中的哪个)装载到元数据存储器112中,用于呈现给用户118。例如,用户118可以在用户接口116上选择用于具有潜在关系的一对字段的链路,并在用户接口116上观看页面,该页面具有详细的分析结果(其包括来自分布表的该对字段的计数)。
参照图15C,当对相同源(源C)内的两个字段进行汇合-字段分析时,图表1524使用图表1500准备的调查数据C1526运行。单个扩展组件1400从该组准备的调查数据C1526接收记录以及汇合信息1528,该汇合信息1528指定待比较的源C中的指定字段。扩展记录流入调查汇合组件1200的两个端口,该调查汇合组件1200产生包含值、分布图形、以及分布表中待比较字段的计数的记录。
在汇合-字段分析选项指明源C中的每个字段将要与源C(具有四个字段:F1,F2,F3,F4)中的每个其它字段相比较的情况下,一种方式是汇合信息1528指定十二对字段(F1-F2,F1-F3,F1-F4,F2-F1,F2-F3,F2-F4,F3-F1,F3-F2,F3-F4,F4-F1,F4-F2,F4-F3)。然而,由于对于字段对F1-F3和F3-F1要进行相同的操作,一些操作被重复进行。因而,另一种方式是汇合信息仅指定六对独有字段对F1-F2,F1-F3,F1-F4,F2-F3,F2-F4,F3-F4。在此情况下,通过将已分析的六对字段的分析结果中的字段次序颠倒,输出文件1530的结果可以被扩大为包括其它六个字段对的结果。
7函数依赖性分析
概要分析模块100能够进行的另一种类型的分析是测试字段值之间的函数关系。所测试的字段可以来自具有一组字段的单个表格或来自“虚拟(virtual)表格”,该虚拟表格包括来自彼此相关的多个源(例如,通过使用公共键字段对这些字段的汇合操作而相关,这将在7.3节中详细描述)的字段。在一对字段之间的一种类型的函数关系是“函数依赖性”,即,与记录的一个字段相关联的值可以由与记录的另一个字段相关联的值唯一地确定。例如,如果数据库具有州(State)字段和邮政编码(Zip Code)字段,邮政编码字段的值(例如,90019)确定州字段的值(例如,CA)。邮政编码字段的每个值映射到州字段的独有值(即,“多对一”映射)。函数依赖性关系也可以存在于字段的子集(其中与记录的一个字段相关联的值可以由与记录的另一个字段相关联的值唯一地确定)之间。例如,邮政编码字段的值可以由城市字段和街道字段的值唯一地确定。
函数依赖性也可以是“近似的函数依赖性”,即与一个字段相关联的某些(不必全部)值映射到另一个字段的独有值,且具有未映射独有值的例外值具有一定比例。例如,一些记录可能具有未知的由特殊值00000表示的邮政编码。在此情况下,邮政编码字段的值00000可以映射到州字段的超过一个的值(例如CA,FL,以及TX)。也可能因具有不正确的值或其它错误的记录而出现例外值。如果例外值的比例小于预定(例如,由用户输入的)阈值,则字段可以仍被确定为与另一个字段存在函数依赖性。
参照图16,示出范例表格1600,其具有将要测试函数依赖性或近似函数依赖性的记录(行)和字段(栏)。姓(LastName)字段具有对应于十二个记录(行1-12)的十二个值。其中十个值是独有的,这些记录中的两个具有相同的重复值名_g。国籍(Citizenship)字段具有两个独有值:US出现十一次,CANADA出现一次。邮政编码字段具有各种值,每个对应于州字段的三个值CA、FL以及TX的一个。除了对应于一个记录(行10)中的FL和对应于另一个记录(行12)中的TX的邮政编码值00000,邮政编码的每个值唯一地确定州的值。
7.1函数依赖性分析图表
图17为概要分析模块100使用的图表1700的范例,以对在数据源30内的一个或多个源(例如,在单个表格或文件中,或如7.3节所述的在多个表格和/或文件中)中所选择的字段进行任意的函数依赖性分析。用户118选择用于概要分析和函数依赖性分析的选项,包括执行不进行函数依赖性分析的概要分析的选项。用户118可以选则哪对字段或哪些字段对进行函数关系的测试。用户118选择数据源(例如,表格或文件)的特定字段,并选择例如“全部到选择”或“选择到选择”来确定测试哪些字段对,或选择“全部到全部”,来测试数据源中的所有字段对。在决定字段与或不与另一个字段存在函数依赖性之前,用户可以选择确定函数依赖性程度的阈值。例如,用户可以选择确定允许多少例外值(作为记录的比例)的阈值。这些选项存储在元数据存储器112中。
对于将要分析的每对字段(f1,f2),图表1700确定是否存在函数依赖性关系,如果存在,则将字段f1和字段f2之间的关系归类为:“f1确定f2”、“f2确定f1”、“一对一”(在f1与f2之间存在一对一的映射),或“等同”(在每个记录中f1基本具有与f2相同的值)。图表1700读取由在概要分析模块100存储的字段信息1702,以确定待分析的字段的独有标识符。配对组件1704使用待测试的每对字段的一对独有标识符产生字段对(f1,f2)的流。由于f2与f2之间的关系不必是对称的,该对字段(f1,f2)是有序的对。因此该流中包括两对字段(f1,f2)和(f2,f1)。
字段对选择组件1706通过选择用户为分析选择的字段对,来限制流到图表1700的其余部分的字段对。字段对选择组件1706还基于各种优化法,进一步限制流到图表1700的其余部分的字段对。例如,字段与其自身不成对,因为这样的对通过定义被归类到“等同”。因此,该流中不包括字段对(f1,f1),(f2,f2)…等。其它优化法可以从该流中去掉一个或多个字段对,这将在下面的7.2节中详细描述。
广播组件1708将字段对的序列流广播到(潜在地并行的)附加值组件1718的每个分区,由广播链接符号1710表示。附加值组件1718的每个分区采用字段对(例如,(LastName,Citizenship),(Zip,State)…等)的流和字段/值对(例如,(LastName,name_a),(LastName,name_b),(LastName,name_c)…,(Citizenship,Canada)(Citizenship,US),(Citizenship,US)…等)的流作为输入。
为获得字段/值对的流,过滤组件1712从输入数据集402提取记录,并基于过滤表达式选择性地去掉部分记录。从过滤组件1712流出的记录流入循环分割组件1714。循环分割组件1714从输入数据集402的分区提取记录,并在多个并行处理器和/或计算机之间重新分割记录,以在这些处理器和/或计算机之间平衡工作负荷。规范化组件1716(与前述规范化组件616类似)获取记录流,并发送出表示输入记录中每个字段的值的字段/值对的流。如上所述,每个值被转换成规范化的人员可读的串表示。
附加值组件1718执行一序列汇合操作,以产生f1/f2/vl/v2四重(quadruples)流,其中f1和f2对应于在输入端接收到的字段对之一,vl和v2对应于与记录中的这些字段成对的值。在表格1600的范例中,当姓字段对应于f1以及国籍字段对应于f2时,附加值组件1718产生十二个f1/f2/vl/v2四重流,包括:(LastName/Citizenship/name_a/Canada),(LastName/Citizenship/name_b/US)…(LastName/Citizenship/name_k/US),(LastName/Citizenship/name_g/US)。对于(Zip,State)和已分析的任何其它字段对,附加值组件1718产生类似序列,即f1/f2/vl/v2四重流。
附加值组件1718将f1/f2/vl/v2四重流输出到“局部上滚f1/f2/vl/v2”组件1720,“局部上滚f1/f2/vl/v2”组件1720(对于每个分区)使用相同的字段和值f1、f2、v1、v2累加多个四重流,并将它们表示成单个四重流,其具有输入流中四重流的出现次数的计数。“局部上滚f1/f2/vl/v2”组件1720的输出流由具有计数(“累加的四重流”)的四重流组成。
在“局部上滚f1/f2/vl/v2”组件1720中发生的累加位于每个分区内。因此一些具有相同的f1、f2、v1、v2值的四重流不会被此组件1720累加。“fl/f2分割”组件1721重新分割累加的四重流,从而具有相同字段f1、f2的四重流在相同的分区中。“整体上滚f1/f2/vl/v2”组件1722进一步累加重新分割后的四重流。“整体上滚f1/f2/vl/v2”组件1722的输出流由唯一累加的四重流组成。在表格1600的范例中,当邮政编码字段对应于f1且州字段对应于f2时,组件1720-1722的组合效果产生以下六个累加的四重流:(Zip/State/90019/CA,4)、(Zip/State/90212/CA,2)、(Zip/State/33102/FL,3)、(Zip/State/00000/FL,1)、(Zip/State/77010/TX,1)、(Zip/State/00000/TX,1)。当州字段对应于f1且邮政编码字段对应于f2时,组件1720-1722的组合效果产生以下六个累加的四重流:(State/Zip/CA/90019,4)、(State/Zip/CA/90212,2)、(State/Zip/FL/33102,3)、(State/Zip/FL/00000,1)、(State/Zip/TX/77010,1)、(State/Zip/TX/00000,1)。
为了准备测试一对字段之间的函数依赖性关系,“整体上滚f1/f2/vl”组件1724合并所累加的、共同具有两个字段f1、f2和第一值vl的四重流。在生成输出元素的过程中,此组件1724检查伴随vl值的所有v2值,并选择最频繁的v2与该v1值相关联。共享最频繁的v2的四重流的数量被计数为“好”,其余的四重流被计数为“例外”。如果对于给定的vl只有一个v2值,则具有该值的所累加的四流重是好的并且没有例外值。如果最频繁的v2值有一个“结(tie)”,则选择第一个值。在表格1600的范例中,当邮政编码字段对应于f1且州字段对应于f2时,组件1724产生:(Zip/State/90019/CA,4好)、(Zip/State/90212/CA,2好)、(Zip/State/33102/FL,3好)、(Zip/State/00000/FL,1好,1例外)、(Zip/State/77010/TX,1好)。当州字段对应于f1且邮政编码字段对应于f2时,组件1724产生:(State/Zip/CA/90019,4好,2例外)、(State/Zip/FL/33102,3好,1例外)、(State/Zip/TX/77010,1好,1例外)。
“整体上滚f1/f2”组件1726将每个独有字段对f1、f2的好的计数和例外值相加。在表格1600的范例中,当邮政编码字段对应于f1且州字段对应于f2时,组件1726产生:(Zip/State,11好,1例外)。当州字段对应于f1且邮政编码字段对应于f2时,组件1726产生:(State/Zip,8好,4例外)。
依赖性发现组件1728使用来自“整体上滚f1/f2”组件1726的所累加的同现统计数字(即,好的和例外的记录的个数),确定一对字段是否具有“f1确定f2”的关系。如果例外值的比例(例外的个数/(好的个数+例外的个数))小于所选择的用于确定允许多少例外值的阈值,则该对字段具有“f1确定f2”的关系。在表格1600的范例中,对于阈值10%,当邮政编码字段对应于f1且州字段对应于f2时,例外值的比例是8.3%,并且邮政编码字段的值确定州字段的值。当州字段对应于f1且邮政编码字段对应于f2时,例外值的比例是33%,因此邮政编码字段与州字段之间的关系并非一对一映射。
可替换地,基于累加的值的数学属性的值可以用于确定是否是字段f1确定字段f2(例如,字段f1的值给定的字段f2的值的条件熵,或数值的标准偏差)。
7.2选择字段对的优化
可以采用各种优化法来加快函数依赖性分析的速度,例如在字段对选择组件1706过滤字段对,或在过滤组件1712过滤记录。一些优化法基于这样的认识,即,上述的图表1700发现的一些函数依赖性关系对于用户来讲并不像对其他人那样有意义。对于一给定字段对,这些情况中的一些情况可以被字段对选择组件1706基于概要分析模块100提供的统计数字检测到并过滤掉,这节省了计算资源。例如,如果第一字段f1的所有值都是独有的(在单个记录中每个值仅出现一次),则该字段f1的值确定第二字段f2的值,而与字段f2中出现的值无关。
图表1700可以使用在概要分析过程中获得的调查数据,基于这些字段中的值的随机(例如,统一概率分布)配对来计算由第一字段f1确定第二字段f2的概率。如果随机配对将导致函数依赖性的概率较高(例如,>10%),则该字段对被字段对选择组件1706过滤掉。在表格1600的范例中,除了当name_g值(在行7或行12中)中的一个与值Canada随机配对以外,当姓字段对应于f1且国籍字段对应于f2时,姓与国籍的每个随机配对将导致所有四重流被计数为好。即使当此随机配对发生(概率为16.7%(12个配对中的2个)),例外比例仅是低于阈值的8.3%。因此,在此范例中,字段对选择组件1706过滤该对字段(LastName,Citizenship)。
另一个优化法基于概要分析模块100从调查数据计算出的值的直方图。字段对选择组件1706过滤掉字段f1不能确定字段f2的字段对。在表格1600的范例中,州的最频繁的值出现6次,而邮政编码的最频繁的值仅出现4次。因此,州的值不能确定邮政编码的值,因为对于至少一半的值,在6个范围内至少有2个例外,这导致至少16.7%的例外比例。因此,在此范例中,字段对选择组件1706过滤掉该对(State,Zip)。
对于数量众多的记录,图表1700可以通过在处理所有记录之前先处理小部分记录采样,以排除一些很有可能不具有函数相关性的字段对,来加快测试函数依赖性的速度。图表1700可以使用过滤组件1712选择部分记录。可替换地,图表1700可以使用规范化组件1716选择部分字段/值对。
可以基于各种标准对记录或字段/值对采样。图表1700可以基于概要分析模块100提供的统计数字采样。例如,图表1700可以基于第一字段f1(“决定因素(determiner)”)的最频繁的值测试函数依赖性。如果得到的例外值个数高于阈值,则不必处理该决定因素的其余值。图表1700也可以基于决定因素值的随机采样测试函数依赖性。如果在这些采样值之间足够数目的四重流被计数为好,则假定可以忽略在其它值之间发现实际数目的例外值的概率。其它采样标准也可以使用。
另一个可选的优化法是基于已知的函数库测试字段之间预定的函数关系。此测试可以对记录或四重流的值进行。
7.3跨过多个源的函数依赖性分析
在一种跨过多来源(例如,多个数据库表格)的函数依赖性测试的方式中,概要分析模块100产生包括来自所述多个源的字段的“虚拟表格(virtualtable)”。该虚拟表格可以例如,通过利用对这些源共用的键字段对这些源进行汇合操作而产生。
在使用虚拟表格进行函数依赖性分析的范例中,第一数据源是机动车辆登记信息(机动车辆登记(MVR)数据库)的数据库,第二数据源是发出的交通罚单(交通罚单(TC)数据库)的数据库。MVR数据库包括字段例如制造商、型号、颜色,并包括被指定为“主键”字段的执照字段。MVR数据库的每个记录具有独有的执照字段值。TC数据库包括字段例如姓名、日期、位置、违规记录、机动车制造商、机动车型号、机动车颜色,并包括被指定为“外键”字段的机动车执照字段。机动车执照字段的每个值具有与MVR数据库中的执照字段的值对应的记录。TC数据库可以具有机动车执照字段值相同的多个记录。
概要分析模块100汇合来自MVR数据库和TC数据库的记录,以形成虚拟表格(例如,如前面参考图11A所示的汇合组件1100所述的)。该虚拟表格的每个记录具有来自两个数据库的每个字段,包括单个执照字段,其具有与来自MVR执照字段和TC机动车执照字段的匹配值。然而,记录可以具有与来自TC数据库的机动车颜色字段值不同的、来自MVR数据库的颜色字段值。例如,MVR数据库可以使用“BLU”代码来表示蓝色,而TC数据库使用“BU”代码来表示蓝色。在此情况下,如果机动车在这两个数据库中具有相同的颜色,则颜色字段与机动车颜色字段将具有“一对一”的函数关系。可替换地,如果在登记和接收传讯(citation)之间的时间机动车已被涂上不同的颜色,对于颜色字段与机动车颜色字段,记录可以具有不同的值。
由于汇合虚拟表格包括来自多个数据集中每个数据集的字段,概要分析模块100可以发现这些数据集中的字段之间可能存在的各种关系中的任何关系。如上所述的相同的或相似的依赖性分析可以对汇合虚拟表格中的字段运行。
上述方式可以利用在计算机上运行的软件来实施。例如,该软件可以形成在一个或多个已编程或可编程的计算机系统(它们可以是各种架构的,例如分布式、客户/服务器、或网格)上运行的一个或多个计算机程序中的程序;其中,每个计算机系统包括:至少一个处理器、至少一个数据存储系统(例如,易失性和非易失性存储器和或存储元件)、至少一个输入装置或端口,以及至少一个输出装置或端口。该软件可以形成更大的程序例如,提供与图表的设计和配置相关的其它服务的程序的一个或多个模块。
该软件可以设置在一般或专用目的的可编程计算机可读的介质或装置上,或经网络传递(编码成可传播的信号)到将运行它的计算机。所有这些功能可以在专用目的的计算机上或使用专用目的的硬件例如协处理器实现。该软件可以以分布方式实施,其中,软件指定的不同的计算部分由不同的计算机进行。每个这种计算机程序优选存储在或下载到一般或专用目的的可编程计算机可读的存储介质或装置(例如,固态存储器或介质,或磁或光介质),用于在该计算机系统读取该存储介质或装置以运行这里描述的程序时,配置和操作计算机。本发明的系统也可以考虑作为配置有计算机程序的计算机可读存储介质来实施,其中,存储介质被配置为使计算机系统以实现这里所述的功能的特定和预定义的方式操作。
应当理解前面的描述意在示例性的说明而非限制本发明的范围,本发明的范围由所附的权利要求书的范围来限定。其他实施例落在所附的权利要求书的范围内。

Claims (14)

1.一种数据处理方法,包括如下步骤:
接收记录流,每个记录包括一个或多个字段和对应值;
在多个处理器之间分割所述记录流;
为所述记录流中一个或多个记录中的每个:
确定记录中的特定字段是否为条件字段;
如果所述特定字段为条件字段,确定所述特定字段是否具有值;以及
如果所述特定字段不是条件字段,或者如果所述特定字段为条件字段且具有值,产生用于所述特定字段的字段值对;
为每个处理器生成每个相异字段值对的调查记录,所述调查记录包括表示相异字段和相异值的字段值对的计数;
基于用于各字段的所述调查记录计算所述记录流中每个字段的统计数字;以及
基于对应的统计数字为所述记录流中的每个字段生成概要。
2.如权利要求1所述的方法,其中,所述记录流的至少一个记录包括可变数目的字段。
3.如权利要求1所述的方法,还包括如下步骤:基于所述统计数字确定格式规范。
4.如权利要求1所述的方法,还包括如下步骤:计算至少一个字段的直方图或十分位数统计数字。
5.如权利要求1所述的方法,还包括如下步骤:计算与所述记录的顺序特性相关的统计数字。
6.如权利要求1所述的方法,其中基于用于各字段的所述调查记录计算所述记录流中每个字段的统计数字包括:在多个分区之间分割所述调查记录,使得具有相同字段的调查记录位于同一分区中。
7.如权利要求6所述的方法,其中分割所述调查记录还包括:根据调查记录中的值的类型分割所述调查记录,使得对于不同类型的值计算不同的统计数字。
8.一种数据处理装置,包括:
接收模块,用于接收记录流,每个记录包括一个或多个字段和对应值;
分割模块,用于在多个处理器之间分割所述记录流;
字段值对生成模块,用于为所述记录流中一个或多个记录中的每个:确定记录中的特定字段是否为条件字段;如果所述特定字段为条件字段,确定所述特定字段是否具有值;以及如果所述特定字段不是条件字段,或者如果所述特定字段为条件字段且具有值,产生用于所述特定字段的字段值对;
调查记录生成模块,用于为每个处理器生成每个相异字段值对的调查记录,所述调查记录包括表示所述相异字段和所述相异值的字段值对的计数;
计算模块,用于基于用于各字段的所述调查记录计算所述记录流中每个字段的统计数字;以及
概要生成模块,用于基于对应的统计数字为所述记录流中的每个字段生成概要。
9.如权利要求8所述的装置,其中,所述记录流的至少一个记录包括可变数目的字段。
10.如权利要求8所述的装置,其中,所述数据处理装置还包括:用于基于所述统计数字确定格式规范的模块。
11.如权利要求8所述的装置,其中,所述数据处理装置还包括:用于计算至少一个字段的直方图或十分位数统计数字的模块。
12.如权利要求8所述的装置,其中,所述数据处理装置还包括:用于计算与所述记录的顺序特性相关的统计数字的模块。
13.如权利要求8所述的装置,其中基于用于各字段的所述调查记录计算所述记录流中每个字段的统计数字包括:在多个分区之间分割所述调查记录,使得具有相同字段的调查记录位于同一分区中。
14.如权利要求13所述的装置,其中分割所述调查记录还包括:根据调查记录中的值的类型分割所述调查记录,使得对于不同类型的值计算不同的统计数字。
CN201210367944.3A 2003-09-15 2004-09-15 数据处理方法、数据处理装置及计算机可读存储介质 Active CN102982065B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US50290803P 2003-09-15 2003-09-15
US60/502,908 2003-09-15
US51303803P 2003-10-20 2003-10-20
US60/513,038 2003-10-20
US53295603P 2003-12-22 2003-12-22
US60/532,956 2003-12-22
CN 200480026429 CN1853181A (zh) 2003-09-15 2004-09-15 数据归档

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN 200480026429 Division CN1853181A (zh) 2003-09-15 2004-09-15 数据归档

Publications (2)

Publication Number Publication Date
CN102982065A CN102982065A (zh) 2013-03-20
CN102982065B true CN102982065B (zh) 2016-09-21

Family

ID=34381971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210367944.3A Active CN102982065B (zh) 2003-09-15 2004-09-15 数据处理方法、数据处理装置及计算机可读存储介质

Country Status (10)

Country Link
US (5) US7849075B2 (zh)
EP (3) EP1676217B1 (zh)
JP (3) JP5328099B2 (zh)
KR (4) KR100922141B1 (zh)
CN (1) CN102982065B (zh)
AT (1) ATE515746T1 (zh)
AU (3) AU2004275334B9 (zh)
CA (3) CA2655731C (zh)
HK (1) HK1093568A1 (zh)
WO (1) WO2005029369A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220283A (zh) * 2017-04-21 2017-09-29 东软集团股份有限公司 数据处理方法、装置、存储介质及电子设备

Families Citing this family (202)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100922141B1 (ko) 2003-09-15 2009-10-19 아브 이니티오 소프트웨어 엘엘시 데이터 프로파일링 방법 및 시스템
US7653641B2 (en) * 2004-05-04 2010-01-26 Accruent, Inc. Abstraction control solution
US7349898B2 (en) * 2004-06-04 2008-03-25 Oracle International Corporation Approximate and exact unary inclusion dependency discovery
US7647293B2 (en) * 2004-06-10 2010-01-12 International Business Machines Corporation Detecting correlation from data
US7386566B2 (en) * 2004-07-15 2008-06-10 Microsoft Corporation External metadata processing
US8732004B1 (en) 2004-09-22 2014-05-20 Experian Information Solutions, Inc. Automated analysis of data to generate prospect notifications based on trigger events
US20060082581A1 (en) 2004-10-14 2006-04-20 Microsoft Corporation Encoding for remoting graphics to decoder device
US7852342B2 (en) 2004-10-14 2010-12-14 Microsoft Corporation Remote client graphics rendering
US7610264B2 (en) * 2005-02-28 2009-10-27 International Business Machines Corporation Method and system for providing a learning optimizer for federated database systems
US8117300B2 (en) * 2005-04-25 2012-02-14 Invensys Systems, Inc Supporting both asynchronous and synchronous data transfers between production event information sources and a production information database
US7836104B2 (en) * 2005-06-03 2010-11-16 Sap Ag Demonstration tool for a business information enterprise system
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070006070A1 (en) * 2005-06-30 2007-01-04 International Business Machines Corporation Joining units of work based on complexity metrics
US8788464B1 (en) * 2005-07-25 2014-07-22 Lockheed Martin Corporation Fast ingest, archive and retrieval systems, method and computer programs
US20070033198A1 (en) * 2005-08-02 2007-02-08 Defries Anthony Data representation architecture for media access
US8527563B2 (en) * 2005-09-12 2013-09-03 Microsoft Corporation Remoting redirection layer for graphics device interface
US20070074176A1 (en) * 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for parallel processing of data profiling information
US20070073721A1 (en) * 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for serviced data profiling operations
US8996586B2 (en) * 2006-02-16 2015-03-31 Callplex, Inc. Virtual storage of portable media files
US7873628B2 (en) * 2006-03-23 2011-01-18 Oracle International Corporation Discovering functional dependencies by sampling relations
US20070271259A1 (en) * 2006-05-17 2007-11-22 It Interactive Services Inc. System and method for geographically focused crawling
US7526486B2 (en) * 2006-05-22 2009-04-28 Initiate Systems, Inc. Method and system for indexing information about entities with respect to hierarchies
EP2030134A4 (en) 2006-06-02 2010-06-23 Initiate Systems Inc SYSTEM AND METHOD FOR AUTOMATIC WEIGHT GENERATION FOR CHARACTERISTICITY
US7711736B2 (en) * 2006-06-21 2010-05-04 Microsoft International Holdings B.V. Detection of attributes in unstructured data
US8356009B2 (en) 2006-09-15 2013-01-15 International Business Machines Corporation Implementation defined segments for relational database systems
US7685093B1 (en) 2006-09-15 2010-03-23 Initiate Systems, Inc. Method and system for comparing attributes such as business names
US7698268B1 (en) 2006-09-15 2010-04-13 Initiate Systems, Inc. Method and system for filtering false positives
US8266147B2 (en) * 2006-09-18 2012-09-11 Infobright, Inc. Methods and systems for database organization
WO2008034213A1 (en) * 2006-09-18 2008-03-27 Infobright Inc. A method and system for data compression in a relational database
US8762834B2 (en) * 2006-09-29 2014-06-24 Altova, Gmbh User interface for defining a text file transformation
US20080097992A1 (en) * 2006-10-23 2008-04-24 Donald Martin Monro Fast database matching
US9846739B2 (en) 2006-10-23 2017-12-19 Fotonation Limited Fast database matching
US7809747B2 (en) * 2006-10-23 2010-10-05 Donald Martin Monro Fuzzy database matching
US7613707B1 (en) * 2006-12-22 2009-11-03 Amazon Technologies, Inc. Traffic migration in a multilayered data service framework
US8150870B1 (en) 2006-12-22 2012-04-03 Amazon Technologies, Inc. Scalable partitioning in a multilayered data service framework
US7774329B1 (en) 2006-12-22 2010-08-10 Amazon Technologies, Inc. Cross-region data access in partitioned framework
CN101226523B (zh) * 2007-01-17 2012-09-05 国际商业机器公司 数据概况分析方法和系统
US8359339B2 (en) 2007-02-05 2013-01-22 International Business Machines Corporation Graphical user interface for configuration of an algorithm for the matching of data records
US20080195575A1 (en) * 2007-02-12 2008-08-14 Andreas Schiffler Electronic data display management system and method
US8515926B2 (en) * 2007-03-22 2013-08-20 International Business Machines Corporation Processing related data from information sources
US8423514B2 (en) 2007-03-29 2013-04-16 International Business Machines Corporation Service provisioning
WO2008121170A1 (en) 2007-03-29 2008-10-09 Initiate Systems, Inc. Method and system for parsing languages
WO2008121824A1 (en) 2007-03-29 2008-10-09 Initiate Systems, Inc. Method and system for data exchange among data sources
US8370355B2 (en) 2007-03-29 2013-02-05 International Business Machines Corporation Managing entities within a database
US20120164613A1 (en) * 2007-11-07 2012-06-28 Jung Edward K Y Determining a demographic characteristic based on computational user-health testing of a user interaction with advertiser-specified content
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US20090254588A1 (en) * 2007-06-19 2009-10-08 Zhong Li Multi-Dimensional Data Merge
US20110010214A1 (en) * 2007-06-29 2011-01-13 Carruth J Scott Method and system for project management
DE112008001800B4 (de) 2007-07-12 2020-07-30 Atmel Corporation Zweidimensionales Touchpanel
US20090055828A1 (en) * 2007-08-22 2009-02-26 Mclaren Iain Douglas Profile engine system and method
EP2191362B1 (en) * 2007-09-20 2015-08-19 Ab Initio Technology LLC Managing data flows in graph-based computations
US9690820B1 (en) 2007-09-27 2017-06-27 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
EP2193415A4 (en) * 2007-09-28 2013-08-28 Ibm METHOD AND SYSTEM FOR ANALYZING A SYSTEM FOR THE ADJUSTMENT OF DATA SETS
US8417702B2 (en) 2007-09-28 2013-04-09 International Business Machines Corporation Associating data records in multiple languages
US8713434B2 (en) 2007-09-28 2014-04-29 International Business Machines Corporation Indexing, relating and managing information about entities
US8321914B2 (en) 2008-01-21 2012-11-27 International Business Machines Corporation System and method for verifying an attribute in records for procurement application
US8224797B2 (en) * 2008-03-04 2012-07-17 International Business Machines Corporation System and method for validating data record
US8046385B2 (en) * 2008-06-20 2011-10-25 Ab Initio Technology Llc Data quality tracking
JP5331203B2 (ja) 2008-06-30 2013-10-30 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータ記録
US8239389B2 (en) * 2008-09-29 2012-08-07 International Business Machines Corporation Persisting external index data in a database
JP5535230B2 (ja) 2008-10-23 2014-07-02 アビニシオ テクノロジー エルエルシー ファジーなデータ操作
JP5525541B2 (ja) * 2008-12-02 2014-06-18 アビニシオ テクノロジー エルエルシー データ管理システム内のデータセットのインスタンスのマッピング
WO2010088523A1 (en) * 2009-01-30 2010-08-05 Ab Initio Technology Llc Processing data using vector fields
US8051060B1 (en) * 2009-02-13 2011-11-01 At&T Intellectual Property I, L.P. Automatic detection of separators for compression
EP2396724A4 (en) 2009-02-13 2012-12-12 Ab Initio Technology Llc TASK EXECUTION MANAGEMENT
CN102395950B (zh) * 2009-02-13 2016-03-16 起元技术有限责任公司 与数据存储系统的通信
US10102398B2 (en) * 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
KR20150040384A (ko) * 2009-06-10 2015-04-14 아브 이니티오 테크놀로지 엘엘시 테스트 데이터의 생성
JP2011008560A (ja) * 2009-06-26 2011-01-13 Hitachi Ltd 情報管理システム
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
WO2011035039A1 (en) 2009-09-16 2011-03-24 Ab Initio Technology Llc Mapping dataset elements
JP5411282B2 (ja) * 2009-09-17 2014-02-12 パナソニック株式会社 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路
US8700577B2 (en) * 2009-12-07 2014-04-15 Accenture Global Services Limited GmbH Method and system for accelerated data quality enhancement
AU2010337218B2 (en) * 2009-12-14 2015-09-24 Ab Initio Technology Llc Specifying user interface elements
US9477369B2 (en) * 2010-03-08 2016-10-25 Salesforce.Com, Inc. System, method and computer program product for displaying a record as part of a selected grouping of data
US8205114B2 (en) 2010-04-07 2012-06-19 Verizon Patent And Licensing Inc. Method and system for partitioning data files for efficient processing
US8577094B2 (en) 2010-04-09 2013-11-05 Donald Martin Monro Image template masking
US8521748B2 (en) 2010-06-14 2013-08-27 Infobright Inc. System and method for managing metadata in a relational database
US8417727B2 (en) 2010-06-14 2013-04-09 Infobright Inc. System and method for storing data in a relational database
AU2011268459B2 (en) 2010-06-15 2014-09-18 Ab Initio Technology Llc Dynamically loading graph-based computations
CA2801079C (en) 2010-06-22 2016-05-03 Ab Initio Technology Llc Processing related datasets
WO2012008951A1 (en) * 2010-07-13 2012-01-19 Hewlett-Packard Development Company, L.P. Methods, apparatus and articles of manufacture to archive data
US8515863B1 (en) * 2010-09-01 2013-08-20 Federal Home Loan Mortgage Corporation Systems and methods for measuring data quality over time
CN103180826B (zh) 2010-10-25 2017-04-05 起元技术有限责任公司 在代表计算机程序的数据流图中管理数据集对象
KR20120061308A (ko) * 2010-12-03 2012-06-13 삼성전자주식회사 휴대용 단말기에서 데이터 베이스를 제어하기 위한 장치 및 방법
KR101872748B1 (ko) 2011-01-14 2018-06-29 아브 이니티오 테크놀로지 엘엘시 데이터 콜렉션에 대한 변경 관리 방법
US9449057B2 (en) 2011-01-28 2016-09-20 Ab Initio Technology Llc Generating data pattern information
US9116759B2 (en) 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
US9021299B2 (en) 2011-02-18 2015-04-28 Ab Initio Technology Llc Restarting processes
CN102893284B (zh) * 2011-03-15 2016-07-06 松下电器产业株式会社 篡改监视系统、管理装置、保护控制模组及检测模组
US9558519B1 (en) 2011-04-29 2017-01-31 Consumerinfo.Com, Inc. Exposing reporting cycle information
US20120330880A1 (en) * 2011-06-23 2012-12-27 Microsoft Corporation Synthetic data generation
US8782016B2 (en) * 2011-08-26 2014-07-15 Qatar Foundation Database record repair
US9116934B2 (en) * 2011-08-26 2015-08-25 Qatar Foundation Holistic database record repair
US8863082B2 (en) * 2011-09-07 2014-10-14 Microsoft Corporation Transformational context-aware data source management
US8719271B2 (en) 2011-10-06 2014-05-06 International Business Machines Corporation Accelerating data profiling process
US9430117B2 (en) * 2012-01-11 2016-08-30 International Business Machines Corporation Triggering window conditions using exception handling
US9438656B2 (en) 2012-01-11 2016-09-06 International Business Machines Corporation Triggering window conditions by streaming features of an operator graph
US20130304712A1 (en) * 2012-05-11 2013-11-14 Theplatform For Media, Inc. System and method for validation
US9582553B2 (en) * 2012-06-26 2017-02-28 Sap Se Systems and methods for analyzing existing data models
US9633076B1 (en) * 2012-10-15 2017-04-25 Tableau Software Inc. Blending and visualizing data from multiple data sources
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
CA2887661C (en) * 2012-10-22 2022-08-02 Ab Initio Technology Llc Characterizing data sources in a data storage system
CA2887670C (en) * 2012-10-22 2021-05-25 Ab Initio Technology Llc Profiling data with location information
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9703822B2 (en) 2012-12-10 2017-07-11 Ab Initio Technology Llc System for transform generation
EP2757467A1 (en) * 2013-01-22 2014-07-23 Siemens Aktiengesellschaft Management apparatus and method for managing data elements of a version control system
US9892026B2 (en) * 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US9110949B2 (en) 2013-02-11 2015-08-18 Oracle International Corporation Generating estimates for query optimization
US9135280B2 (en) * 2013-02-11 2015-09-15 Oracle International Corporation Grouping interdependent fields
US9471545B2 (en) 2013-02-11 2016-10-18 Oracle International Corporation Approximating value densities
US9811233B2 (en) 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
US10332010B2 (en) 2013-02-19 2019-06-25 Business Objects Software Ltd. System and method for automatically suggesting rules for data stored in a table
US9576036B2 (en) 2013-03-15 2017-02-21 International Business Machines Corporation Self-analyzing data processing job to determine data quality issues
KR101444249B1 (ko) * 2013-05-13 2014-09-26 (주) 아트리아트레이딩 대차 거래, 공매도 거래 또는 주식 스왑 거래에 관한 정보를 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
EP2997472B1 (en) 2013-05-17 2018-07-11 AB Initio Technology LLC Managing memory and storage space for a data operation
US20150032907A1 (en) * 2013-07-26 2015-01-29 Alcatel-Lucent Canada, Inc. Universal adapter with context-bound translation for application adaptation layer
US10460830B2 (en) 2013-08-22 2019-10-29 Genomoncology, Llc Computer-based systems and methods for analyzing genomes based on discrete data structures corresponding to genetic variants therein
CA2924826A1 (en) 2013-09-27 2015-04-02 Ab Initio Technology Llc Evaluating rules applied to data
US20150120224A1 (en) * 2013-10-29 2015-04-30 C3 Energy, Inc. Systems and methods for processing data relating to energy usage
SG11201604525TA (en) 2013-12-05 2016-07-28 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
KR102220246B1 (ko) 2013-12-18 2021-02-24 아브 이니티오 테크놀로지 엘엘시 데이터 생성
US9529849B2 (en) 2013-12-31 2016-12-27 Sybase, Inc. Online hash based optimizer statistics gathering in a database
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
US9984173B2 (en) * 2014-02-24 2018-05-29 International Business Machines Corporation Automated value analysis in legacy data
CA2939915C (en) * 2014-03-07 2021-02-16 Ab Initio Technology Llc Managing data profiling operations related to data type
CN106462583B (zh) 2014-03-10 2020-03-24 因特拉纳公司 用于快速数据分析的系统和方法
US9846567B2 (en) 2014-06-16 2017-12-19 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
US9633058B2 (en) 2014-06-16 2017-04-25 International Business Machines Corporation Predictive placement of columns during creation of a large database
KR102279859B1 (ko) 2014-07-18 2021-07-20 아브 이니티오 테크놀로지 엘엘시 파라미터 세트의 관리
AU2015312010B2 (en) * 2014-09-02 2019-10-03 Ab Initio Technology Llc. Visually specifying subsets of components in graph-based programs through user interactions
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US10055333B2 (en) 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
US9880818B2 (en) * 2014-11-05 2018-01-30 Ab Initio Technology Llc Application testing
WO2016118979A2 (en) 2015-01-23 2016-07-28 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
US10296507B2 (en) 2015-02-12 2019-05-21 Interana, Inc. Methods for enhancing rapid data analysis
US9952808B2 (en) 2015-03-26 2018-04-24 International Business Machines Corporation File system block-level tiering and co-allocation
CN104850590A (zh) * 2015-04-24 2015-08-19 百度在线网络技术(北京)有限公司 一种生成结构化数据的元数据的方法与装置
US11068647B2 (en) * 2015-05-28 2021-07-20 International Business Machines Corporation Measuring transitions between visualizations
KR101632073B1 (ko) * 2015-06-04 2016-06-20 장원중 통계 분석 기반의 데이터 프로파일링을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
US9384203B1 (en) * 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US10409802B2 (en) * 2015-06-12 2019-09-10 Ab Initio Technology Llc Data quality analysis
US10241979B2 (en) * 2015-07-21 2019-03-26 Oracle International Corporation Accelerated detection of matching patterns
US9977805B1 (en) * 2017-02-13 2018-05-22 Sas Institute Inc. Distributed data set indexing
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10127264B1 (en) 2015-09-17 2018-11-13 Ab Initio Technology Llc Techniques for automated data analysis
US10607139B2 (en) 2015-09-23 2020-03-31 International Business Machines Corporation Candidate visualization techniques for use with genetic algorithms
EP3369013A4 (en) * 2015-10-30 2019-04-10 Acxiom Corporation AUTOMATED INTERPRETATION FOR THE PRESENTATION OF MULTI-FIELD STRUCTURED FILES
US10140337B2 (en) * 2015-10-30 2018-11-27 Sap Se Fuzzy join key
US11410230B1 (en) 2015-11-17 2022-08-09 Consumerinfo.Com, Inc. Realtime access and control of secure regulated data
US10757154B1 (en) 2015-11-24 2020-08-25 Experian Information Solutions, Inc. Real-time event-based notification system
JP6184641B1 (ja) * 2016-02-26 2017-08-23 株式会社日立製作所 時系列データと分析データとのうちの少なくとも一部を入力データとした分析処理を実行する分析システム及び分析方法
US10685035B2 (en) 2016-06-30 2020-06-16 International Business Machines Corporation Determining a collection of data visualizations
US10146835B2 (en) 2016-08-23 2018-12-04 Interana, Inc. Methods for stratified sampling-based query execution
US10423387B2 (en) 2016-08-23 2019-09-24 Interana, Inc. Methods for highly efficient data sharding
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11093703B2 (en) * 2016-09-29 2021-08-17 Google Llc Generating charts from data in a data table
US9720961B1 (en) 2016-09-30 2017-08-01 Semmle Limited Algebraic data types for database query languages
US9633078B1 (en) * 2016-09-30 2017-04-25 Semmle Limited Generating identifiers for tuples of recursively defined relations
AU2017367772B2 (en) 2016-12-01 2020-05-14 Ab Initio Technology Llc Generating, accessing, and displaying lineage metadata
US10650050B2 (en) 2016-12-06 2020-05-12 Microsoft Technology Licensing, Llc Synthesizing mapping relationships using table corpus
US10936555B2 (en) * 2016-12-22 2021-03-02 Sap Se Automated query compliance analysis
US10565173B2 (en) * 2017-02-10 2020-02-18 Wipro Limited Method and system for assessing quality of incremental heterogeneous data
US10514993B2 (en) * 2017-02-14 2019-12-24 Google Llc Analyzing large-scale data processing jobs
US9934287B1 (en) 2017-07-25 2018-04-03 Capital One Services, Llc Systems and methods for expedited large file processing
US20200065303A1 (en) * 2017-07-31 2020-02-27 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US20200050612A1 (en) * 2017-07-31 2020-02-13 Splunk Inc. Supporting additional query languages through distributed execution of query engines
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
US11055074B2 (en) * 2017-11-13 2021-07-06 Ab Initio Technology Llc Key-based logging for processing of structured data items with executable logic
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
CN111971665B (zh) * 2018-01-25 2024-04-19 起元技术有限责任公司 将验证结果整合到数据归档中的技术以及相关系统和方法
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
EP3575980A3 (en) * 2018-05-29 2020-03-04 Accenture Global Solutions Limited Intelligent data quality
EP3824398A1 (en) * 2018-07-19 2021-05-26 AB Initio Technology LLC Publishing to a data warehouse
US11080266B2 (en) * 2018-07-30 2021-08-03 Futurewei Technologies, Inc. Graph functional dependency checking
US10880313B2 (en) 2018-09-05 2020-12-29 Consumerinfo.Com, Inc. Database platform for realtime updating of user data from third party sources
US11227065B2 (en) 2018-11-06 2022-01-18 Microsoft Technology Licensing, Llc Static data masking
US11423009B2 (en) * 2019-05-29 2022-08-23 ThinkData Works, Inc. System and method to prevent formation of dark data
US11704494B2 (en) 2019-05-31 2023-07-18 Ab Initio Technology Llc Discovering a semantic meaning of data fields from profile data of the data fields
US11153400B1 (en) 2019-06-04 2021-10-19 Thomas Layne Bascom Federation broker system and method for coordinating discovery, interoperability, connections and correspondence among networked resources
CN111143433A (zh) * 2019-12-10 2020-05-12 中国平安财产保险股份有限公司 一种统计数据仓数据的方法及装置
FR3105844A1 (fr) * 2019-12-31 2021-07-02 Bull Sas PROCEDE ET système D’IDENTIFICATION DE VARIABLES PERTINENTES
KR102365910B1 (ko) * 2019-12-31 2022-02-22 가톨릭관동대학교산학협력단 속성 값 품질 지수를 이용한 데이터 프로파일링 방법 및 데이터 프로파일링 시스템
US11200215B2 (en) * 2020-01-30 2021-12-14 International Business Machines Corporation Data quality evaluation
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11321340B1 (en) 2020-03-31 2022-05-03 Wells Fargo Bank, N.A. Metadata extraction from big data sources
US11556563B2 (en) * 2020-06-12 2023-01-17 Oracle International Corporation Data stream processing
US11403268B2 (en) * 2020-08-06 2022-08-02 Sap Se Predicting types of records based on amount values of records
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
KR102265937B1 (ko) * 2020-12-21 2021-06-17 주식회사 모비젠 시퀀스데이터의 분석 방법 및 그 장치
US11847390B2 (en) 2021-01-05 2023-12-19 Capital One Services, Llc Generation of synthetic data using agent-based simulations
US20220215243A1 (en) * 2021-01-05 2022-07-07 Capital One Services, Llc Risk-Reliability Framework for Evaluating Synthetic Data Models
US11537594B2 (en) 2021-02-05 2022-12-27 Oracle International Corporation Approximate estimation of number of distinct keys in a multiset using a sample
CN112925792B (zh) * 2021-03-26 2024-01-05 北京中经惠众科技有限公司 数据存储控制方法、装置、计算设备及介质
CN113656430B (zh) * 2021-08-12 2024-02-27 上海二三四五网络科技有限公司 一种批量表数据自动扩充的控制方法及装置
KR102437098B1 (ko) 2022-04-15 2022-08-25 이찬영 인공 지능 기반의 오류 데이터 판정 방법 및 그 장치
US11907051B1 (en) 2022-09-07 2024-02-20 International Business Machines Corporation Correcting invalid zero value for data monitoring

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
JPH032938A (ja) 1989-05-31 1991-01-09 Hitachi Ltd データベース処理方法
JPH04152440A (ja) * 1990-10-17 1992-05-26 Hitachi Ltd 知的問合せ処理方法
FR2698465B1 (fr) 1992-11-20 1995-01-13 Bull Sa Méthode d'extraction de profils de statistiques, utilisation des statistiques créées par la méthode.
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
JP3519126B2 (ja) 1994-07-14 2004-04-12 株式会社リコー 自動レイアウトシステム
US5842200A (en) 1995-03-31 1998-11-24 International Business Machines Corporation System and method for parallel mining of association rules in databases
US6601048B1 (en) * 1997-09-12 2003-07-29 Mci Communications Corporation System and method for detecting and managing fraud
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5778373A (en) 1996-07-15 1998-07-07 At&T Corp Integration of an information server database schema by generating a translation map from exemplary files
US6138123A (en) 1996-07-25 2000-10-24 Rathbun; Kyle R. Method for creating and using parallel data structures
JPH1055367A (ja) 1996-08-09 1998-02-24 Hitachi Ltd データ利用システム
US5845285A (en) 1997-01-07 1998-12-01 Klein; Laurence C. Computer system and method of data analysis
US5987453A (en) 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US6134560A (en) * 1997-12-16 2000-10-17 Kliebhan; Daniel F. Method and apparatus for merging telephone switching office databases
US6826556B1 (en) * 1998-10-02 2004-11-30 Ncr Corporation Techniques for deploying analytic models in a parallel
US6959300B1 (en) * 1998-12-10 2005-10-25 At&T Corp. Data compression method and apparatus
US6343294B1 (en) 1998-12-15 2002-01-29 International Business Machines Corporation Data file editor for multiple data subsets
JP4037001B2 (ja) * 1999-02-23 2008-01-23 三菱電機株式会社 データベース作成装置およびデータベース検索装置
US6741995B1 (en) 1999-03-23 2004-05-25 Metaedge Corporation Method for dynamically creating a profile
US6430539B1 (en) * 1999-05-06 2002-08-06 Hnc Software Predictive modeling of consumer financial behavior
US6163774A (en) 1999-05-24 2000-12-19 Platinum Technology Ip, Inc. Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
WO2000079415A2 (en) 1999-06-18 2000-12-28 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
JP3318834B2 (ja) 1999-07-30 2002-08-26 三菱電機株式会社 データファイルシステム及びデータ検索方法
JP3567861B2 (ja) 2000-07-07 2004-09-22 日本電信電話株式会社 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体
JP4366845B2 (ja) * 2000-07-24 2009-11-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
US6788302B1 (en) 2000-08-03 2004-09-07 International Business Machines Corporation Partitioning and load balancing graphical shape data for parallel applications
US20020073138A1 (en) * 2000-12-08 2002-06-13 Gilbert Eric S. De-identification and linkage of data records
US6952693B2 (en) 2001-02-23 2005-10-04 Ran Wolff Distributed mining of association rules
US20020161778A1 (en) * 2001-02-24 2002-10-31 Core Integration Partners, Inc. Method and system of data warehousing and building business intelligence using a data storage model
US20020120602A1 (en) 2001-02-28 2002-08-29 Ross Overbeek System, method and computer program product for simultaneous analysis of multiple genomes
JP2002269114A (ja) * 2001-03-14 2002-09-20 Kousaku Ookubo 知識データベース及び知識データベースの構築方法
US20030033138A1 (en) * 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US7130852B2 (en) * 2001-07-27 2006-10-31 Silicon Valley Bank Internal security system for a relational database system
US7013290B2 (en) * 2001-08-03 2006-03-14 John Allen Ananian Personalized interactive digital catalog profiling
US6801903B2 (en) 2001-10-12 2004-10-05 Ncr Corporation Collecting statistics in a database system
US20030140027A1 (en) 2001-12-12 2003-07-24 Jeffrey Huttel Universal Programming Interface to Knowledge Management (UPIKM) database system with integrated XML interface
US7813937B1 (en) * 2002-02-15 2010-10-12 Fair Isaac Corporation Consistency modeling of healthcare claims to detect fraud and abuse
US7031969B2 (en) 2002-02-20 2006-04-18 Lawrence Technologies, Llc System and method for identifying relationships between database records
AU2003223314B2 (en) * 2002-03-19 2007-04-05 Mapinfo Corporation Location based service provider
US20040083199A1 (en) * 2002-08-07 2004-04-29 Govindugari Diwakar R. Method and architecture for data transformation, normalization, profiling, cleansing and validation
US6657568B1 (en) 2002-08-27 2003-12-02 Fmr Corp. Data packing for real-time streaming
US7047230B2 (en) * 2002-09-09 2006-05-16 Lucent Technologies Inc. Distinct sampling system and a method of distinct sampling for optimizing distinct value query estimates
WO2004036461A2 (en) * 2002-10-14 2004-04-29 Battelle Memorial Institute Information reservoir
US7698163B2 (en) * 2002-11-22 2010-04-13 Accenture Global Services Gmbh Multi-dimensional segmentation for use in a customer interaction
US7403942B1 (en) * 2003-02-04 2008-07-22 Seisint, Inc. Method and system for processing data records
US7117222B2 (en) * 2003-03-13 2006-10-03 International Business Machines Corporation Pre-formatted column-level caching to improve client performance
US7433861B2 (en) * 2003-03-13 2008-10-07 International Business Machines Corporation Byte-code representations of actual data to reduce network traffic in database transactions
US20040249810A1 (en) * 2003-06-03 2004-12-09 Microsoft Corporation Small group sampling of data for use in query processing
GB0314591D0 (en) 2003-06-21 2003-07-30 Ibm Profiling data in a data store
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
KR100922141B1 (ko) 2003-09-15 2009-10-19 아브 이니티오 소프트웨어 엘엘시 데이터 프로파일링 방법 및 시스템
US7587394B2 (en) * 2003-09-23 2009-09-08 International Business Machines Corporation Methods and apparatus for query rewrite with auxiliary attributes in query processing operations
US7149736B2 (en) 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
AU2003279999A1 (en) 2003-10-21 2005-06-08 Nielsen Media Research, Inc. Methods and apparatus for fusing databases
US7376656B2 (en) * 2004-02-10 2008-05-20 Microsoft Corporation System and method for providing user defined aggregates in a database system
US20050177578A1 (en) 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation
US8447743B2 (en) * 2004-08-17 2013-05-21 International Business Machines Corporation Techniques for processing database queries including user-defined functions
US7774346B2 (en) 2005-08-26 2010-08-10 Oracle International Corporation Indexes that are based on bitmap values and that use summary bitmap values
US20070073721A1 (en) 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for serviced data profiling operations
US8271452B2 (en) 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
US8412713B2 (en) 2007-03-06 2013-04-02 Mcafee, Inc. Set function calculation in a database
US7912867B2 (en) * 2008-02-25 2011-03-22 United Parcel Services Of America, Inc. Systems and methods of profiling data for integration
US9251212B2 (en) 2009-03-27 2016-02-02 Business Objects Software Ltd. Profiling in a massive parallel processing environment
WO2011035039A1 (en) 2009-09-16 2011-03-24 Ab Initio Technology Llc Mapping dataset elements
EP2499565B1 (en) 2009-11-13 2019-01-09 Ab Initio Technology LLC Managing record format information
US8396873B2 (en) 2010-03-10 2013-03-12 Emc Corporation Index searching using a bloom filter
US8296274B2 (en) 2011-01-27 2012-10-23 Leppard Andrew Considering multiple lookups in bloom filter decision making
US9449057B2 (en) 2011-01-28 2016-09-20 Ab Initio Technology Llc Generating data pattern information
US8615519B2 (en) 2011-06-17 2013-12-24 Sap Ag Method and system for inverted indexing of a dataset
US8762396B2 (en) 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220283A (zh) * 2017-04-21 2017-09-29 东软集团股份有限公司 数据处理方法、装置、存储介质及电子设备
CN107220283B (zh) * 2017-04-21 2019-11-08 东软集团股份有限公司 数据处理方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CA2655735C (en) 2011-01-18
CA2655735A1 (en) 2005-03-31
JP2010267288A (ja) 2010-11-25
AU2009200293A1 (en) 2009-02-19
US20150106341A1 (en) 2015-04-16
HK1093568A1 (en) 2007-03-02
EP2261821B1 (en) 2022-12-07
CA2538568C (en) 2009-05-19
EP2261821A2 (en) 2010-12-15
US20050114368A1 (en) 2005-05-26
KR20060080588A (ko) 2006-07-10
CA2538568A1 (en) 2005-03-31
JP2007506191A (ja) 2007-03-15
EP1676217B1 (en) 2011-07-06
AU2004275334B2 (en) 2011-02-10
KR100922141B1 (ko) 2009-10-19
KR101033179B1 (ko) 2011-05-11
JP2010267289A (ja) 2010-11-25
EP2261821A3 (en) 2010-12-29
KR20070106574A (ko) 2007-11-01
WO2005029369A9 (en) 2006-05-04
CN102982065A (zh) 2013-03-20
KR20090039803A (ko) 2009-04-22
AU2009200293B2 (en) 2011-07-07
EP2261820A3 (en) 2010-12-29
US20050114369A1 (en) 2005-05-26
EP2261820A2 (en) 2010-12-15
US7756873B2 (en) 2010-07-13
JP5372851B2 (ja) 2013-12-18
CA2655731A1 (en) 2005-03-31
WO2005029369A2 (en) 2005-03-31
JP5372850B2 (ja) 2013-12-18
US9323802B2 (en) 2016-04-26
KR100899850B1 (ko) 2009-05-27
ATE515746T1 (de) 2011-07-15
US20050102325A1 (en) 2005-05-12
CA2655731C (en) 2012-04-10
US8868580B2 (en) 2014-10-21
US7849075B2 (en) 2010-12-07
AU2009200294A1 (en) 2009-02-19
WO2005029369A3 (en) 2005-08-25
JP5328099B2 (ja) 2013-10-30
EP1676217A2 (en) 2006-07-05
US20160239532A1 (en) 2016-08-18
KR20080016532A (ko) 2008-02-21
AU2004275334A1 (en) 2005-03-31
AU2004275334B9 (en) 2011-06-16

Similar Documents

Publication Publication Date Title
CN102982065B (zh) 数据处理方法、数据处理装置及计算机可读存储介质
Hüsemann et al. Conceptual data warehouse design
CN103080932B (zh) 处理相关数据集
CN101271472B (zh) 数据处理方法和数据处理系统
EP2019362A2 (en) Spatial data validation systems
AU2013200067B2 (en) Data profiling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CI01 Publication of corrected invention patent application

Correction item: 0004 paragraph of instruction

Correct: profiling

False: profling

Number: 12

Volume: 29

CI02 Correction of invention patent application

Correction item: 0004 paragraph of instruction

Correct: profiling

False: profling

Number: 12

Page: Description

Volume: 29

ERR Gazette correction

Free format text: CORRECT: DESCRIPTION 0004 PARAGRAPH; FROM: PROFLING TO: PROFILING

RECT Rectification
C14 Grant of patent or utility model
GR01 Patent grant