首页> 中国专利> 用于检测数据源中的偏差的方法、设备和计算机程序

用于检测数据源中的偏差的方法、设备和计算机程序

摘要

本公开描述了用于检测数据源中的偏差的方法和设备,每一个数据源包括多个数据公布,每一个数据公布包括多个数据值。该方法包括:标识(102)数据公布对,每一对包括第一数据源中的第一数据公布和第二数据源中的第二数据公布,其中,针对数据公布对中的第一数据公布和第二数据公布的唯一匹配数据属性,数据值的子集相等。该方法还包括:确定(104)多个数据公布对中的每一个数据公布对中的第一数据公布的数据值和第二数据公布的数据值的多个组合中的个体组合是否满足多个关系模式算法中的个体关系模式算法,以及确定(106)针对多个数据公布对所确定的关系模式算法的满足的符合性水平。该方法还包括:基于所确定的符合性水平,从多个关系模式算法中选择(108)关系模式算法,以及关于所选择的关系模式算法分析(110)个体数据公布对的数据值组合,以检测个体数据公布对中不符合所选择的关系模式算法的数据值组合,不符合指示(114)个体数据公布对的数据的可能偏差。

著录项

  • 公开/公告号CN104756113A

    专利类型发明专利

  • 公开/公告日2015-07-01

    原文格式PDF

  • 申请/专利权人 瑞典爱立信有限公司;

    申请/专利号CN201380057211.2

  • 申请日2013-09-05

  • 分类号

  • 代理机构中科专利商标代理有限责任公司;

  • 代理人穆童

  • 地址 瑞典斯德哥尔摩

  • 入库时间 2023-12-18 09:48:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-20

    授权

    授权

  • 2015-11-04

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130905

    实质审查的生效

  • 2015-07-01

    公开

    公开

说明书

技术领域

本公开大体上涉及用于检测数据源中的偏差的方法、设备和计算 机程序。

背景技术

在大多数企业(例如,移动通信运营商)中,信息遍布于很多不 同的数据源。存储在不同源中的数据是重复的或者至少具有相同含义 的情况不在少数。当预期为相同的数据由于某种原因而不同时,可能 出现不期望的问题,例如,在移动通信网络中,移动电话的用户不能 打电话、或者运营商不能对顾客进行计费等。因此,不一致的数据可 能引起很多麻烦。根据申请人的调查,平均移动通信运营商的收入流 失约为2%,并且该收入流失的很大一部分是不一致数据(其导致通 信使用的含糊不清的登记,因此不能对通信使用进行计费)的直接或 间接结果。

如今,市场上存在对数据源进行扫描以寻找数据不一致或数据偏 差的工具。此类工具的一个常见问题是必须向工具指示在数据源中寻 找什么。因为每一个数据系统包括这样的数据源,即,其中存储的数 据具有其自己的数据结构,因此,必须针对要扫描的每一个数据源组 合向工具指示。即,工具需要关于数据源的数据模型以及数据模型如 何相互相关的指示。然而,不同的系统或源可能来自不同的供应商, 并且可能难以有权访问描述数据模型的文件。另一个问题是数据模型 通常很复杂,使得即使某人已知或有权访问一个数据模型的描述,也 难以分辨它如何与另一数据模型相关。另一个问题是,为了寻找数据 偏差,可能还必须理解什么被认为是偏差以及什么不被认为是偏差。

此外,数据源中的数据可以随着时间改变。在这些情况下,被认 为是数据偏差的内容可能实时改变。

因此,需要用于有效地检测不同数据源的数据之间的数据偏差的 工具。

发明内容

本发明的目的是解决上文列出的问题中的至少一些。可以通过使 用所附独立权利要求中定义的方法和设备来实现这些和其他目的。

根据第一方面,提供了一种用于检测数据源中的偏差的方法,每 一个数据源包括多个数据公布,每一个数据公布包括多个数据值。所 述方法包括:标识数据公布对,每一对包括第一数据源中的第一数据 公布和第二数据源中的第二数据公布,其中,针对数据公布对中的第 一数据公布和第二数据公布的唯一匹配数据属性,数据值的子集相等。 此外,所述方法还包括:确定所述多个数据公布对中的每一个数据公 布对中的第一数据公布的数据值和第二数据公布的数据值的多个组合 中的个体组合是否满足多个关系模式算法中的个体关系模式算法。此 外,所述方法还包括:确定针对所述多个数据公布对所确定的关系模 式算法的满足的符合性水平;以及基于所确定的符合性水平,从所述 多个关系模式算法中选择关系模式算法。所述方法还包括:关于所选 择的关系模式算法,分析个体数据公布对的数据值组合,以检测个体 数据公布对中不符合所选择的关系模式算法的数据值组合,不符合指 示个体数据公布对的数据的可能偏差。

通过这种方法,可以自动地检测具有可比较的数据公布的两个数 据源的数据之间的可能偏差。例如,可以自动地检测两个可比较数据 源中的任意一个的数据的错误。如果检测到这种数据错误或数据值错 误,则可以容易地减轻这些错误,并且可以避免由于这些错误引起的 问题。可能的使用情况是针对移动通信运营商的相当大的数据库。在 该使用情况下,可以避免的问题的示例是如果在两个相当大的数据库 中存在偏差,则可能不清楚向谁收取拨打的电话的费用,这导致运营 商收入流失。此外,该方法使得可以从多个关系模式算法中选择适合 于个体数据值组合的关系的关系模式算法,这导致寻找偏差的准确度 提高。

根据第二方面,提供了一种用于检测数据源中的偏差的设备,每 一个数据源包括多个数据公布,每一个数据公布包括多个数据值。所 述设备包括:标识单元,用于标识数据公布对,每一对包括第一数据 源中的第一数据公布和第二数据源中的第二数据公布,其中,针对数 据公布对中的第一数据公布和第二数据公布的唯一匹配数据属性,数 据值的子集相等。此外,所述设备包括:确定单元,用于确定所述多 个数据公布对中的每一个数据公布对中的第一数据公布的数据值和第 二数据公布的数据值的多个组合中的个体组合是否满足多个关系模式 算法中的个体关系模式算法,以及用于确定针对所述多个数据公布对 所确定的关系模式算法的满足的符合性水平。所述设备还包括:选择 单元,用于基于所确定的符合性水平,从所述多个关系模式算法中选 择关系模式算法;以及分析单元,用于关于所选择的关系模式算法, 分析个体数据公布对的数据值组合,以检测个体数据公布对中不符合 所选择的关系模式算法的数据值组合,不符合指示个体数据公布对的 数据的可能偏差。

根据第三方面,提供了一种计算机程序,包括计算机可读代码装 置,当在被配置用于检测数据源中的偏差的设备中运行所述计算机可 读代码装置时,所述计算机可读代码装置使所述设备执行以下步骤: 标识数据公布对,每一对包括第一数据源中的第一数据公布和第二数 据源中的第二数据公布,其中,针对数据公布对中的第一数据公布和 第二数据公布的唯一匹配数据属性,数据值的子集相等;确定所述多 个数据公布对中的每一个数据公布对中的第一数据公布的数据值和第 二数据公布的数据值的多个组合中的个体组合是否满足多个关系模式 算法中的个体关系模式算法;确定针对所述多个数据公布对所确定的 关系模式算法的满足的符合性水平;基于所确定的符合性水平,从所 述多个关系模式算法中选择关系模式算法;以及关于所选择的关系模 式算法,分析个体数据公布对的数据值组合,以检测个体数据公布对 中不符合所选择的关系模式算法的数据值组合,不符合指示个体数据 公布对的数据的可能偏差。

附图说明

现在参照附图通过举例说明的方式描述本发明,在附图中:

图1至图6示出了描述根据本发明的实施例的方法的流程图。

图7是关于7个关系模式算法对数据公布对的个体数据值进行比 较的比较矩阵的示例。

图8是图7中的比较矩阵的一个单元n32的特写。

图9示出了描述根据一个实施例的方法的流程图。

图10是根据本发明的实施例的设备的示意性框图,该设备连接 到第一数据源和第二数据源。

图11是根据本发明的实施例的装置的示意性框图。

具体实施方式

简言之,提供了用于检测数据源(更具体地,至少两个不同数据 源的数据)的偏差。该解决方案至少部分地以以下思想为基础:通过 标识两个数据源的数据之间的关系的模式,还可以标识与这些模式的 偏差。

在本公开中,“数据源”可以是存储数据的任意类型的地方(临 时的或长期的)。数据源是保存数据的任何实体,例如,数据库或文 档等。数据源的示例是经由结构化查询语言(SQL)访问的关系数据 库或经由轻量级目录访问协议(LDAP)访问的目录服务。其他示例 是Excel文件、逗号分隔值(CSV)文件、或扩展标记语 言(XML)文件。

在本公开中,数据公布可以是数据源中的行,例如,SQO数据库 表中的行、Excel文件/工作表中的行、CSV文件中的行、 或LDAP条目。数据属性可以是数据源中的列,例如SQL数据库表、 Excel文件/工作表中的列、CSV文件中的列、或LDAP树 中的属性。当然,可以是另一方式,即,数据公布可以是数据源中的 列,并且数据属性可以是数据源中的行。一个数据属性可以包括一个 数据属性类别的数据值。数据属性类别可以是例如,个人标识号、或 移动电话号码(例如,MSISDN号、移动站综合服务数字网络号)。 数据公布包括多个数据值,每一个数据值针对该数据公布有效,例如, 与该数据公布有联系的特定用户的个人标识号和移动电话号码、以及 用户的名字可以是该数据公布的一个数据值。例如,数据公布的数据 值可以是个人标识号341001、MSISDN号010-2222222、以及名字John  Smith。数据属性可以包括关于相同数据属性类别的数据值。

在图1中,描述了根据实施例用于检测数据源中的偏差的方法。 每一个数据源包括多个数据公布;每一个数据公布包括多个数据值。 该方法包括:标识102数据公布对,每一对包括第一数据源中的第一 数据公布和第二数据源中的第二数据公布,其中,针对数据公布对中 的第一数据公布和第二数据公布的唯一匹配数据属性,数据值的子集 相等。该方法还包括:确定104多个数据公布对中的每一个数据公布 对中的第一数据公布的数据值与第二数据公布的数据值的多个组合中 的个体组合是否满足多个关系模式算法中的个体关系模式算法。该方 法还包括:确定106针对多个数据公布对所确定的关系模式算法的满 足的符合性水平,以及基于所确定的符合性水平从多个关系模式算法 中选择108关系模式算法。该方法还包括:关于所选择的关系模式算 法,分析110个体数据公布对的数据值组合,以检测个体数据公布对 中不符合所选择的关系模式算法的数据值组合,不符合指示114个体 数据公布对的数据的可能偏差。

唯一匹配数据属性是值全不同的数据属性,即,数据源的唯一匹 配数据属性的数据值仅出现一次。第一数据源的唯一匹配数据属性与 第二数据源的唯一匹配数据属性相匹配在于:相同的数据值存在于第 一数据源中的第一数据公布和第二数据源中的第二数据公布中;已经 发现所谓数据公布对。在数据源上下文中,它还可以被称作“接合点”。 例如可以通过对每一个数据源在唯一属性/列上的数据进行排序来实 现唯一数据公布配对。也可以经由提供JOIN(接合)功能(例如,将 关系数据库中的两个表接合)的内部或外部系统服务来实现唯一数据 公布配对。子集是数据值的一部分。数据值的子集相等表示第一数据 公布的数据值的子集等于第二数据公布的数据值的子集。子集的大小 可以根据特定规则来决定,并且针对多个数据公布可以包括相同数据 量(即,例如,相同数量的数位)的数据值。子集也可以是整个数据 值。关系模式算法是确定第一数据公布中的值“a”是否与第二数据公 布中的值“b”有关系的算法,该关系满足算法设置的要求。简单的关 系模式算法的示例是“a=b”。

通过这种方法,可以自动检测具有公共唯一标识符的两个数据源 之间的偏差。通过能够在针对一个数据公布对检查第一数据值和第二 数据值是否符合关系模式算法时选择针对其他数据公布对的适于来自 第一源的第一数据值和来自第二源的第二数据值的正常关系的关系模 式算法,可以实现高水平的正确指示的偏差,该偏差与源中的任意一 个的错误有关。

根据一个实施例,符合性水平是针对与多个数据公布对的相同数 据属性组合有关的数据值的组合来确定106的。“与相同数据属性组合 有关的数据值的组合”表示针对所有多个数据公布对,第一数据公布 对中的第一数据属性与第二数据公布对中的第二数据属性的数据值的 组合。换言之,所确定的针对个体关系模式算法的满足的符合性是针 对关系矩阵中的个体点确定的,作为针对所有关系矩阵的个体点的总 符合性。

根据一个实施例,确定104满足包括:针对所述多个数据公布对 中的每一个数据公布对,在比较矩阵Hxy中将所述多个数据公布对中 的每一个数据公布对中的第一数据公布的数据值与第二数据公布的数 据值进行组合,其中,x指示所述第一数据公布的数据属性的数量并 且同时指示所述矩阵的列的数量,并且y指示所述第二数据公布的数 据属性的数量并且同时指示所述矩阵的行的数量。比较矩阵Axy是这 样的矩阵,即,其中第一数据公布的数据值与第二数据公布的数据值 进行组合(可能所有组合),第一数据公布的一个数据值与第二数据公 布的一个数据值进行组合,使得创建具有x*y个点的矩阵。

根据一个实施例,针对所述多个数据公布对,所述相同数据属性 组合涉及所述比较矩阵Hxy中的相同位置nab,其中,a=整数1至x中 的任意一个,b=整数1至y中的任意一个。数据属性组合包括针对个 体数据公布对的比较矩阵中的位置nab的所有个体数据值组合。一个 个体数据值组合nab指示针对一个数据公布对的“a”中的数据值与“b” 中的数据值的组合。

根据一个实施例,选择108包括:基于所确定的符合性水平,针 对与所述多个数据公布对的相同数据属性组合有关的数据值组合分别 选择关系模式算法。

根据一个实施例(还如图2中所示),所述方法还包括:检测202 所述第一数据源中数据值唯一的至少一个数据属性;以及检测204所 述第二数据源中数据值唯一的至少一个数据属性。所述方法还可以包 括:从所检测的所述第一数据源中的至少一个数据属性和所检测的所 述第二数据源中的至少一个数据属性中选择206所述第一数据源中具 有最多共同数据值的数据属性和所述第二数据源中具有最多共同数据 值的数据属性,作为所述第一数据源的唯一匹配数据属性和所述第二 数据源的唯一匹配数据属性。数据属性具有唯一数据值表示针对数据 源中的数据属性,相等的数据值或数据值的子集仅使用一次。通过该 实施例,可以自动地选择针对第一数据源和第二数据源的唯一匹配数 据属性,可以在关于图1所述的方法中使用唯一匹配数据属性。

根据一个实施例,所述方法还包括:按所述唯一匹配数据属性的 数据值的递增或递减数据值顺序对所述第一数据源和/或所述第二数 据源中的数据公布进行排序。如果还未对数据源中的数据公布进行排 序,则可能需要按递增或递减数据值顺序对它们进行排序。基于每一 个公布的唯一匹配数据属性的数据值对数据公布进行排序。由此,与 未对数据公布进行排序相比,更容易且更快速地标识数据公布对。

元数据分析。元数据分析可以是例如评估数据类型、或数据属性 的特性、或数据属性的元数据。根据图3中所述的实施例,该方法还 包括:针对第一数据源,通过针对确定第一数据源的数据属性的数据 值的特性的值类型算法集暴露数据值来检测302数据属性的元数据; 以及针对第二数据源,通过针对确定第二数据源的数据属性的数据值 的特性的值类型算法集暴露数据值来检测304数据属性的元数据。元 数据可以是例如数据类型“数值”、数据类型“布尔值”(真/假、1/0)、 “具有唯一数据值的数据属性”、“具有排序值的数据属性”(即,对数 据属性中的值进行排序)、文本串等。值类型算法是如果对数据值进行 测试则显示值是否具有特定类型(例如,布尔值类型算法显示值类型 是否是布尔型的)或者针对数据属性的值是否具有特定的特性或元数 据的算法。针对值类型算法集暴露数据值表示对数据值测试多个算法 以确定数据值是否与算法中的任一个相匹配。通过针对个体数据源检 测数据属性的元数据,可以通过检测针对该数据属性的数据公布的数 据值偏离其他数据公布的其他数据值来检测源内的偏差。此外,诸如 “具有唯一数据值的数据属性”等的元数据的信息可以用作用于在根 据实施例的方法中确定数据源的唯一匹配数据属性的输入。这也通过 以下实施例来实现。检测302第一数据源中的元数据包括:检测202 第一数据源中数据值唯一的至少一个数据属性;以及检测304第二数 据源中的元数据包括:检测204第二数据源中数据值唯一的至少一个 数据属性。

根据一个实施例,基于所确定的符合性水平从多个关系模式算法 中选择108关系模式算法仅当多个关系模式算法中存在所确定的符合 性水平高于定义阈值的关系模式算法时才执行。例如,特定关系模式 算法与针对所有(或至少很多)数据公布对的个体数据属性组合的符 合性水平针对可能选择用于寻找该个体数据属性组合的偏差的关系模 式算法必须高于阈值(例如,70%)。如果不存在满足准则的关系模式 算法,则将不对该个体数据属性组合进行检查以寻找偏差。换言之, 在该个体数据属性组合的值之间没有发现可靠的关系。可以针对不同 算法区别地和/或针对不同的数据属性组合区别地设置阈值。

根据一个实施例,当多个关系模式算法中存在所确定的符合性水 平高于定义阈值的多于一个关系模式算法时,选择108关系模式算法 包括:使用优先级算法来决定要选择多于一个关系模式算法中的哪一 个。如果根据一个示例,特定数据值组合在95%的情况下满足“x在 y中”算法并且在90%的情况下满足“x=y”算法,则“x=y”算法将 仍然被选择,这是因为它是优先的。应当观察到,该示例仅是优先级 算法的示例;存在可能很多其他优先级算法。例如,“x在y中”与“x=y” 被划分在相同的优先级,即,选择具有最高符合性水平的算法。

下面的示例示出了当对两个示例性数据库(DB)(第一数据库DB1 和第二数据库DB2)使用时的本发明。注意,所示的示例仅用于使用 示例性值来解释本发明以及本发明中的术语。所示的示例不应当被解 释为限制本发明。在表1中,示出了DB1,在表2中,示出了DB2。 DB1具有四个数据公布和三个数据属性。DB2具有四个数据公布和四 个数据属性。

A1 B1 C1 001 Mary Shelley +44 1234567 002 Mary Poppins +44 654322 003 Donald Duck +1 4444455 005 Johnny Puma +46 333222

表1

A2 B2 C2 D2 001 Mary Shelley 1234567 002 Mary Poppins 654321 003 Donild Duck 4444455 004 Benny Guldfot +46 666677

表2

来自DB1的列A1和来自DB2的列A2被选择为唯一匹配数据属 性,这是因为在每一个数据库中,A1和A2的数据值分别是唯一的。 此外,A1和A2的数据值部分相同。A1和A2的数据值001、002、 003是可比较的,这是因为它们存在于两个数据库中。因此,D1中包 含001的数据公布与D2中包含001的数据公布一起被标识为数据公 布对,D1中包含002的数据公布与D2中包含002的数据公布一起被 标识为数据公布对,并且D1中包含003的数据公布与D2中包含003 的数据公布一起被标识为数据公布对。数据值004仅存在于A1中, 并且数据值005仅存在于A2中,由于这个原因,在标识数据公布对 的步骤中未标识这些数据公布。

此后,创建三个数据公布对组合矩阵H1、H2、H3,针对每一个 数据公布对一个矩阵:H1针对包含001的数据公布对,H2针对包含 002的数据公布对,并且H3针对包含003的数据公布对。下面在表格 3至5中示出了组合矩阵。在组合矩阵中的每一个位置,已经写出了 两个数据值,这两个数据值要被组合在一起以确定它们是否满足关系 模式算法。来自DB2的数据值用斜体书写,并且来自DB1的数据值 用普通文字书写,以更好地示出其相应的源。例如,在矩阵H1中的 位置n22(意味着第2行第2列),写出了Mary Shelley和Mary,在 矩阵H2的位置n22,写出了Mary Poppins和Mary,并且在矩阵H3 中的位置n22,写出了Donald Duck和Donild。

表3:数据公布对组合矩阵H1

表4:数据公布对组合矩阵H2

表5:数据公布对组合矩阵H3

在该示例中,存在两个不同的关系模式算法:第一个算法被定义 为x=y(x是来自DB1的值、y是来自DB2的值)是否成立。第二 个算法被定义为“y在x中”(即,y是x的一部分)。然后,确定上述 数据值组合中的每一个是否满足这些算法中的每一个。对于H1中的 数据值组合n22,Mary Shelley和Mary满足关系模式算法“y在x中”。 对于H2中的数据值组合n22,Mary Poppins和Mary满足关系模式算 法“y在x中”,但是针对H3中的数据值组合n22,Donald Duck和 Donild不满足关系模式算法“y是x的一部分”。数据值组合n22均 不满足模式x=y。针对数据值组合n22,选择使用模式“y在x中”, 这是因为该模式比“x=y”模式具有更高的符合性水平。与矩阵中的 相同位置相关的数据公布对的数据值组合nab是数据公布对的相同数 据属性的组合。

针对可以选择关系模式算法的所有数据值组合nab执行对关系模 式算法的这种确定和选择。下面的表6示出了针对每一个数据值组合 对关系模式算法的选择。在什么都没有写的位置nab,未确定符合性。 在备选方式中,针对要选择的关系模式算法,符合性水平必须高于某 种程度。此外,在针对多于一个关系模式算法存在符合性的情况下, 一些算法可能比其他算法具有更高的优先级,例如,在“x=y”和“y 在x中”均满足的位置1,1。因为与“y在x中”相比,“x=y”是更强 的关系,因此针对该位置选择“x=y”。

  A1 B1 C1 A2 x=y     B2   y在x中   C2   y在x中   D2     y在x中

表6

此后,对个体数据公布对的个体数据值组合进行分析,以确定它 们是否满足针对每一个位置nab所选择的已选关系模式算法。这导致 可以设想的所发现的可能数据偏差集,如表7所示。

  A1 B1 C1 A2       B2   1   C2   0   D2     1

表7

当检查组合时,在位置22发现一个偏差并且在位置33发现一个 偏差。当查看位置22时,可以看出组合Mary Shelley,Mary满足所 选择的算法“y在x中”,Mary Poppins,Mary满足所选择的算法“y 在x中”,但是Donald Duck,Donild不满足所选择的算法“y在x中”。 因此,这里已经发现了数据的可能偏差。在系统中发信号通知该偏差, 并且运营商可以例如手动地进入数据库到达该点,并且将Donild校正 为Donald。通过相同的方式,在数据值组合n34,检测到+44 654322 与654321之间的偏差(参见数据公布对组合矩阵2),发信号通知该 偏差。

应当注意的是,这是示出主要原则的非常简化的示例。将使用解 决方案的典型场景包含远远更大的数据集,其中,发现的偏差的数量 与总数据集相比非常小。

根据另一实施例,本发明涉及使用计算机软件以通过扫描两个数 据源来获知两个数据源或数据源之间的数据关系模式。通过针对关系 模式算法集暴露每一个数据值组合来完成对这些模式的发现。如果数 据值组合符合算法集中的一个算法,则增加该算法的符合性水平。例 如,可以通过计数器来测量符合性水平。当对所有数据公布进行扫描 时,针对每一个数据值组合具有最高符合性水平的算法成为针对该数 据值组合用于寻找个体数据公布的可能偏差的关系模式,或数据值组 合矩阵(也称作数据公布对组合矩阵,例如参见表3-5)中的交叉点。

针对两个数据源(SQL表、CSV文件、LDAP条目、Excel工作 表等)之间的所有数据属性/列进行该操作给出了模式矩阵,该模式矩 阵示出了针对矩阵中的每一个交叉点所选择的算法,参见例如表6。 此后,执行第二扫描,其中,将个体数据公布对的值与所选择的算法 进行比较。由此,可以检测到偏离所选择的关系模式算法中的任一个 算法的公布。

根据另一实施例,如图4所示,解决方案基于四个阶段,其中, 前两个阶段400、500具有初始属性(建立后两个阶段600、700的先 决条件)。前两个阶段400、500可以是可选的。四个阶段400、500、 600、700不必处于相同的处理或过程中。可以通过外部执行者个体地 触发这四个阶段,但是可能必须按时间顺序对它们触发至少一次。可 以在一个序列中执行四个阶段,或者可以周期性地执行过程的各个部 分。可以通过步骤720中的两个备选选择来决定这一点。

元数据分析400

在该阶段,方法用于通过扫描整个数据源,即,实质上数据源的 所有数据公布,来分析元数据以检测数据源中的数据类型模式。

可以通过逐个公布进行读取并且针对确定类型的类型算法集暴 露每一个数据值(换言之,数据源中的列中的数据值的特性,即,一 个数据属性的数据值的特性或数据属性类型)来完成这一点。

典型的特性是例如数值、布尔值(例如,真/假、1/0、是/否等)、 具有唯一值的列、排序的列等。默认地,例如,如果在类型模式检测 中没有找到特性,则可以将值视为文本。所使用的类型算法集取决于 应用上下文。该方法可以用于将在后续阶段中使用的每一个数据源。 该方法的备选方式是手动地定义数据源中的数据的特性。

标识符匹配500

当已经决定将进一步分析哪两个数据源时,可以进行的第一件事 是确定每一个数据源中的哪一列将用作标识符,在本文中,该列也可 以被称作唯一匹配数据属性。

其原因在于,仅于彼此相关的数据公布(例如,具有相同标识符) 用于后续的关系模式检测600和关系模式偏差检测700。

如果在标识符匹配阶段之前使用类型模式检测阶段400,则可以 在阶段400中针对每一个数据源定义数据类型特性具有唯一值的列。 然后,标识为具有唯一值的列的列将是仅有的可能的候选标识符。如 果不存在被标识为的具有唯一值的列的列,则不能执行该阶段500的 进一步分析。还可以使用具有排序值的列特性。该特性可以以多种方 式来实现,例如,经由按特定顺序如在基于SQL的数据库(ORDER BY) 中查询数据的可能性。另一示例是针对具有特性具有唯一值的列的每 一列显式地对数据进行排序。

如果一个或两个数据源包含具有具有唯一值的列特性的多列,则 将存在几个候选标识符组合,即,来自第一源的列和来自第二源的列。 为了确定哪个列组合将用作标识符或者任何组合是否有效,使用针对 数据的每一个候选标识符组合的匹配计数器。

在图5的流程图中描述了标识符匹配500的过程的实施例。执行 标识符匹配,以从候选标识符中寻找源A和源B的标识符组合。当过 程开始时,从数据源A读取501a第一数据公布,并且从数据源B读 取501b第二数据公布。此后,检查502第一数据公布的候选标识符的 值A是否等于第二数据公布的候选标识符的值B。如果相等,则继续 步骤504。如果值A小于值B,则回到步骤501a并且从数据源A读 取下一个公布(在该示例中,优选地基于候选标识符的值来对数据公 布进行排序)。如果值A在值B之后(按词典编纂或数值顺序),则回 到步骤501b并且从源B读取下一个公布。如果在步骤502中未找到 标识符组合,则针对该候选组合的过程结束(未示出)。在步骤504, 执行以下过程:将每一个候选标识符组合与标识符关系算法集进行匹 配。如果来自其候选标识符组合的值与标识符算法之一相匹配,则增 加针对列交叉点的匹配计数器。

如果匹配计数器高于505可以配置的阈值,则找到匹配标识符组 合,并且该候选标识符组合将更进一步被视为标识符列。如果否并且 如果还留有其他公布,则将从步骤501a和501b重复该过程。如果在 源中不再有公布,则过程结束。该过程的备选方式是针对两个数据源 手动地定义或覆盖匹配标识符。

关系模式检测600

针对该阶段的先决条件可以是已经在阶段500中针对该数据源组 合将每一个数据源中的一列定义为标识符(不同的列可以是不同的数 据源组合中的标识符)。

根据本实施例的数据模式检测过程基于对两个数据源的所有列 组合之间关于关系模式算法集的符合性进行计数。在个体数据公布对 中,针对第一数据公布和第二数据公布的所有列组合创建矩阵。每一 个关系模式算法针对每一个列矩阵交叉点具有符合性计数器。当检查 所有数据公布对时,当针对矩阵交叉点针对算法发现符合性时,针对 该矩阵交叉点增加针对该算法的符合性计数器。

存在两种关系模式算法:静态关系模式算法和动态关系模式算法。 静态关系模式算法是固定的,并且行为是相同的,而与先前的扫描数 据无关,这种类型的算法的示例是精确匹配:x=y。动态关系模式算 法将采用关系模式,并且将其用作进一步符合性评估的基础。这些算 法的示例是Levenshtein编辑距离以及LongestCommonSubstring,其中 关系必须符合特定相似度水平。动态关系模式算法还包含标准差水平, 其指示算法所表示的模式的同质水平。由于动态关系模式算法的属性, 因此每一个矩阵交叉点针对这些算法具有附加变量,例如,针对基于 相似性的算法的均值和标准差。

根据本实施例的数据模式检测过程是通过逐个公布地从每一个 数据源进行挑选来执行的。如果来自在过程500中定义的(或以任何 其他方式定义的)标识符列的值与所定义的标识符算法相匹配,则数 据将用于进一步关系模式检测。该标识符列与所定义的标识符算法相 匹配可以意味着来自第一数据源的公布的标识符列的数据与来自第二 数据源的公布的标识符列的数据相匹配。匹配可以是相等值;部分相 等,或来自第一数据源的标识符值包含来自第二数据源的标识符值, 或者反之。如果否,则标识符值在另一标识符值之前(按顺序)的公 布按照以下描述的序列流被来自其数据源的下一个公布替换。

在图6的流程图中描述了关系模式检测匹配600的过程的实施例。 当过程开始时,从数据源A读取601a第一数据公布,并且从数据源B 读取601b第二数据公布。此后,检查602第一数据公布的标识符的值 A是否等于第二数据公布的标识符的值B。如果相等,则继续步骤604。 如果值A小于值B,则回到步骤601a,并且从源A读取下一个公布 (在该示例中,优选地,基于标识符的值对数据公布进行排序)。如果 值A在值B之后(按词典编纂或数值顺序),则回到步骤601b,并且 从源B读取下一个公布。如果在步骤602中没有发现标识符值A=标 识符值B,则针对该候选组合的过程结束(未示出)。

另一方面,针对找到的数据公布对,(标识符值A=标识符值B), 确定603数据值组合与关系模式算法的符合性。这是通过对(来自源 A的)第一数据公布的每一个列值和(来自源B)的第二数据公布的 每一列值进行分析来确定的。通过评估这些值是否符合关系模式算法 中的一个或多个来进行该分析。如果值组合符合算法,则增加针对该 符合算法针对值组合的矩阵交叉点的计数器。动态关系模式算法将符 合性基于针对相应矩阵交叉点的值的先前采用值。采用用于检查符合 性的新值,并且在矩阵交叉点中更新附加算法变量。值组合可以符合 多个算法。针对总计数量的比较公布的计数器也增加,以便稍后确定 算法符合性水平与所分析的公布的总数之间的关系。

针对每一个矩阵交叉点针对每一个算法的符合性水平是选择要 用于阶段700(关系模式偏移检测)的关系算法的基础。

在步骤604,检查是否存在任何更多数据公布,如果否,则过程 结束。如果存在更多数据公布,则从601a和601b重复该过程。来自 所有所分析的公布的结果被总结并且给出要用于(如果有的话)个体 矩阵交叉点的关系模式算法。

下面描述步骤603的示例。该示例包含3个关系模式算法:

1.基于串匹配(静态)

2.基于Boyer-Moore(X包含Y)(静态)

3.最长公共子串(动态)

表8

上面的表8示出了针对两个数据公布(来自数据源(甚至称作源) A的第一数据公布和来自数据源B的第二数据公布)的比较矩阵,第 一数据公布和第二数据公布构成数据公布对,因为它们针对其标识符 A0和B0具有相同的值。通过关系模式算法来评估第一和第二数据公 布对之间的每一个值组合。值组合A1001/A1001(列A0/B0)符合所 有三个算法,而John/john.smith@mail.com(列A1/B4)仅符合 Boyer-Moore(来自列B1的值包含来自A1的值)。如果针对先前分析 的公布,动态最长公共子串的大小高于配置的相似性阈值并且处于标 准差内,则它还可以符合动态最长公共子串。具有值“male”(列B3) 的非值组合不符合任何算法。

图7示出了将来自源A和B的数据公布对的值进行组合的数据值 比较矩阵的示例。在该示例中,源A具有五列A1至A5,即,源A 中的数据公布均具有五个数据值,并且源B具有四列B1至B4,即, 源B中的数据公布均具有四个数据值。在每一个矩阵交叉点,即,针 对每一个数据值组合,针对关系模式算法中的每一个存在符合性计数 器。在该具体示例中,存在七个可选的关系模式算法。符合性计数器 针对所有数据公布对针对不同的关系模式算法对个体数据值组合的符 合性进行计数。每一个矩阵交叉点中的图中的柱越高,针对该矩阵交 叉点针对关系模式算法的符合性越高。可以看出,不同关系模式算法 可以在不同矩阵交叉点中具有最高符合性。图8是个体数据值组合n32 (列A3与列B2交叉)的特写。从图8可以看出,算法4具有最高符 合性。实际上,它为100%或约100%。这也是高于阈值X-X的唯一算 法。因此,算法4将被选择作为用于在数据值组合n32中对个体数据 公布对的偏差进行检测的关系模式算法。

关系模式偏差检测700

来自过程600的最高符合性计数器值确定在每一个矩阵交叉点中 要使用哪一个关系模式算法。如果最高符合性计数器值表示动态关系 模式算法,则还使用附加算法变量值。如果针对特定矩阵交叉点的最 高符合性计数器值低于可配置阈值,则将不会对表示该矩阵交叉点的 数据值组合执行偏差检测。如果几个算法计数器高于阈值,则定义的 优先级算法决定针对偏差检测使用哪个算法。例如,如果精确匹配算 法计数器和“x在y中”算法计数器高于阈值,则精确匹配算法可以 比“x在y中”算法更优先。此外,不同的算法可能具有不同的阈值。

对于相应数据源中的每一个数据公布,根据图9的流程图对数据 值进行分析,图9描述了用于关系模式偏差检测的过程的实施例。当 过程开始时,从数据源A读取701a第一数据公布,并且从数据源B 读取701b第二数据公布。可选地,可以针对在阶段400中检测的类型 模式算法检查711a第一数据公布(来自数据源A的公布)的数据值。 如果第一数据公布的数据值中的任何数据值不符合该算法,则将其作 为偏差发信号通知。可选地,可以针对在阶段400中检测的类型模式 算法检查711b第二数据公布(来自数据源B的公布)的数据值。如 果第二数据公布的数据值中的任何数据值不符合该算法,则将其作为 偏差发信号通知。此后,检查702第一数据公布的标识符的值A是否 等于第二数据公布的标识符的值B。如果相等,则继续步骤703。如 果值A小于值B,则可选地,信号通知712a第一数据公布是唯一的, 然后回到步骤701a并且从源A读取下一个公布(在该示例中,优选 地,基于标识符的值来对数据公布进行排序)。如果值A在值B之后 (按词典编纂或数值顺序),则可选地,信号通知712b第二数据公布 是唯一的,然后回到步骤701b并且从源B读取下一个公布。如果第 一数据公布A的标识符值A与第二数据公布B的标识符值B相匹配, 则检查这两个数据公布的数据值组合中的个体数据值组合是否符合在 阶段600中针对每一个个体数据值组合所选择的关系模式算法。如果 针对数据公布对的个体数据值组合存在符合性,则过程前进至步骤 705,在步骤705,检查是否存在任何更多要评估的数据公布。如果是, 则从步骤701a和701b重复过程,如果否,则过程结束。另一方面, 在符合性步骤703中,如果针对个体数据值组合中的任一个发现非符 合性,则信号通知704公布A和公布B失配。当在该过程中接收到所 提到的信号中的任一个时,运营商可以对发现的失配进行分析并且校 正失配。

在已经执行关系模式偏差检测阶段700之后,返回图4;决定720 图4的整个过程是应当在单个序列中执行还是应当反复执行。如果在 单个序列中,则图4的过程结束,如果按反复方式,则在步骤730决 定反复分析的范围,即,使用旧的关系模式还是使用更新的关系模式 来执行反复分析。根据本实施例,反复分析的范围可以包括不同的备 选方式。在第一备选方式中,基于新检测到的关系模式执行新的关系 模式偏差检测700。在第二备选方式(其是第一备选方式的变形)中, 针对先前检测到的模式算法采用新检测到的关系模式,使得模式改变 依赖于历史,即,统计产生的模式。在第三备选方式中,对固定关系 模式(即,不随时间改变的关系模式)执行反复分析。

图10描述了用于检测数据源中的偏差的设备800的实施例,每 一个数据源包括多个数据公布,每一个数据公布包括多个数据值。在 图10中,第一数据源830和第二数据源840连接到设备。设备800 包括标识单元802,用于标识数据公布对,每一对包括第一数据源830 中的第一数据公布和第二数据源840中的第二数据公布,其中,针对 数据公布对中的第一数据公布和第二数据公布的唯一匹配数据属性, 数据值的子集相等。所述设备还包括:确定单元804,用于确定所述 多个数据公布对中的每一个数据公布对中的第一数据公布的数据值和 第二数据公布的数据值的多个组合中的个体组合是否满足多个关系模 式算法中的个体关系模式算法,以及用于确定针对所述多个数据公布 对所确定的关系模式算法的满足的符合性水平,选择单元806,用于 基于所确定的符合性水平,从所述多个关系模式算法中选择关系模式 算法;以及分析单元808,用于关于所选择的关系模式算法分析个体 数据公布对的数据值组合,以检测个体数据公布对中不符合所选择的 关系模式算法的数据值组合,不符合指示个体数据公布对的数据的可 能偏差。所述设备800还包括通信单元812,通信单元812可以被认 为包括用于去往和/或来自数据源830的通信的传统设备。所述设备 800还可以包括一个或多个存储单元或存储器810。

根据一个实施例,所述确定单元804被配置为针对与所述多个数 据公布对的相同数据属性组合有关的数据值的组合来确定所述符合性 水平。

根据另一个实施例,所述确定单元804被配置为确定满足包括: 所述确定单元被配置为针对所述多个数据公布对中的每一个数据公布 对,在比较矩阵Hxy中将所述多个数据公布对中的每一个数据公布对 中的第一数据公布的数据值与第二数据公布的数据值进行组合,其中, x指示所述第一数据公布的数据属性的数量并且同时指示所述矩阵的 列的数量,并且y指示所述第二数据公布的数据属性的数量并且同时 指示所述矩阵的行的数量。

根据另一个实施例,针对所述多个数据公布对,所述相同数据属 性组合涉及所述比较矩阵Hxy中的相同位置nab,其中,a=整数1至x 中的任意一个,b=整数1至y中的任意一个。

根据另一个实施例,所述选择单元806被配置为通过基于所确定 的符合性水平,针对与所述多个数据公布对的相同数据属性组合有关 的数据值组合分别选择关系模式算法,来选择关系模式算法。

根据另一个实施例,所述设备还包括:确定单元809,用于检测 所述第一数据源中数据值唯一的至少一个数据属性以及检测所述第二 数据源中数据值唯一的至少一个数据属性。所述选择单元806可以被 进一步配置用于从所检测的所述第一数据源中的至少一个数据属性和 所检测的所述第二数据源中的至少一个数据属性中选择所述第一数据 源中具有最多共同数据值的数据属性和所述第二数据源中具有最多共 同数据值的数据属性,作为所述第一数据源的唯一匹配数据属性和所 述第二数据源的唯一匹配数据属性。

根据另一个实施例,所述设备还包括:排序单元,用于按所述唯 一匹配数据属性的数据值的递增或递减数据值顺序对所述第一数据源 830和/或所述第二数据源840中的数据公布进行排序。

根据另一个实施例,所述检测单元809被进一步配置为针对所述 第一数据源830,通过针对确定所述第一数据源的数据属性的数据值 的特性的值类型算法集暴露数据值来检测所述数据属性的元数据,并 且针对所述第二数据源840,通过针对确定所述第二数据源的数据属 性的数据值的特性的值类型算法集暴露数据值来检测所述数据属性的 元数据。

根据另一个实施例,所述检测单元809被配置为通过检测所述第 一数据源中数据值唯一的至少一个数据属性来检测所述第一数据源的 元数据,并且所述检测单元809被配置为通过检测所述第二数据源中 数据值唯一的至少一个数据属性,来检测所述第二数据源的元数据。

根据另一个实施例,所述选择单元806被配置为仅当所述多个关 系模式算法中存在所确定的符合性水平高于定义阈值的关系模式算法 时才执行基于所确定的符合性水平从所述多个关系模式算法中选择关 系模式算法。

根据另一个实施例,当所述多个关系模式算法中存在多于一个所 确定的符合性水平高于所述定义阈值的关系模式算法时,所述选择单 元806被配置为使用优先级算法来决定选择所述多于一个关系模式算 法中的哪一个。

图11示意性地示出了被配置用于检测数据源中的偏差的设备900 的实施例,设备还可以是实现图10中所示的设备800的实施例的备选 方式。装置900中包括处理单元906(例如,具有DSP(数字信号处 理器)或微处理器)。处理单元906可以是用于执行这里所述的过程的 不同动作的单个单元或多个单元。装置900还可以包括输入单元902, 用于从其他实体接收信号,以及输出单元904,用于向其他实体提供 信号。输入单元902和输出单元904可以被装置为集成实体。

此外,装置900包括至少一个计算机程序产品908,该至少一个 计算机程序产品908具有以下形式:非易失性或易失性存储器,例如, EEPROM(电可擦除可编程只读存储器)、闪存存储器、磁盘驱动器、 或RAM(随机存取存储器)。计算机程序产品908包括计算机程序910, 计算机程序910包括代码装置,当在装置900中的处理单元906中执 行代码装置时,代码装置使装置执行先前结合图1至图6中的任意一 个或图9所述的过程中的任意一个的动作。

计算机程序910可以被配置为用计算机程序模块构造的计算机程 序代码。因此,在示例性实施例中,装置800的计算机程序810中的 代码装置包括标识模块910a,用于标识数据公布对,每一对包括第一 数据源中的第一数据公布和第二数据源中的第二数据公布,其中,针 对数据公布对中的第一数据公布和第二数据公布的唯一匹配数据属性, 数据值的子集相等。所述代码设备还包括:第一确定模块910b,用于 确定所述多个数据公布对中的每一个数据公布对中的第一数据公布的 数据值和第二数据公布的数据值的多个组合中的个体组合是否满足多 个关系模式算法中的个体关系模式算法。所述代码装置还包括:第二 确定模块910c,用于确定针对所述多个数据公布对所确定的关系模式 算法的满足的符合性水平。所述代码装置还包括:选择模块910d,用 于基于所确定的符合性水平,从所述多个关系模式算法中选择关系模 式算法。所述代码装置还包括:分析模块910d,用于关于所选择的关 系模式算法分析个体数据公布对的数据值组合,以检测个体数据公布 对中不符合所选择的关系模式算法的数据值组合,不符合指示个体数 据公布对的数据的可能偏差。

处理单元906可以是单个中央处理单元CPU,但是它也可以包括 两个或更多个处理单元。例如,处理单元可以包括通用微处理器;指 令集处理器和/或相关芯片集和/或专用微处理器(例如,ASIC(专用 集成电路))。处理器还可以包括用于缓存目的的在板存储器。计算机 程序可以由连接到处理器的计算机程序产品承载。计算机程序产品可 以包括其上存储有计算机程序的计算机可读介质。例如,计算机程序 产品可以是闪存存储器、RAM(随机存取存储器)、ROM(只读存储 器)、或EEPROM(电可擦除可编程ROM),并且在备选实施例中, 上述计算机程序模块可以以设备中的存储器的形式分布在不同的计算 机程序产品上。

虽然上文结合图11所公开的实施例中的代码装置被实现为计算 机程序模块(其中,当在处理单元中执行计算机程序模块时,计算机 程序模块使得设备执行上文结合上述图所述的动作),但是在备选实施 例中,代码装置中的至少一个可以至少部分地实现为硬件电路。

根据本发明的已经描述的实施例的方法和设备可以具有以下优 点中的任意一个或多个:可以自动地找到具有可比较的数据公布的两 个较大数据源之间的可能偏差,其中,两个较大数据源中的每一个可 以在移动通信运营商的数据库中包括无数数据公布。如果可以减轻这 种偏差,则可以避免由于数据库的内容的错误引起的很多问题。例如, 可能由于数据库的失配(从而导致不清楚实际上哪一个人拨打电话) 而不能对在移动通信网络中拨打的电话进行计费。此外,所述实施例 支持多个关系模式算法。可以选择多个关系模式算法中最适合个体数 据值组合的关系模式算法。此外,可以检测数据属性类型并且针对列 种的某一数据值根据检测到的数据属性类型检测偏差。

虽然上文的描述包含多个特殊性,但是它们不应当被理解为限制 这里所述的构思的范围,而是仅提供所述构思的一些示例性实施例的 说明。将理解的是,当前所述的构思的范围完全涵盖对于本领域技术 人员可以变得显而易见的其他实施例,并且当前所述的构思的范围因 此不受限制。除非明确声明,否则以单数形式提及元素并不旨在意味 着“一个且仅一个”,而是“一个或多个”。本领域普通技术人员已知 的上述实施例的元素的所有结构和功能等同物通过引用的方式明确地 并入本文,并且旨在由此被涵盖。此外,设备或方法不必解决当前所 述的构思试图解决的每一个问题,这是因为它将由此被涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号