CN103177068B - 按照生存规则合并源记录的系统和方法 - Google Patents

按照生存规则合并源记录的系统和方法 Download PDF

Info

Publication number
CN103177068B
CN103177068B CN201210562742.4A CN201210562742A CN103177068B CN 103177068 B CN103177068 B CN 103177068B CN 201210562742 A CN201210562742 A CN 201210562742A CN 103177068 B CN103177068 B CN 103177068B
Authority
CN
China
Prior art keywords
existence
group
source
record
rule
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
CN201210562742.4A
Other languages
English (en)
Other versions
CN103177068A (zh
Inventor
U.哈哈姆
G.马乔尔
G.罗森瓦尔德
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of CN103177068A publication Critical patent/CN103177068A/zh
Application granted granted Critical
Publication of CN103177068B publication Critical patent/CN103177068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

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

Abstract

根据一些实施例,可以从多个数据源接收多个源记录,其中每个源记录包括多个字段。可以确定来自不同的数据源的源记录的匹配组涉及相同实体,以及基于来自匹配组中不同源记录的字段值为匹配组自动创建单个最佳记录。所述创建可以包括:例如,分配第一组字段到与第一生存规则关联的第一生存组,分配第二组字段到与第二生存规则关联的第二生存组。可以使用单个查询依据第一和第二生存规则同时排序匹配组的全部记录。然后存储最佳记录供其他应用随后使用。

Description

按照生存规则合并源记录的系统和方法
技术领域
一些实施例涉及基于多个不同的源记录创建记录。更具体地,一些实施例提供用于按照生存规则(survivorship rule)创建记录的系统和方法。
背景技术
商店或企业可按照电子记录的形式存储关于各种实体的信息。例如,一家公司可能有员工数据库,在该数据库中的每一行代表包含有关特定雇员的信息(例如,雇员的姓名、受雇日期和工资)的记录。此外,实际上不同的电子记录可以关联到单个实体。例如,人力资源数据库和销售代表数据库可能均包含关于同一雇员的记录。在某些情况下,可能期望于合并多条记录以针对在数据库中表示的每个实体创建其中包含单个电子记录的数据存储。这样的目标可能是例如与主数据管理程序关联的。
当前,在主数据管理程序中的合并过程是耗时的操作。例如,可能是几个不同的合并规则应用在序列中,并且每个应用可能需要单独的数据库查询和/或创建数据的内部版本,直到创建最后的记录。然而,当牵涉到相当数量的记录和/或输入数据源时(例如,可能需要合并成千上万的源记录),这样的做法可能是不切实际的。
因此,根据这里描述的一些实施例可以提供一种方法和机制,用于有效地和准确地处理和/或合并输入数据记录。
发明内容
根据本发明的一方面,提供一种计算机实施的方法,包括:从多个数据源接收多个源记录,每个源记录包括多个字段;确定来自不同的数据源的源记录的匹配组涉及相同实体;基于来自匹配组中不同源记录的字段值为匹配组自动创建单个最佳记录,其中所述创建包括分配第一组字段到与第一生存规则关联的第一生存组、分配第二组字段到与第二生存规则关联的第二生存组、以及使用单个查询依据第一和第二生存规则同时排序匹配组的全部源记录;以及存储最佳记录。
其中第一或第二生存规则的至少一个与如下的至少一个关联:(i)可靠性,(ii)新近度,或(iii)完整性。
所述的方法进一步包括:从用户接收生存配置信息;和基于接收的生存配置信息,在执行时自动产生代码以创建单个最佳记录。
其中代码创建默认生存组、重叠生存组,并且单个查询为多个匹配组同时构建最佳记录。
其中根据多个生存者规则维度为每个生存组计算单个源记录。
其中为多个生存组同时计算源记录。
其中查询与结构化查询语言协议关联。
其中所述创建与基于列的内存表关联。
其中数据源的至少一个包括如下的至少一个:(i)企业资源规划数据库、(ii)客户关系管理数据库、(iii)人力资源数据库或(iv)传统数据库。
所述的方法,进一步包括:识别仅包含单个源记录的匹配组,其中所述创建不对识别的匹配组执行。
根据本发明的一方面,提供一种非暂时、计算机可读介质,存储由计算机处理器可执行的程序代码指令以执行一方法,该方法包括:从多个数据源接收多个源记录,每个源记录包括多个字段;确定来自不同的数据源的源记录的匹配组涉及相同实体;基于来自匹配组中不同源记录的字段值为匹配组自动创建单个最佳记录,其中所述创建包括分配第一组字段到与第一生存规则关联的第一生存组、分配第二组字段到与第二生存规则关联的第二生存组、以及使用单个查询依据第一和第二生存规则同时排序匹配组的全部源记录;以及存储最佳记录。
其中第一或第二生存规则的至少一个与如下的至少一个关联:(i)可靠性,(ii)新近度,或(iii)完整性。
其中程序代码指令的执行进一步引起计算机处理器来执行:从用户接收生存配置信息;和基于接收的生存配置信息,在执行时自动产生代码以创建单个最佳记录。
其中自动产生的代码创建默认生存组、重叠生存组,并且单个查询为多个匹配组同时构建最佳记录。
其中根据多个生存者规则维度为每个生存组计算单个源记录,另外,其中为多个生存组同时计算源记录。
其中查询与结构化查询语言协议关联,并且所述创建与基于列的内存表关联。
其中数据源的至少一个包括如下的至少一个:(i)企业资源规划数据库、(ii)客户关系管理数据库、(iii)人力资源数据库或(iv)传统数据库。
根据本发明的一方面,提供一种系统,包括:源数据存储器,用于提供与不同的数据源关联的多个源记录,每个源记录包括多个字段;最佳记录数据存储器;和计算最佳记录平台,用于(i)从源数据存储器接收源记录和(ii)将单个最佳记录存储到最佳记录数据存储器,其中计算最佳记录平台基于来自匹配组中不同源记录的字段值为匹配组创建单个最佳记录,其中所述创建包括分配第一组字段到与第一生存规则关联的第一生存组、分配第二组字段到与第二生存规则关联的第二生存组、以及使用单个查询依据第一和第二生存规则同时排序匹配组的全部源记录。
其中第一或第二生存规则的至少一个与如下的至少一个关联:(i)可靠性,(ii)新近度,或(iii)完整性。
其中程序代码指令的执行进一步引起计算机处理器来执行:从用户接收生存配置信息;和基于接收的生存配置信息,在执行时自动产生代码以创建单个最佳记录。
其中自动产生的代码创建默认生存组、重叠生存组,并且单个查询为多个匹配组同时构建最佳记录。
其中根据多个生存者规则维度为每个生存组计算单个源记录,另外,其中为多个生存组同时计算源记录。
其中查询与结构化查询语言协议关联,并且所述创建与基于列的内存表关联。
其中数据源的至少一个包括如下的至少一个:(i)企业资源规划数据库、(ii)客户关系管理数据库、(iii)人力资源数据库、或(iv)传统数据库。
附图说明
图1是可能与根据一些实施例的记录合并关联的系统的框图。
图2至5示出根据一些实施例的与记录合并关联的数据流。
图6是根据一些实施例的平台的框图。
图7是根据一些实施例的过程的流程图。
图8说明根据一些实施例的源记录数据库的一部分。
图9说明根据一些实施例的最佳记录数据库的一部分。
图10是可能与根据一些实施例的记录合并关联的系统的框图。
具体实施方式
图1是可能与记录合并关联的系统100的框图。系统100包括存储记录的多个数据源,每个记录包含多个字段(例如,业务伙伴名称、地址和电话号码)。不同的数据源,例如,可以与不同业务应用相关联,并可以被查询不然或可以输出数据源记录。根据一些实施例,一个或多个数据源可能与企业资源规划(“ERP”)系统110关联。至于其他的例子,数据源可能与客户关系管理(“CRM”)系统112或传统系统114关联(例如,与旧的数据库应用关联)。请注意,任何的源记录可能存储在数据库的物理表中或另外关联于数据库的物理表,该数据库包括基于列的内存表(column-based in-memory table)。本文所述的任何数据库可以包括关系数据库,如SAP MaxDB,甲骨文、微软SQL Server、IBM DB2、Teradata等。作为另一示例,数据源可与多维数据库、可扩展的标记语言(“XML”)文件、或任何其他结构化的数据存储系统关联。物理表可以分布在几个关系数据库、维度数据库、和/或其他数据源中。
最佳记录计算器平台120可以从各种数据源110、112、114接收源记录。例如,最佳记录计算器平台120可以从远程数据源通过超文本传输协议(“HTTP”)通信或任何其他类型的数据交换来输入源记录。最佳记录计算器平台120和/或数据源可能关联于例如,个人计算机(“PC”)、服务器、和/或移动设备。
最佳记录计算器平台120依据这里描述的任意实施例可以合并和/或整合从数据源接收的源记录并且将一个或多个“最佳”的记录存储到最佳记录数据库130中。例如,人力资源数据库和销售代表数据库可能包含同一雇员的记录。在这种情况下,最佳记录计算器平台120会自动合并多条记录以建立该雇员的单个最佳记录。这样的目标可能关联于例如主数据管理程序。
根据一些实施例,记录的合并与如下两阶段的过程有关:(i)识别潜在的副本或“匹配”和然后(ii)将记录合并成代表实体的单个最佳记录。注意大型数据集可能会从多个传统系统中被提取到最佳记录计算器平台120,并且包括一些明显的、直接转发的副本,在数据输入最佳记录计算器平台120之后副本需要(并且能够)立即被分解和合并。在许多情况下,副本检测将是直接转发的,诸如当它是基于不会被以模糊的方式解释的良好定义的标识符的情况。这样的标识符的例子包括用于识别个人的社会安全号码或用于检测复制的材料的全球贸易项目号(GTIN)。
然而,在某些情况下,可能需要将复制的记录合并到单个物理记录,但在不同记录中可以存在冲突的数据。例如,如图1所示,ERP系统110可包含一个记录,具有出生日期(“DOB”)字段的值是“1960年1月1日”同时传统系统114具有与具有DOB值“1/1/1970”的相同的实体(“John Smith(约翰史密斯)”)相关的记录。根据本文所述的一些实施例,可以提供一种在任何此类冲突的情况下有助于合并的机制。
可以按照各种生存规则合并和/或整合冲突信息。例如,可靠性评分可以分配到不同的数据源记录(如,可以总是假设ERP系统110比CRM系统112更可靠)。作为另一示例,新近度可以指示更近的数据和更早的数据比较是更可靠的。注意使用不同的生存规则可以解决关于源记录中不同字段的冲突。在图1的示例中,“默认”生存规则可以指示ERP系统110比CRM系统112更可靠,并在可靠性“平局”的情况下,则最近的数据比较旧的数据更可信。此外,对于电话号码字段,各个源(按降序排列)被信任:CRM系统112,传统系统113,而最后,ERP系统110(依据作为辅助的打破平局的新近度)。最后,对于DOB值,传统系统114是最值得信赖的,随后是CRM系统112和ERP系统110。
结果,计算最佳记录平台110可以检查约翰史密斯的电话号码,并确定“(123)999-8888”的值将使用在最佳记录数据库130中,因为至少对于电话号码而言,CRM系统112比ERP系统110和传统系统114更可靠。与此相反,来自传统系统114的“1/1/1970”的DOB值在最佳记录数据库130中使用,因为根据规则,传统系统114比ERP系统110或CRM系统112更可靠。
注意图1表示根据一些实施例的逻辑架构,并且实际的实现可以包括按照其他方式安排的更多或不同的组件。此外,这里所描述的每个系统可以由经由任意数量的其他公共和/或私人网络通信的任意多个设备实现。设备中的两个或更多个可以彼此远离安置,并可经由网络的任何已知的方式和/或专用的连接彼此通信。此外,每个设备可以包括任何数量的合适的硬件和/或软件元件以提供本文所描述的功能以及任何其他功能。其他拓扑结构可以与其他的实施例中结合使用。
本文所讨论的所有的系统和过程可以体现在一个或多个计算机可读介质上存储的程序代码。这种介质可包括,例如,软盘、CD-ROM、DVD-ROM、磁盘、磁带、和固态随机存取存储器(RAM)或只读存储器(ROM)存储单元。因此,实施例并不限定于硬件和软件的任何特定的组合。
计算最佳记录平台120可以按照多个不同的方式执行这里描述的数据合并。例如,图2示出根据一些实施例的与记录合并关联的数据流200。在202,可以确定源记录的“匹配组”。如本文所用,“匹配组”可指代表示相同的真实世界实体(例如,人、产品、或公司)的记录(包括源记录)的收集。此外,术语“源记录”可表示来自给定源的、描述单个记录的原始数据。根据一些实施例,源记录可预先被清理和/或转换成适当的格式。
如果只存在关于实体的单个源记录,则在204中可以简单地将其保存为可用的“最佳记录”。如果有关于单个实体的多个源记录,则可以在206和208中应用生存规则,或确定哪个记录被视为最准确的规则。不同字段可以与不同的生存规则关联。例如,“生存组”可代表一组字段,它们全部与相同生存规则关联(如,相比系统B,来自系统A的出生日期和电话号码都被信任)。此外,可以将默认的生存规则应用于不属于任何特定的生存规则的字段。如果在206和208中确定一明确的赢家,则在210中从获胜的源可以获取“最佳记录”,在212中可以添加来自重叠(override)记录的数据,并且在204中新的记录可以被保存作为最佳记录。
如果应用生存之后在两个源之间存在“平局”,则在214可以使用新近度(或在其源系统中最近更新的记录)作为平局打破者。如果新近度不解决该平局,则在216可以使用完整性(具有最大数量的占据字段(populated field)的记录)作为平局打破者。请注意,在数据流200中,每个记录可以单独处理,并且可以要求使用临时表,以逐步建立记录到最终的最佳记录。
为了改进性能,图3示出根据一些实施例中的数据流。特别是,在302中可以使用单个查询以确定具有一个记录的所有的匹配组,然后在304中将其简单地作为最佳记录保存。需要注意的是,302和304对于与单个源记录关联的全部匹配组可以只需要运行一次。在306中确定有两个以上记录的所有的匹配组,并且可在308和310中应用生存规则。如果在308和310中确定明显的赢家,则在312中可以从获胜的源获得“最佳记录”,在314中可以添加来自重叠记录的数据,并且在316中新的记录可以被保存作为最佳记录。
如果应用生存之后在两个源之间存在“平局”,则在318中可以使用新近度作为平局打破者。如果新近度不解决该平局,则在320中可以使用完整性作为平局打破者。
为了进一步改进性能,图4示出根据这里所述的实施例的数据流400。如图3一样,在402中可以使用单个查询以确定具有一个记录的所有的匹配组,然后在404中将其简单地作为最佳记录保存(402和404对于与单个源记录关联的全部匹配组可以只需要运行一次)。在406中确定有两个以上记录的所有的匹配组,并且源记录在408中可以按照对于全部生存组的可靠性、新近度和完整性进行先后排序。注意408可以与具有配置的内建生存规则的算法关联并且可以为每个匹配组建立记录作为原子动作(atomic action)。此外,在匹配组的全部源记录可以按照在单个查询中的全部生存规则排序并且每个生存组可以由根据生存规则选择的单个源记录表示。
在410,可以从单个软件查询语言(SQL)语句中的选择的源记录中构造最佳记录,然后在412中进行保存。请注意,这种方法可避免对临时或内部表的需要,从而提高了性能。此外,每个匹配组(具有多个源)可以顺序地被计算并且存储的程序代码可在配置改变之后自动生成和部署。需要注意的是在运行时确定执行路径可能需要遍历每个生存规则使得并行处理困难。然而,在编译时确定执行路径可以消除对遍历的需求,事实上,便于并行处理。
因此,一些实施例可提供一算法从而来自全部匹配组的全部最佳记录可以使用单个查询同步地建立。例如,图5示出按照一些实施例的数据流500,其中在502中可以使用单个查询确定具有一个记录的全部的匹配组,然后在504中将其简单地作为最佳记录保存(同上,502和504可以对于与单个源记录关联的全部匹配组只需要运行一次)。在506中确定有两个以上记录的全部的匹配组,并且源记录在508中可以按照对于全部生存组的可靠性、新近度和完整性进行先后排序。在510,最佳记录可以从单个SQL语句中的选择的源记录中构建,然后在512中保存。
根据一些实施例,当用户配置生存组和与每个组相关联的规则时,可以自动触发一过程以产生针对用户的配置定制的代码。这种方法可基于该配置避免动态分支的必要性并且允许适当的将被硬编码的优化。此外,在某些情况下,对于全部组,可以同时地选择每个生存组的记录,随着生存组的数量增加而给出接近平坦的性能曲线,并且可以采用单个构建过程建立最佳记录,而不是在生存组的每个上递增地建立最佳记录(减少了所需的处理步骤)。此外,可以同时构造对于所有的匹配组的最佳记录-这给出了随着匹配组数量增加的接近平坦的性能曲线。
例如,考虑可以如何对生存规则和生存组建模。具体地,具有生存规则的“默认”记录级别生存组可以覆盖在其他生存组中没有覆盖的全部字段:
产生的与那些默认规则关联的伪代码可以如下:
select name,streetAddress,city,state,zip,telephone…
from all_recs_in_match_group
join all_match_groups
order by matchGroupld,
getReliability(matchGroupld,srcRecs,{‘ERP’,’CRM’}),
getRecency(matchGroupld,srcRecs)as RecordGroup
接下来,可以配置一个或多个重叠生存组(覆盖两个字段)及其生存规则:
产生的与那些重叠规则关联的伪代码可以如下:
select matchGroupld,birthPlace,birthDate
from all_recs_in_match_group
join all_match_groups
order by matchGroupld,
getRecency(matchGroupld,srcRecs),
getCompleteness(matchGroupld,srcRecs),
getReliability(matchGroupld,srcRecs,{‘CRM’,’SRM’,’ERP’})as BirthGroup
然后,对于全部匹配组,可以从几个源记录同时地构建最佳记录,如下:selectmatch_group_id,
RecordGroup.name,
RecordGroup.streetAddress,
RecordGroup.city,
RecordGroup.state,
RecordGroup.zip,
RecordGroup.telephone,
BirthGroup.birthPlace,
BirthGroup.birthDate
from RecordGroup
join BirthGroup
join all_match_groups//where RecordGroup&BirthGroup are as definedabove
根据一些实施例,可避免使用强制逻辑(imperative logic)(例如,for、while和if语句),并且典型的SQL方法会是首选的。此外,使用批量插入,易失性的用于存储临时数据的列表格,和/或在少量列上快速加入(fast join)的列表格可以进一步提高系统的性能。
请注意,代码生成和/或最佳记录构造可以由任何适当的设备执行。例如,图6是根据一些实施例的最佳记录计算器平台600的概述的框图。最佳记录计算器平台600可以是例如与图1的系统100关联。最佳记录计算器平台600包括处理器610,如一个或多个商业可获得的单芯片微处理器形式的中央处理单元(CPU),耦合到被配置为经由通信网络(图6中未示出)进行通信的通信设备620。可使用通信设备620例如与一个或多个远程数据源、最佳记录数据库、和/或操作员进行通信。最佳记录计算器平台引擎600还包括输入设备640(例如,鼠标和/或键盘,用于输入生存组和/或规则)和输出设备650(例如,计算机监视器,用于显示用户界面元素和/或记录合并报告)。
处理器610与存储设备630通信。存储设备630可以包括任何适当的信息存储设备,包括磁存储设备(例如,硬盘驱动器)、光存储设备、和/或半导体存储器设备的组合。存储设备630存储程序612和/或用于控制处理器610的最佳记录引擎应用614。处理器610执行程序612、614的指令,从而按照本文所描述的任何实施例进行操作。例如,处理器610可以从多个数据源接收多个源记录,其中每个源记录包括多个字段。处理器610然后可以确定来自与相同实体有关的不同的数据源的源记录的匹配组,并且基于来自匹配组的不同源记录的字段值可以为匹配组自动创建单个最佳记录。例如,处理器610可以分配第一组字段到与第一生存规则关联的第一生存组以及分配第二组字段到与第二生存规则关联的第二生存组。然后匹配组中的所有记录可以由处理器610使用单个查询按照第一和第二生存规则同时进行排序。然后可以存储最佳记录用于其他应用的后续使用。
程序612、614可被以压缩的、未编译的和/或加密的格式存储。程序612、614可进一步包括由处理器610使用来接口连接外围设备的其他程序元素,如操作系统、数据库管理系统、和/或设备驱动程序。
如这里所用的,信息可以被如下地进行“接收”或“发送”,例如:(i)从其他设备到最佳记录计算器平台600;或(ii)从另一软件应用、模块或任何其他源到最佳记录计算器平台600内的软件应用或模块。
在一些实施例中(如在图6中示出),存储设备630存储包含接收自数据源的记录的源记录数据库800、生存数据库660(存储关于生存组和/或生存规则的信息)、和最佳记录数据库900(针对图9描述)。将参考图8详细描述可结合最佳记录计算器平台800使用的源记录数据库800的一个例子,其记录。请注意,这里所描述的数据库是示例,并且在其中可以存储附加的和/或不同的信息。此外,各种数据库可根据这里所描述的任意实施例进行分割或组合。
最佳记录计算器平台600可根据这里所描述的任意实施例进行操作。例如,图7是根据一些实施例的过程700的流程图。请注意,本文所述的所有过程可以通过硬件和/或软件的任何组合来执行。各过程可以体现为存储在有形介质并且可由计算机执行的程序代码,以提供这里所描述的功能。进一步注意到,本文所描述的流程图不意味步骤的固定的顺序,并且可以按可以实施的任何顺序实施本发明的实施例。
在S710中,可以从多个数据源接收多个源记录,每个源记录包括多个字段。数据源可以与例如ERP数据库、CRM数据库、人力资源数据库和/或传统的数据库关联。在S720,可确定来自不同数据源的源记录的匹配组涉及相同的实体。
根据一些实施例,可以基于来自匹配组的不同源记录的字段值为匹配组自动创建单个最佳记录。具体地,在S730,可以分配第一组字段到与第一生存规则关联的第一生存组以及可以分配第二组字段到与第二生存规则关联的第二生存组。生存规则例如可以是相关的可靠性,新近度,和/或完整性。根据一些实施例,从用户接收生存配置信息(例如,通过图形用户界面),并基于所接收的生存配置信息,代码可以在执行时自动生成用于创建单个最佳记录。代码例如可以创建默认的生存组,重叠生存组,并且单个查询可以同时为多个匹配组构建最佳记录。
在S740中,匹配组的所有的源记录可以根据所述第一和第二生存规则使用单个查询同时进行排序。根据一些实施例,可以根据多个生存者规则维度为每个生存组计算单个源记录。此外,可以同时为多个生存组计算源记录并且最佳记录的创建可以与基于列的内存表关联。在S750,可以存储最佳记录(例如,将要由其他应用使用)。
通过示例,图8是根据一些实施例示出的表,其表示可以在最佳记录计算器平台600中存储的源记录数据库800。该表可包括例如识别可能需要被组合和/或合并的相关记录的条目。该表还可以为每个条目定义字段802、804、806、808、810、812。字段802、804、806、808、810、812根据一些实施例中可以规定:名称802、国家804、邮政编码806、DOB808、源810、和日期812。在源记录数据库800中的信息可以例如基于从数据源接收的信息(包括,在某些情况下,传统数据源)被创建和更新。
名称802可以是例如与个人关联的字母数字序列。国家804和邮政编码806可代表个人的家庭位置而DOB808可以代表他或她的出生日期。源810可指示条目中的信息来自何处(例如,ERP或CRM系统)而日期812可指示更新信息的最终时间。请注意,来自ERP和CRM系统的邮政编码806和DOB808是不同的。
遵循对于图5阐述的例子,假设大多数字段(除DOB808)应该采取来自最可靠的系统(其中ERP源810是最可靠的)的值,但DOB808应该从最近的记录(如日期812定义的记录)取值。
在这样的情况下,图9示出根据一些实施例的表,其表示可以在最佳记录计算器平台600中存储的最佳记录数据库900。该表可以包括,例如,识别已结合和/或合并的记录的条目。该表还可以为每个条目定义字段902、904、906、908。字段902、904、906、908根据一些实施例可以规定:名称902、国家904、邮政编码906、和DOB908。在源记录数据库900中的信息可以被创建和更新,例如,这是基于最佳记录计算器平台600执行的算法。
名称902可以是例如与个人关联的字母数字序列。国家904和邮政编码906可代表个人的家庭位置而DOB908可以代表他或她的出生日期。注意,包括邮政编码906的多数字段来自最可靠的系统(ERP),而DOB908按照用户的生存配置来自最近的记录。
根据一些实施例,生存组或规则中的至少一个基于历史信息自动调整。例如,可以确定生存规则在过去没有提高在最佳记录数据库的数据的质量,并且可以自动选择或调整不同的方法或门限。
图10是可能与记录合并关联的系统1000的框图。系统1000包括存储记录的数据源1010,每个记录包含多个字段(如,商业伙伴名称、许可证号和邮政地址)。最佳记录计算器平台1020可以从数据源1010接收源记录。依据这里描述的任意的实施例,最佳记录计算器平台1020可以合并和/或整合从数据源1010接收的源记录并且将最佳记录存储到最佳记录数据库1030。
根据一些实施例,最佳记录计算器平台1020还可以在仿真模式期间从测试源接收测试数据。例如,测试数据可用于检测为什么最佳记录数据库1030中的某些字段是空的或不正确。此外,GUI1040可以被用来从操作者接收生存组和生存规则信息和/或提供报告给操作者。因此,GUI1040可以提供容易配置和由业务用户改变的生存组和/或生存规则。有可能不要求技术知识,而相反用户可能只需要确定业务需求,这可以直接转换成配置,并由此转换为实际的工作代码。
因此,这里描述的一些实施例可以根据生存配置(规则和组)自动产生处理代码,从而代码中的分支可以减少或避免。结果,可大幅优化处理代码用于用户的特定的生存配置。此外,对于每个生存组可以根据所有生存规则维度计算一个源记录(例如,“优先级最高的”记录)。根据某些实施例,该计算可同时对所有生存组进行。此外,可以采用单个构建过程构造或建立最佳记录(而不是在生存组的每个上递增地建立),对于所有的匹配组的最佳记录可以同时构造(这可以提供随着匹配组数量增加的接近平坦的性能曲线)。
以下说明各种附加的实施例,并且不构成所有可能的实施例的限定,并且本领域中的技术人员将会理解,本发明适用于许多其他的实施例。另外,虽然下面的实施例为清楚起见进行了简单的说明,但是本领域的技术人员将理解如何在必要时对上述的装置和方法做出任何的改变以包含这些和其他实施例和应用。
虽然已经对于特定类型的数据描述了各个实施例,但是请注意,实施例可以与其他类型的信息相关联。例如,销售订单,金融信息,和健康数据可以按照与本文所描述的任意实施例进行处理。
此外,虽然已经使用特定的一系列步骤说明各实施例,但是实施例可以被实施成任何其他的许多不同的方式。例如,可以按照与本文所描述的任意实施例来应用不同类型的生存组和/或规则应用。
这里描述的实施例仅用于说明的目的。本领域的技术人员将从描述中认识到各实施例不限制于描述的那些,而是可以通过仅由所附的权利要求的精神和范围限定的修改和替换来实施。

Claims (22)

1.一种计算机实施的创建记录的方法,包括:
从多个数据源接收多个源记录,每个源记录包括多个字段;
确定来自不同的数据源的源记录的匹配组涉及相同实体;
基于来自匹配组中不同源记录的字段值为匹配组自动创建单个最佳记录,其中所述创建包括:
分配第一组字段到与第一生存规则关联的第一生存组,第一生存规则指示对于第一组字段,第一源比第二源受信任,
分配第二组字段到与第二生存规则关联的第二生存组,第二生存规则指示对于第二组字段,第二源比第一源受信任,以及
使用单个查询依据第一和第二生存规则同时排序匹配组的全部源记录;
根据多个生存者规则维度为每个生存组计算单个源记录;以及
存储单个最佳记录。
2.根据权利要求1所述的方法,其中第一或第二生存规则的至少一个与如下的至少一个关联:(i)可靠性,(ii)新近度,或(iii)完整性。
3.根据权利要求1所述的方法,进一步包括:
从用户接收生存配置信息;和
基于接收的生存配置信息,在执行时自动产生代码以创建单个最佳记录。
4.根据权利要求3所述的方法,其中代码创建默认生存组、重叠生存组,并且单个查询为多个匹配组同时构建最佳记录。
5.根据权利要求1所述的方法,其中为多个生存组同时计算源记录。
6.根据权利要求1所述的方法,其中查询与结构化查询语言协议关联。
7.根据权利要求1所述的方法,其中所述创建与基于列的内存表关联。
8.根据权利要求1所述的方法,其中数据源的至少一个包括如下的至少一个:(i)企业资源规划数据库、(ii)客户关系管理数据库、(iii)人力资源数据库或(iv)传统数据库。
9.一种非暂时、计算机可读介质,存储由计算机处理器可执行的程序代码指令以执行创建记录的方法,该方法包括:
从多个数据源接收多个源记录,每个源记录包括多个字段;
确定来自不同的数据源的源记录的匹配组涉及相同实体;
基于来自匹配组中不同源记录的字段值为匹配组自动创建单个最佳记录,其中所述创建包括:
分配第一组字段到与第一生存规则关联的第一生存组,第一生存规则指示对于第一组字段,第一源比第二源受信任,
分配第二组字段到与第二生存规则关联的第二生存组,第二生存规则指示对于第二组字段,第二源比第一源受信任,以及
使用单个查询依据第一和第二生存规则同时排序匹配组的全部源记录;
根据多个生存者规则维度为每个生存组计算单个源记录;以及
存储单个最佳记录。
10.根据权利要求9所述的计算机可读介质,其中第一或第二生存规则的至少一个与如下的至少一个关联:(i)可靠性,(ii)新近度,或(iii)完整性。
11.根据权利要求9所述的计算机可读介质,其中程序代码指令的执行进一步引起计算机处理器来执行:
从用户接收生存配置信息;和
基于接收的生存配置信息,在执行时自动产生代码以创建单个最佳记录。
12.根据权利要求9所述的计算机可读介质,其中自动产生的代码创建默认生存组、重叠生存组,并且单个查询为多个匹配组同时构建最佳记录。
13.根据权利要求9所述的计算机可读介质,其中为多个生存组同时计算源记录。
14.根据权利要求9所述的计算机可读介质,其中查询与结构化查询语言协议关联,并且所述创建与基于列的内存表关联。
15.根据权利要求9所述的计算机可读介质,其中数据源的至少一个包括如下的至少一个:(i)企业资源规划数据库、(ii)客户关系管理数据库、(iii)人力资源数据库或(iv)传统数据库。
16.一种创建记录的系统,包括:
存储设备,用于存储最佳记录数据存储器和源数据存储器,所述源数据存储器用于提供与不同的数据源关联的多个源记录,每个源记录包括多个字段;以及
处理器,用于(i)从源数据存储器接收源记录和(ii)将单个最佳记录存储到最佳记录数据存储器,其中所述处理器基于来自匹配组中不同源记录的字段值为匹配组创建单个最佳记录,其中所述创建包括:
分配第一组字段到与第一生存规则关联的第一生存组,第一生存规则指示对于第一组字段,第一源比第二源受信任,
分配第二组字段到与第二生存规则关联的第二生存组,第二生存规则指示对于第二组字段,第二源比第一源受信任,以及
使用单个查询依据第一和第二生存规则同时排序匹配组的全部源记录,根据多个生存者规则维度为每个生存组计算单个源记录。
17.根据权利要求16所述的系统,其中第一或第二生存规则的至少一个与如下的至少一个关联:(i)可靠性,(ii)新近度,或(iii)完整性。
18.根据权利要求16所述的系统,其中所述处理器还用于:
从用户接收生存配置信息;和
基于接收的生存配置信息,在执行时自动产生代码以创建单个最佳记录。
19.根据权利要求18所述的系统,其中自动产生的代码创建默认生存组、重叠生存组,并且单个查询为多个匹配组同时构建最佳记录。
20.根据权利要求16所述的系统,其中为多个生存组同时计算源记录。
21.根据权利要求16所述的系统,其中查询与结构化查询语言协议关联,并且所述创建与基于列的内存表关联。
22.根据权利要求16所述的系统,其中数据源的至少一个包括如下的至少一个:(i)企业资源规划数据库、(ii)客户关系管理数据库、(iii)人力资源数据库、或(iv)传统数据库。
CN201210562742.4A 2011-12-21 2012-12-21 按照生存规则合并源记录的系统和方法 Active CN103177068B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/333,073 2011-12-21
US13/333,073 US8943059B2 (en) 2011-12-21 2011-12-21 Systems and methods for merging source records in accordance with survivorship rules

Publications (2)

Publication Number Publication Date
CN103177068A CN103177068A (zh) 2013-06-26
CN103177068B true CN103177068B (zh) 2018-03-13

Family

ID=47562914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210562742.4A Active CN103177068B (zh) 2011-12-21 2012-12-21 按照生存规则合并源记录的系统和方法

Country Status (4)

Country Link
US (1) US8943059B2 (zh)
EP (1) EP2608074B1 (zh)
JP (1) JP2013137763A (zh)
CN (1) CN103177068B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188652B2 (en) 2012-10-02 2021-11-30 Mordecai Barkan Access management and credential protection
WO2014055372A2 (en) 2012-10-02 2014-04-10 Mordecai Barkan Secure computer architectures, systems, and applications
US9342695B2 (en) 2012-10-02 2016-05-17 Mordecai Barkan Secured automated or semi-automated systems
US9672360B2 (en) * 2012-10-02 2017-06-06 Mordecai Barkan Secure computer architectures, systems, and applications
US11593326B2 (en) * 2012-10-08 2023-02-28 GiantChair, Inc. Method and system for managing metadata
US20140164378A1 (en) * 2012-12-11 2014-06-12 International Business Machines Corporation Source record management for master data
TR201809901T4 (tr) * 2013-05-22 2018-07-23 Striim Inc Dağınık bir ortamda ardışık düzende olay işlemeye yönelik aparat ve yöntem.
US11093521B2 (en) * 2013-06-27 2021-08-17 Sap Se Just-in-time data quality assessment for best record creation
CN103390036A (zh) * 2013-07-16 2013-11-13 沈阳中科博微自动化技术有限公司 一种应用于封装测试生产线的历史快照存储方法
CN104298695B (zh) * 2013-07-19 2020-06-16 腾讯科技(深圳)有限公司 数据缓存方法、装置及服务器
US9607036B2 (en) 2013-08-21 2017-03-28 International Business Machines Corporation Managing a data set
US10026114B2 (en) * 2014-01-10 2018-07-17 Betterdoctor, Inc. System for clustering and aggregating data from multiple sources
US11126627B2 (en) 2014-01-14 2021-09-21 Change Healthcare Holdings, Llc System and method for dynamic transactional data streaming
US10121557B2 (en) * 2014-01-21 2018-11-06 PokitDok, Inc. System and method for dynamic document matching and merging
US10769122B2 (en) * 2014-03-13 2020-09-08 Ab Initio Technology Llc Specifying and applying logical validation rules to data
US10007757B2 (en) 2014-09-17 2018-06-26 PokitDok, Inc. System and method for dynamic schedule aggregation
JP2018506786A (ja) 2015-01-20 2018-03-08 ポキットドク インコーポレイテッド 確率的グラフモデルを用いた医療貸付システム及び方法
US20160342750A1 (en) 2015-05-18 2016-11-24 PokitDok, Inc. Dynamic topological system and method for efficient claims processing
US10366204B2 (en) 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
US10587555B2 (en) 2015-09-01 2020-03-10 Sap Portals Israel Ltd. Event log analyzer
JP2018538595A (ja) 2015-10-15 2018-12-27 ポキットドク インコーポレイテッド Apiトランザクションにおける動的メタデータ存続及び相関のためのシステム及び方法
US10922702B2 (en) 2016-04-29 2021-02-16 Dotalign, Inc. Method, apparatus, and computer-readable medium for identifying
US10102340B2 (en) 2016-06-06 2018-10-16 PokitDok, Inc. System and method for dynamic healthcare insurance claims decision support
US10108954B2 (en) 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
US10601915B2 (en) 2016-12-20 2020-03-24 Striim, Inc. Data stream processor with both in memory and persisted messaging
US10409788B2 (en) 2017-01-23 2019-09-10 Sap Se Multi-pass duplicate identification using sorted neighborhoods and aggregation techniques
WO2018231832A1 (en) 2017-06-12 2018-12-20 PokitDok, Inc. System and method for autonomous dynamic person management
CN107807996A (zh) * 2017-11-08 2018-03-16 江苏国泰新点软件有限公司 多数据源多维度数据匹配的方法、装置、设备和存储介质
CN110457348B (zh) * 2018-05-02 2022-05-10 北京三快在线科技有限公司 一种数据处理方法及装置
US10942906B2 (en) * 2018-05-31 2021-03-09 Salesforce.Com, Inc. Detect duplicates with exact and fuzzy matching on encrypted match indexes
CN109034199B (zh) * 2018-06-25 2022-02-01 泰康保险集团股份有限公司 数据处理方法及装置、存储介质和电子设备
US11830012B2 (en) * 2018-12-13 2023-11-28 Target Brands, Inc. System for U.S. customs compliance for overseas importers
CN110555071A (zh) * 2019-09-03 2019-12-10 北京明略软件系统有限公司 数据融合处理方法和装置、存储介质及电子装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294151A1 (en) * 2005-06-27 2006-12-28 Stanley Wong Method and apparatus for data integration and management
US20080319983A1 (en) * 2007-04-20 2008-12-25 Robert Meadows Method and apparatus for identifying and resolving conflicting data records

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1109115A1 (en) * 1999-12-14 2001-06-20 Sun Microsystems, Inc. Merging driver for accessing multiple database sources
US6604110B1 (en) * 2000-08-31 2003-08-05 Ascential Software, Inc. Automated software code generation from a metadata-based repository
WO2003021473A1 (en) * 2001-08-30 2003-03-13 Privasource, Inc. Data source privacy screening systems and methods
US6912549B2 (en) * 2001-09-05 2005-06-28 Siemens Medical Solutions Health Services Corporation System for processing and consolidating records
US6965886B2 (en) * 2001-11-01 2005-11-15 Actimize Ltd. System and method for analyzing and utilizing data, by executing complex analytical models in real time
AU2002367376A1 (en) * 2001-12-28 2003-07-24 Jeffrey James Jonas Real time data warehousing
US8200622B2 (en) * 2002-05-31 2012-06-12 Informatica Corporation System and method for integrating, managing and coordinating customer activities
US20040107189A1 (en) * 2002-12-03 2004-06-03 Lockheed Martin Corporation System for identifying similarities in record fields
US8166033B2 (en) * 2003-02-27 2012-04-24 Parity Computing, Inc. System and method for matching and assembling records
US20040181512A1 (en) * 2003-03-11 2004-09-16 Lockheed Martin Corporation System for dynamically building extended dictionaries for a data cleansing application
US7376680B1 (en) * 2003-04-07 2008-05-20 Charles Loren Kettler System and method for cleansing, linking and appending data records of a database
US7177877B2 (en) * 2003-05-29 2007-02-13 Electronic Data Systems Corporation Method and system for externalizing conditional logic for collecting multi-purpose objects
US7283994B2 (en) * 2003-09-15 2007-10-16 Sap Ag Merging of products into a database
US8825502B2 (en) * 2003-09-30 2014-09-02 Epic Systems Corporation System and method for providing patient record synchronization in a healthcare setting
CA2560277A1 (en) * 2004-03-19 2005-09-29 Oversight Technologies, Inc. Methods and systems for transaction compliance monitoring
US7739309B2 (en) * 2004-09-30 2010-06-15 Microsoft Corporation Method, system, and computer-readable medium for merging data from multiple data sources for use in an electronic document
EP1866808A2 (en) * 2005-03-19 2007-12-19 ActivePrime, Inc. Systems and methods for manipulation of inexact semi-structured data
US7493344B2 (en) * 2005-04-01 2009-02-17 Schlumberger Technology Corporation Method and system for dynamic data merge in databases
US7603350B1 (en) * 2006-05-09 2009-10-13 Google Inc. Search result ranking based on trust
US9286595B2 (en) * 2006-08-02 2016-03-15 Emc Corporation System and method for collecting and normalizing entitlement data within an enterprise
US7634508B2 (en) * 2007-03-29 2009-12-15 Microsoft Corporation Processing of duplicate records having master/child relationship with other records
US7966291B1 (en) * 2007-06-26 2011-06-21 Google Inc. Fact-based object merging
US9292306B2 (en) * 2007-11-09 2016-03-22 Avro Computing, Inc. System, multi-tier interface and methods for management of operational structured data
US7895174B2 (en) * 2008-03-27 2011-02-22 Microsoft Corporation Database part table junctioning
US20100223231A1 (en) * 2009-03-02 2010-09-02 Thales-Raytheon Systems Company Llc Merging Records From Different Databases
US8468160B2 (en) * 2009-10-30 2013-06-18 International Business Machines Corporation Semantic-aware record matching
US8521758B2 (en) * 2010-01-15 2013-08-27 Salesforce.Com, Inc. System and method of matching and merging records
US8341131B2 (en) * 2010-09-16 2012-12-25 Sap Ag Systems and methods for master data management using record and field based rules
US8364692B1 (en) * 2011-08-11 2013-01-29 International Business Machines Corporation Identifying non-distinct names in a set of names

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294151A1 (en) * 2005-06-27 2006-12-28 Stanley Wong Method and apparatus for data integration and management
US20080319983A1 (en) * 2007-04-20 2008-12-25 Robert Meadows Method and apparatus for identifying and resolving conflicting data records

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"一个实用的数据合并工具及其实现";王晓国 等;《计算机工程》;20030331;第29卷(第4期);第74-76页 *

Also Published As

Publication number Publication date
JP2013137763A (ja) 2013-07-11
US8943059B2 (en) 2015-01-27
CN103177068A (zh) 2013-06-26
EP2608074B1 (en) 2019-06-05
EP2608074A2 (en) 2013-06-26
US20130166552A1 (en) 2013-06-27
EP2608074A3 (en) 2013-08-07

Similar Documents

Publication Publication Date Title
CN103177068B (zh) 按照生存规则合并源记录的系统和方法
JP7273045B2 (ja) Sqlクエリプランを最適化するための次元コンテキスト伝搬技術
US20210090693A1 (en) Clinical data management system
CN108027818B (zh) 基于图的查询
CN105849726B (zh) 用于高效地支持通过分层标记数据的即席查询的通用索引
CN104123374B (zh) 分布式数据库中聚合查询的方法及装置
US10210236B2 (en) Storing and retrieving data of a data cube
CN102708130B (zh) 计算用户微细分以用于要约匹配的可扩展引擎
CN104205039B (zh) 使用兴趣驱动数据管线进行数据分析的兴趣驱动商业智能系统和方法
CN102982075B (zh) 支持访问异构数据源的系统和方法
US20150169687A1 (en) Managing data queries
CN111712809A (zh) 通过示例来学习etl规则
CN103246733A (zh) 一种基于元数据的动态表单系统及其生成方法
US20090006370A1 (en) Advanced techniques for sql generation of performancepoint business rules
CN101971176A (zh) 用于建立可扩展业务应用的类型系统
CN107506383B (zh) 一种审计数据处理方法和计算机设备
CN107291471B (zh) 一种支持可定制化数据采集的元模型框架系统
US11481603B1 (en) System for deep learning using knowledge graphs
de la Vega et al. Mortadelo: Automatic generation of NoSQL stores from platform-independent data models
CN110019314B (zh) 基于数据项分析的动态数据封装方法、客户端和服务端
US9652740B2 (en) Fan identity data integration and unification
US10924551B2 (en) IRC-Infoid data standardization for use in a plurality of mobile applications
Koupil et al. A universal approach for multi-model schema inference
US11822548B2 (en) Data warehouse framework for high performance reporting
US20200356570A1 (en) Interactive user interface having transform operators for schema transformation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: German Waldo

Applicant after: SAP AG

Address before: German Waldo

Applicant before: SAP AG

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG

GR01 Patent grant
GR01 Patent grant