CN107636644B - 用于在全局分布式环境中保持相互依赖的公司数据一致性的系统和方法 - Google Patents
用于在全局分布式环境中保持相互依赖的公司数据一致性的系统和方法 Download PDFInfo
- Publication number
- CN107636644B CN107636644B CN201680023260.8A CN201680023260A CN107636644B CN 107636644 B CN107636644 B CN 107636644B CN 201680023260 A CN201680023260 A CN 201680023260A CN 107636644 B CN107636644 B CN 107636644B
- Authority
- CN
- China
- Prior art keywords
- record
- data
- update
- global
- final
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
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)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
一种在全局分布式环境中保持公司数据——包括相互依赖的公司数据——的一致性的系统和方法。该系统包括:网络;与网络通信的用户接口;与网络通信的至少一个本地数据存储器,其中本地数据存储器包括与商业实体有关的多个本地数据记录;与网络通信的全局数据存储器,其中该全局数据存储器包括根据从至少一个本地数据存储器接收到的本地数据记录生成的多个全局数据记录;计算机,其包括与网络通信的处理器和存储装置,其中该处理器:确定更新记录和全局数据记录的最新更新点;并且如果更新记录的最新日期参考不同于全局数据记录,则计算机确定哪个记录将占据优先,从而产生至少一个优先记录元素;组装器;以及将最终更新记录分发给用户的分发器。
Description
背景
1.技术领域
本公开内容涉及用于在允许并行和部分更新数据的分布式环境中保持相互依赖的公司数据的一致性的方法。
2.背景技术
通常可以将相互依赖的公司数据限定为包括例如企业统计结构、联系方式、连锁(包括家谱)、分析评分数据以及任何其他所获得的和/或派生的商业信息。
对于一般的数据一致性的问题,存在许多解决方案。传统的数据库一致性技术侧重于在原始数据级别上确保数据在分布式数据库之间同步。相反,保持相互依赖的公司数据的一致性不仅仅是传统的数据库一致性挑战,还要从商业角度考虑如何保持数据的一致性。例如,风险评分是根据组织的财务数据的子集计算的。为了保持公司数据的一致性,当呈现给数据的消费者时,基础财务数据和计算出的风险评分(两者互连)必须同步。
技术问题
与并行商业处理和多技术系统相关的技术问题是,如果例如一个团队更新了财务数据,然而却根据旧的财务数据来计算风险评分,则公司数据可能会失去同步。
在某些情况下,商业数据驻留在分布式数据存储中。这种公司信息的多样性意味着各部分很可能由多个团队(例如数据输入)和多个系统(例如风险评分)独立更新。这些更新不太可能在同一时间完成,导致潜在的不一致。
为了报告的目的,这数据的一致性是重要紧急的。然而,当数据在全局范围内分发而且不是每个系统都可以始终处于在线状态时,保持一致性将成为挑战。离线数据存储需要以确保公司数据的一致性和准确性的方式进行更新,同时请记住,并不是每个数据存储都将拥有全部可能的数据。用于标准数据库复制和一致性的技术太简单而无法涵盖关于维护公司数据一致性的复杂用例。
在一般数据一致性方面存在许多技术挑战,包括:全局数据一致性和时间完整性、数据中的相互依赖的一致性、库存数据与售货数据的脱钩、售出数据的质量和延迟以及将数据组织成由市场、法规和客户定制的数百种产品。
因此,需要在允许并行和部分更新的全局分布式环境中保持相互依赖的公司数据的一致性。
发明内容
一种用于在分布式环境中保持相互依赖的公司数据的一致性的系统和方法,在该分布式环境中,允许并行更新与唯一公司身份相关的一些或全部记录,所述唯一公司身份可以包括单独组织的或者组合形式的数字、字母字符和/或其他符号。
用于在全局分布式环境中保持数据的一致性的系统,包括:
网络;
与网络通信的用户接口;
与网络通信的至少一个本地数据存储器,其中,本地数据存储器包括与商业实体有关的多个本地数据记录;
与网络通信的全局数据存储器,其中,全局数据存储器包括根据从至少一个本地数据存储器接收的本地数据记录生成的多个全局数据记录;
计算机,其包括与网络通信的处理器和存储器,其中,处理器:
(a)经由网络从用户接口接收关于商业实体的更新记录的请求;
(b)从存储在至少一个本地数据存储器中的本地数据记录获取更新记录,并且将更新记录与存储在全局数据存储器中的至少一个全局数据记录进行比较,其中,全局数据存储器包括先前从本地数据存储器中的至少一个接收的数据;
(c)确定更新记录和全局数据记录的最新更新点;以及
(d)如果更新记录的最新日期参考不同于全局数据记录,则计算机确定哪个记录占据优先,从而产生至少一个优先记录元素;
组装器,其将优先记录元素与和从至少一个其他数据存储库检索到的优先记录元素相关联的实体的附加记录元素组装在一起,从而形成最终更新记录;以及
分发器,其将最终更新记录分发给用户。
该系统还包括:翻译器,其在分发之前将最终更新记录的唯一标识符转换成由用户使用的不同的唯一标识符。翻译器通过规范转换来转换最终更新记录的唯一标识符。
该系统还包括:打包器,其在由用户指定的接口中对最终更新记录的经转换的唯一标识符进行打包。接口包括应用编程接口。
该系统还包括:用户数据存储设备,其远离本地数据存储器和全局数据存储器。
该系统还包括:在将优先记录元素传递到组装器之前,确定更新记录和/或全局数据记录是否包括相互依赖的数据元素,其中,如果相互依赖的数据元素具有不同的最新日期参考,则停止形成最终更新记录,直到相互依赖的数据元素的最新日期参考一致为止。
该系统还包括:在将优先记录元素传递到组装器之前,对存储在链接存储库中的商业实体的名称进行相互依赖性检查,以确保最终更新记录中的所链接的公司名称的正确实体名称的一致使用。
该系统还包括:售货数据存储器,其在分发给用户之前存储最终更新记录。
一种用于在全局分布式环境中保持数据的一致性的方法,该方法包括:维护至少一个本地数据存储器中的多个实体的公司数据;从用户接收用于来自公司数据的更新记录的请求;从存储在至少一个本地数据存储器中的公司数据获取更新记录,并且将更新记录与从全局数据存储器接收的至少一个全局数据记录进行比较,其中,全局数据存储器包括先前从本地数据存储器中的至少一个接收的数据;确定更新记录和全局数据记录的最新更新点;如果更新记录的最新日期参考不同于全局数据记录的最新日期,则确定哪个记录将占据优先;将优先记录元素与和从至少一个其他数据存储库检索的优先记录相关联的实体的附加记录元素组装在一起,从而形成最终更新记录;以及将最终更新记录分发给用户。
该方法还包括:在分发给用户之前,将最终更新记录的唯一标识符翻译成由用户使用的不同的唯一标识符。
该方法还包括:在由用户指定的接口中对最终更新记录进行打包。接口包括应用程序编程接口。
该方法还包括:将最终更新记录分发到远离本地数据存储器和全局数据存储器的用户数据存储器。
该方法还包括:在组装步骤和分发步骤之前,确定更新记录和/或全局数据记录是否包括相互依赖的数据元素,其中,如果相互依赖的数据元素具有不同的最新日期参考,则停止(hold up)形成最终更新记录,直到相互依赖的数据元素的最新日期参考一致为止。
该方法还包括:在组装步骤和分发步骤之前,对存储在链接存储库中的实体名称进行相互依赖性检查,以确保最终更新记录中的所链接的公司名称的正确实体名称的一致使用。
一种用于在全局分布式环境中保持公司数据的一致性的非暂态存储介质,非暂态存储介质包括被配置成与处理器一起操作以提供以下步骤的程序模块:维护至少一个本地数据存储器中的多个实体的公司数据;从用户接收用于来自公司数据的更新记录的请求;从存储在至少一个本地数据存储器中的公司数据获取更新记录,并且将更新记录与从全局数据存储器接收的至少一个全局数据记录进行比较,其中,全局数据存储器包括先前从本地数据存储器中的至少一个接收的数据;确定更新记录和全局数据记录的最新更新点;如果更新记录的最新日期参考不同于全局数据记录的最新日期,则确定哪个记录将占据优先;将优先记录元素与和从至少一个其他数据存储库检索的优先记录元素相关联的实体的附加记录元素组装在一起,从而形成最终更新记录;以及将最终更新记录分发给用户。
附图说明
将参照以下结合附图的说明书来理解本公开内容的其他和另外的目的、优点和特征,在附图中,相同的附图标记表示相同的元件的结构,并且:
图1是用于执行根据本公开内容的方法的系统的框图;
图2是组装用于请求者的数据的相互依赖性一致更新的方法的框图;
图3是图2的方法的用于组装和分发数据更新的部分的框图;
图4是图2和3的方法的用于加载和翻译用于请求者的更新的部分的框图;
图5是由图1的系统的程序模块执行的操作的流程图;以及
图6是由图1的系统的程序模块执行的进一步操作的流程图。
具体实施方式
参照图1和图2,示出了用于提供本公开内容的方法200的执行的示例性系统100。首先参照图1,系统100包括均与网络130互连的计算机105、请求者102、源201和本地售货数据存储设备226,网络130可以是专用网络或更广泛的网络例如互联网。源201包括状态存储设备(store)205、链接存储库206和增量数据存储库207和或其他数据库。在一些实施方式中,可以存在一个或更多个计算机、请求者、源和售货数据存储器。
计算机105包括处理器110和存储器115。程序模块120和程序模块125被设置在存储器115中。处理器110可操作为使用网络130、请求者102、本地售货数据存储设备(store)226以及状态存储设备205、链接存储库206和增量数据存储库207中的一个或更多个来执行程序模块120和125的指令以执行方法200。
虽然程序模块120和125被示出为已经被加载到存储器115中,但是也可以在存储装置150上配置程序模块120和125中的任何一个或两个,以用于随后加载到存储器115中。存储装置150是能够存储有程序模块125或126的有形非暂态计算机可读存储装置。存储装置150的示例包括致密盘、磁带、只读存储器、光存储介质、硬盘驱动器或者由多个硬盘驱动器组成的存储器单元以及通用串行总线(USB)闪存驱动器。可替代地,存储装置150可以是位于远程存储系统上并经由网络130耦接至计算机105的随机存取存储器或者其他类型的电子存储装置。
系统200克服了当前数据复制方法由于与公司数据有关而造成的各种缺点。也就是说,在中央数据存储库的更新连续并且按非预定的顺序发生的环境中,系统200使得整个公司数据的全部或子集以保持该数据内的相互依赖性的方式可用于请求处理。此外,系统200移除以与中央存储库相同的格式存储请求数据的任何要求。
系统200包括以下步骤:(i)从请求者102接收更新包含公司数据的本地售货数据存储设备226的请求,(ii)组装来自增量数据存储库207的所有所需的更新,以确保请求者102是最新的,(iii)包括所有相互依赖性数据,(iv)将更新分发到请求者102,(v)将所有更新加载到本地售货数据存储设备226并且应用规范名称转换,以及(vi)提供用于呈现数据的方法。
参照图2,处理器110在接收到更新请求时启动步骤(i),在框210处启动步骤(ii)和(iii),以使用组装更新处理215来组装公司数据的相互依赖性一致更新,以确保请求者102是最新的。处理器110还在框210处启动步骤(iv),以使用分发数据处理216,以按照通用格式将更新分发到请求者102和框220。处理器110还在框220处启动步骤(v),以使用加载更新处理225,以将所有更新加载到本地售货数据存储设备226中,然后加载到数据翻译处理227。
参照图3,处理器110启动组装更新处理215以响应来自请求者102的请求,其中,(a)在框305处,系统200从状态存储设备205确定当前更新状态级别,该级别确定需要多少更新,(b)在框306处,系统200进行来自链接存储库206的所有实体之间的相互依赖性检查,以及(c)在框307处,系统200组装所有更新,包括来自增量数据存储库207的更新。然后将框216处的所组装的更新数据传递到框220(图2)。
参照图4,处理器110在加载管理器框410处启动处理225,以从框216接收更新数据,并且将更新数据加载到储存售货数据框411,以存储在本地售货数据存储设备226中。处理器110进一步启动数据翻译处理227,以执行从内部规范命名约定421到由请求者102请求的命名约定的转换。然后,将经转换的数据提供给请求者102。
参照图5,流程图500指示步骤(i)、(ii)、(iii)、(iv)和(v)。处理器110执行程序模块125(图1)的指令,以执行流程图500中描述的操作。在框505处,识别新的更新。在框305处,通过访问状态存储设备205来确定最新更新点。在框510处,确定是否存在任何相互依赖性。如果不存在任何相互依赖性,则处理进行到框307。如果存在任何相互依赖性,则在框512处,通过访问链接存储库206来获取相互依赖性,然后过程进行到框307。在框307处,从状态存储设备205和/或链接存储库206获得的更新与来自增量数据存储库207的任何更新组装在一起。在框514处,更新被分发到远程加载更新框410和存储售货数据框411,以存储在本地售货数据存储设备226中。为了方法200的目的,状态存储设备205、链接存储库206和增量数据存储库207是只读数据库。
参照图6,流程图600指示用于收集更新并且将更新转换为由远程用户或供应商使用的格式的操作,即步骤(vi)和(v)。在框602处,识别对所更新数据的请求的接收。在框604处,从本地售货数据存储设备226检索所请求的更新数据。在框606处,确定是否需要对更新进行转换。例如,系统100可以使用用于数据的唯一标识符,并且供应商可以使用不同的唯一标识符。如果在框606处确定需要转换,则在框421处,将数据的字段从系统100的唯一标识符(例如规范名称)转换为请求者的不同标识符。
在框422处,更新被打包成所请求的格式。例如,数据可以通过应用程序编程接口(API)以请求者102指定的格式来提供或者使其可用。
示例
这是示出无论提供数据文件的源数据库的全局分布性质如何,都可以通过系统以保持数据一致性的方式来处理少量相互依赖的数据文件的示例,其中每个数据文件都包含描述商业实体的商业数据。
每个源文件驻留在不同的数据库存储库中。这些存储库分布在不同的地理位置处,负责更新和维护由不同团队维护的每个存储库。一些存储库可以处于中央数据库存储设施的外部。
每个源存储库同意向系统100发送更新,但是由于存储库与处理之间的差异,这些更新的频率是不同的。一些存储库将每天提供数据文件,其他存储库则每周、每月、每季度、每年或者根据需要来提供。
大体上,这些文件有三(3)种不同的类型——分隔的、固定宽度的或者XML,然而,在这些不同的广泛类型中,确切格式和数据的定义因文件而异。
这种效果意味着尽管在不同文件中存在相同的记录,但是与该记录相关的数据以不同的频率节奏更新,导致数据不一致性问题。
本示例中的“记录”指的是其中一个源文件中的输入行。每个记录都被唯一标识,每个源文件中都有相同的标识符。每条记录都是指关于单个公司的商业数据。所以在下面的示例中,“记录B”存在于全局文件和本地文件1二者中,“记录D”存在于全局文件和本地文件2二者中,“记录A”对于全局文件是唯一的,等等。
用于说明图5和图6的流程的场景
四个源文件将数据传送到系统。每个源文件在每条记录上除了包含商业数据元素之外还包含日期参考。该日期参考是指文件中的记录被更新的日期。示例日期参考是格式为YYYYMMDD的“20160115”,意思是2016年1月15日。该日期参考在图5的处理305——“确定最新的更新点”——中被使用。
1.全局文件——这是包含表示来自世界各国的输入数据的记录的文件。该文件中存在国家代码标识符,以基于地理位置分隔记录;为了简化起见,我们在示例中使用国家名称。
在本示例中,全局文件中的每个记录有七(7)个商业数据元素,并且该文件的频率是每天:
2.本地源文件1——这是包含表示来自单个国家的输入数据的记录的文件。该文件中存在国家代码标识符以标识国家。
在本示例中,本地文件中的每个记录具有两(2)个商业数据元素,并且该文件的频率是每天:
本地源文件1 | 1.商业名称 | 2.国家 | 日期参考 |
记录B | 柏林书店GMBH | 德国 | 20160114 |
记录C | 卡迪夫卡片公共有限公司 | 德国 | 20160114 |
3.本地源文件2——这是包含表示来自与本地文件1中覆盖的单个国家不同的单个国家的输入数据的记录的文件。在该文件中存在国家代码标识符以标识国家。
在本示例中,该文件中的每个记录具有两(2)个商业数据元素,并且该文件的频率是每周:
本地源文件2 | 1.财务状态 | 2.国家 | 日期参考 |
记录D | 2016/01/31 | 爱尔兰 | 20160109 |
4.删除文件——这是包含删除先前已输入数据的记录的指令的文件。
在本示例中,该文件中的每个记录具有两(2)个商业数据元素,并且该文件的频率是每月:
删除文件 | 1.删除指示符 | 2.国家 | 日期参考 |
记录E | 假 | 美国 | 20160103 |
本地售货数据存储器中的预期输出(图5和图6——框226):
所有四(4)个文件在一天内的不同时间处被接收。为了保持全局一致性,系统在处理时必须了解文件之间的依赖性。这些依赖性由适用于每个地理市场中的每个商业元素的更新规则预定。为了示例的目的,为了理解这些依赖性,下面是您将在本地售货数据存储设备226中找到的用于七(7)个商业数据元素和标有上标1至4的四(4)个场景的预期输出,以帮助说明通过系统的处理:
1用于记录B和记录C的商业名称
2用于记录A和记录D的总部商业名称
3用于记录D的财务状态
4用于记录E的删除指示符
使用上述数据更新本地售货数据存储器(226)的处理:
从四(4)个文件中可以看出,全局文件提供了本地售货数据存储设备226中预期的所有七(7)个商业数据元素。然而,其他交叠的本地源文件意味着图5中概述的处理需要确定在考虑所有依赖性时如何更新数据。
正在被处理的四(4)个文件是图5的框505的触发器——“触发新的更新”。
在框305处,评估传入文件内的数据以确定最新的更新点。文件中的日期参考连同关于元素的定制规则确定更新是否可以继续。我们将通过上面的示例,指示框305处的这一处理。
文件交叠时的多源规则:
1用于记录B和记录C的商业名称
商业名称是描述特定公司的商业名称的元素。在该系统中,商业名称可以来自多个不同的源系统。在本示例中,您可以看到该元素存在于全局文件和本地源文件1二者中。如最初所述,源系统的全局分布性质意味着不同的系统可以具有同一商业数据元素的不同表示。在本示例中,我们可以看到商业名称元素被输入为:
记录B——全局文件中的“柏林公司”和本地源文件1中的“柏林书店GMBH”
记录C——全局文件中的“卡迪夫公司”和本地源文件1中的“卡迪夫卡片公共有限公司”
在框305处,对该元素的理解包括下述规则,即本地版本的商业名称元素应该优先于全局版本的元素。重要的是请注意,用于两个文件中的该元素的日期参考与20160114(2016年1月14日)相匹配。因此,为了确定这种情况下的更新,系统不能依赖于日期参考而是依赖于预定的来源规则,以了解:对于这两个记录,本地源文件1中的元素的版本而不是全局文件中的版本。这些规则存在于框305中,以确定已对这些元素进行了更新,并且将本地版本转到下一处理步骤。
文件交叠时的日期驱动规则
4用于记录E的删除指示符
删除指示符是这样的元素,将其设置为真以通知客户数据记录不再存在,或者将其设置为假以通知客户该记录是活动的和当前的。该指示符可以来自多个源,并且需要文件中的日期参考来确定框305中的更新。
在本示例中,可以看到,该元素存在于全局文件中的记录E和删除文件中。这些文件具有不同的频率。全局文件每天被接收到,删除文件每月被接收到。因此,日期参考很重要,因为每个文件中的日期参考表示将数据更改通知给源系统并进行了更新的日期。这意味着系统需要考虑这些日期参考以确定更新。在本示例中,我们可以看到,删除指示符元素输入为:
记录E——在全局文件中为“真”,日期参考为“20160103”,并且在删除文件中为“20160114”和“假”。
在框305处,对该元素的理解包括下述规则,该规则说明在同时接收到多个文件时,应该使用所述多个文件中的最新的日期参考来确定更新。在本示例中,日期参考20160114(2016年1月14日)比20160103(2016年1月3日)更新,因此应将20160114视为最新的日期和正确的值,以推进到下一处理步骤。在本示例中,最新的值为“真”。如果该处理没有像某些传统系统那样正确地考虑该元素的更新,则将从删除文件中采用不正确的值“假”,即将该记录的错误删除状态告知给客户。由于删除文件是每月更新,因此如果不使用将全局文件视为交叠源的系统,则客户可能会关于正确的数据值失去同步达一(1)个月。
资源交叠时的状态驱动规则
3用于记录D的财务状态
财务状态是参考公司报告的销售额的日期。对于客户来说,了解销售额与财务状态之间的相互依赖性很重要,因为,更新一个而不更新另一个就没有意义。
在本示例中,可以看出,该元素存在于全局文件和本地源文件2中的记录D。这些文件具有不同的频率。全局文件每天被收到,本地源文件2每周被收到。本地源文件2的日期参考是20160109(2016年1月9日),比全局文件中的记录D的日期参考——20160114(2016年1月14日)更新。
然而,由于元素“销售”和“财务状态”之间存在关系,因此在框305处,处理必须了解该依赖性,并且适当地使用状态存储设备205进行处理。所以如果在1月9日接收到本地来源文件2,并且在1月14日接收到全局文件,则从1月9日起财务状态应该被保持状态存储设备205中,直到在1月14日接收到销售额为止。因此,状态存储设备205用于保持更新,直到接收到另外的值为止,然后才能处理移动到下一步骤。
依赖性检查/链接储存库
链接是指代两(2)个单独的数据记录之间的关系的术语。例如,1个记录可能处于另一个记录的分支位置,因此当客户在请求关于该记录的数据时,重要的是在响应中反映与该记录关联的链接记录。该相关记录被称为总部(Headquarter)或HQ。
在本示例中,在全局文件中填充了具有总部记录元素的两(2)个记录:
记录A列出了总部商业名称=柏林公司的记录B作为总部记录
记录D列出了总部商业名称=卡迪夫公司的记录C作为总部记录
然而,在全局文件中存在总部商业名称是不相关的,因为在处理510(依赖性?)处存在总部记录元素提示处理512从只读链接储存库506(获取依赖性)。
在该处理中,通过具有总部记录B并且要求记录B的总部商业名称的记录A需要查找记录B的商业名称并且返回记录B的商业名称作为记录A中的总部商业名称。
这种依赖性带回了其商业名称源自本地源文件1的记录B和C的前一个示例。由于这个原因,系统通过在处理512处执行该查找来保持一致性。得到的值将转移到下一处理步骤:
具有总部记录的记录A=具有总部商业名称=柏林书店GMBH的记录B
具有总部记录的记录D=具有总部商业名称=卡迪夫卡片公共有限公司的记录C
通过在步骤510处识别依赖性,我们可以从506返回正确的总部商业名称,以与所链接的公司的正确商业名称保持一致。如果没有基于这种理解的识别和处理,系统将导致商务名称之间的不一致。
组装、发布和存储
在处理步骤307中,将从输入文件接收的商业元素进行组装。这些元素与来自增量数据存储库207的附加日期元素组合在一起,这些附加日期元素已经存在于本示例中更新的七(7)个元素之外的这些记录中,因此,存在显示来自状态存储设备205、链接存储库506和增量数据存储库207的所有可用的元素的完整的更新记录。
被完整组装的数据然后通过顺序的处理514、410和411分发并加载到本地售货数据存储设备226。本地售货数据存储设备226在此阶段将包含系统了解的每个记录的全部和最新视图(view)。
对客户数据的销售
图6描述了最终用户访问本地售货存储设备226中存在的数据的处理。最终用户使用输入标准来请求诸如记录标识符等记录作为框602的一部分。该请求触发框604,框604提示从本地售货存储设备226检索所请求的记录。如果请求者正在使用不同的输入标准来请求记录,例如替选商业元素名称或不同的标识符,则框606确定需要进行转换。处理421处的该转换允许从本地售货存储设备226正确地检索记录。
框422将来自本地售货存储设备226的响应打包成由请求者102请求的格式。该最终包作为最终请求的数据610被递送。
特别参照其优选形式对本公开内容进行了描述,显而易见的是,在不脱离所附权利要求限定的本公开内容的范围的情况下,可以对本公开内容进行各种改变和修改。
Claims (17)
1.一种用于在全局分布式环境中保持数据的一致性的系统,包括:
网络;
与所述网络进行通信的用户接口;
与所述网络进行通信的至少一个本地数据存储装置,其中,所述本地数据存储装置包括与商业实体有关的多个本地数据记录;
与所述网络进行通信的全局数据存储装置,其中,所述全局数据存储装置包括根据从所述至少一个本地数据存储装置接收到的本地数据记录生成的多个全局数据记录;
计算机,其包括与所述网络进行通信的处理器和存储器,其中,所述处理器:
(a)经由所述网络从用户接口接收针对与商业实体有关的更新记录的请求;
(b)从存储在至少一个所述本地数据存储装置中的本地数据记录获取所述更新记录,并且将所述更新记录与存储在所述全局数据存储装置中的至少一个全局数据记录进行比较,其中,所述全局数据存储装置包括先前从所述本地数据存储装置中的至少一个接收到的数据;
(c)确定所述更新记录和所述全局数据记录的最新更新点;
(d)如果所述更新记录的最新日期参考不同于所述全局数据记录,则所述计算机确定哪个记录将占据优先,从而产生至少一个优先记录元素;
(e)确定所述更新记录和/或所述全局数据记录包括具有不同的最新日期参考的相互依赖的数据元素;
(f)在更新存储设备中保持所述相互依赖的数据元素的更新,直到接收到另外的值为止;
(g)停止形成最终更新记录,直到所述相互依赖的数据元素的最新日期参考一致为止;以及
(h)当所述相互依赖的数据元素的最新日期参考一致时,继续形成所述最终更新记录;
组装器,其将所述优先记录元素与和从至少一个其他数据存储库检索到的优先记录元素相关联的实体的附加记录元素组装在一起,从而形成所述最终更新记录,还包括,在将所述优先记录元素传递到所述组装器之前,对存储在链接存储库中的商业实体的名称进行相互依赖性检查,以确保所述最终更新记录中的所链接的公司名称的正确实体名称的一致使用;以及
分发器,其将所述最终更新记录分发给用户。
2.根据权利要求1所述的系统,还包括:
翻译器,其在分发之前将所述最终更新记录的唯一标识符转换成由所述用户使用的不同的唯一标识符。
3.根据权利要求2所述的系统,还包括:
打包器,其在由所述用户指定的接口中对所述最终更新记录的经转换的唯一标识符进行打包。
4.根据权利要求3所述的系统,其中,所述接口包括应用程序编程接口。
5.根据权利要求1所述的系统,还包括:用户数据存储设备,其远离所述本地数据存储装置和所述全局数据存储装置。
6.根据权利要求2所述的系统,其中,所述翻译器经由规范转换来转换所述最终更新记录的唯一标识符。
7.根据权利要求1所述的系统,还包括:售货数据存储装置,其在分发给所述用户之前存储所述最终更新记录。
8.一种用于在全局分布式环境中保持数据的一致性的方法,所述方法包括:
维护至少一个本地数据存储装置中的多个实体的公司数据;
从用户接收针对来自所述公司数据的更新记录的请求;
从存储在至少一个所述本地数据存储装置中的公司数据获取所述更新记录,并且将所述更新记录与从全局数据存储装置接收到的至少一个全局数据记录进行比较,其中,所述全局数据存储装置包括先前从所述本地数据存储装置中的至少一个接收到的数据;
确定所述更新记录和所述全局数据记录的最新更新点;
如果所述更新记录的最新日期参考不同于所述全局数据记录,则确定哪个记录将占据优先,从而产生至少一个优先记录元素;
确定所述更新记录和/或所述全局数据记录包括具有不同的最新日期参考的相互依赖的数据元素;
在更新存储设备中保持所述相互依赖的数据元素的更新,直到接收到另外的值为止;
停止形成最终更新记录,直到所述相互依赖的数据元素的最新日期参考一致为止;
当所述相互依赖的数据元素的最新日期参考一致时,继续形成所述最终更新记录;
将所述优先记录元素与和从至少一个其他数据存储库检索到的优先记录相关联的实体的附加记录元素组装在一起,从而形成所述最终更新记录,还包括,在组装的步骤之前,对存储在链接存储库中的实体名称进行相互依赖性检查,以确保所述最终更新记录中的所链接的公司名称的正确实体名称的一致使用;以及
将所述最终更新记录分发给所述用户。
9.根据权利要求8所述的方法,还包括:
在分发给所述用户之前,将所述最终更新记录的唯一标识符翻译成由所述用户使用的不同的唯一标识符。
10.根据权利要求8所述的方法,还包括:
在由所述用户指定的接口中对所述最终更新记录进行打包。
11.根据权利要求10所述的方法,其中,所述接口包括应用程序编程接口。
12.根据权利要求8所述的方法,还包括:将所述最终更新记录分发到远离所述本地数据存储装置和所述全局数据存储装置的用户数据存储设备。
13.一种用于在全局分布式环境中保持公司数据的一致性的非暂态存储介质,所述非暂态存储介质包括被配置成与处理器一起操作以提供以下步骤的程序模块:
维护至少一个本地数据存储装置中的多个实体的公司数据;
从用户接收针对来自所述公司数据的更新记录的请求;
从存储在至少一个所述本地数据存储装置中的公司数据获取所述更新记录,并且将所述更新记录与从全局数据存储装置接收到的至少一个全局数据记录进行比较,其中,所述全局数据存储装置包括先前从所述本地数据存储装置中的至少一个接收到的数据;
确定所述更新记录和所述全局数据记录的最新更新点;
如果所述更新记录的最新日期参考不同于所述全局数据记录,则确定哪个记录将占据优先,从而产生至少一个优先记录元素;
确定所述更新记录和/或所述全局数据记录包括具有不同的最新日期参考的相互依赖的数据元素;
在更新存储设备中保持所述相互依赖的数据元素的更新,直到接收到另外的值为止;
停止形成最终更新记录,直到所述相互依赖的数据元素的最新日期参考一致为止;
当所述相互依赖的数据元素的最新日期参考一致时,继续形成所述最终更新记录;
将所述优先记录元素与和从至少一个其他数据存储库检索到的优先记录相关联的实体的附加记录元素组装在一起,从而形成所述最终更新记录,还包括,在组装的步骤之前,对存储在链接存储库中的实体名称进行相互依赖性检查,以确保所述最终更新记录中的所链接的公司名称的正确实体名称的一致使用;以及
将所述最终更新记录分发给所述用户。
14.根据权利要求13所述的非暂态存储介质,还包括:
在分发给所述用户之前,将所述最终更新记录的唯一标识符翻译成由所述用户使用的不同的唯一标识符。
15.根据权利要求13所述的非暂态存储介质,还包括:
在由所述用户指定的接口中对所述最终更新记录进行打包。
16.根据权利要求15所述的非暂态存储介质,其中,所述接口包括应用程序编程接口。
17.根据权利要求13所述的非暂态存储介质,还包括:将所述最终更新记录分发到远离所述本地数据存储装置和所述全局数据存储装置的用户数据存储设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562136055P | 2015-03-20 | 2015-03-20 | |
US62/136,055 | 2015-03-20 | ||
PCT/IB2016/000463 WO2016151400A1 (en) | 2015-03-20 | 2016-03-18 | System and method for preserving interdependent corporate data consistency in a globally distributed environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107636644A CN107636644A (zh) | 2018-01-26 |
CN107636644B true CN107636644B (zh) | 2021-08-17 |
Family
ID=56026913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680023260.8A Active CN107636644B (zh) | 2015-03-20 | 2016-03-18 | 用于在全局分布式环境中保持相互依赖的公司数据一致性的系统和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10891283B2 (zh) |
EP (1) | EP3271835A1 (zh) |
JP (1) | JP6510083B2 (zh) |
KR (1) | KR102025222B1 (zh) |
CN (1) | CN107636644B (zh) |
AU (1) | AU2016238520B2 (zh) |
CA (1) | CA2980241C (zh) |
MX (1) | MX2017012161A (zh) |
WO (1) | WO2016151400A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877959B2 (en) * | 2018-01-17 | 2020-12-29 | Sap Se | Integrated database table access |
FR3092678B1 (fr) * | 2019-02-08 | 2024-01-05 | Amadeus Sas | Registre distribué |
CN111259027B (zh) * | 2020-01-15 | 2023-01-17 | 中国科学院软件研究所 | 一种数据一致性检测方法 |
US12061610B1 (en) * | 2021-06-21 | 2024-08-13 | Elevance Health, Inc. | Smart help platform |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216832A (zh) * | 2007-12-28 | 2008-07-09 | 腾讯科技(深圳)有限公司 | 数据同步方法及装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987506A (en) | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
US6779030B1 (en) * | 1997-10-06 | 2004-08-17 | Worldcom, Inc. | Intelligent network |
US6298345B1 (en) * | 1998-07-10 | 2001-10-02 | International Business Machines Corporation | Database journal mechanism and method that supports multiple simultaneous deposits |
JP2002116939A (ja) | 2000-10-06 | 2002-04-19 | Telecommunication Advancement Organization Of Japan | 分散型データベースシステム |
US20030110140A1 (en) * | 2001-06-28 | 2003-06-12 | Louis Morrison | Method for facilitating pricing, sale and distribution of fuel to a customer |
US7937281B2 (en) * | 2001-12-07 | 2011-05-03 | Accenture Global Services Limited | Accelerated process improvement framework |
CA2472887A1 (en) | 2003-06-30 | 2004-12-30 | Gravic, Inc. | Methods for ensuring referential integrity in multithreaded replication engines |
US20070192176A1 (en) * | 2005-08-16 | 2007-08-16 | Onischuk Daniel W | Computerized voting system |
US10049340B2 (en) * | 2004-07-08 | 2018-08-14 | One Network Enterprises, Inc. | System and computer program for a global transaction manager in a federated value chain network |
US7844973B1 (en) * | 2004-12-09 | 2010-11-30 | Oracle America, Inc. | Methods and apparatus providing non-blocking access to a resource |
US7496588B2 (en) * | 2005-06-27 | 2009-02-24 | Siperian, Inc. | Method and apparatus for data integration and management |
US7860826B2 (en) * | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US8452846B2 (en) * | 2010-08-12 | 2013-05-28 | Talari Networks Incorporated | Adaptive private network asynchronous distributed shared memory services |
US8473543B2 (en) * | 2009-07-06 | 2013-06-25 | Microsoft Corporation | Automatic conflict resolution when synchronizing data objects between two or more devices |
US9015126B2 (en) * | 2010-05-22 | 2015-04-21 | Nokia Corporation | Method and apparatus for eventually consistent delete in a distributed data store |
CN101969475A (zh) * | 2010-11-15 | 2011-02-09 | 张军 | 基于云计算的商业数据可控分发与融合应用系统 |
US9330377B2 (en) * | 2010-12-30 | 2016-05-03 | Sap Se | System and method of updating related documents |
US9805054B2 (en) * | 2011-11-14 | 2017-10-31 | Panzura, Inc. | Managing a global namespace for a distributed filesystem |
US9804928B2 (en) * | 2011-11-14 | 2017-10-31 | Panzura, Inc. | Restoring an archived file in a distributed filesystem |
US9185235B2 (en) * | 2012-08-02 | 2015-11-10 | Ab Initio Technology Llc | Aggregating data in a mediation system |
US9767499B2 (en) * | 2012-09-28 | 2017-09-19 | Oracle International Corporation | Supply chain orchestration system with configure-to-order item matching |
US8886855B2 (en) * | 2013-01-22 | 2014-11-11 | Via Technologies, Inc. | Apparatus and method for dynamic alignment of source synchronous bus signals |
US20140229431A1 (en) * | 2013-02-08 | 2014-08-14 | Appsense Limited | System and method for locally storing files from a system server |
US9378228B2 (en) * | 2013-03-08 | 2016-06-28 | Sap Se | Enterprise resource planning running on multiple databases |
US9805056B2 (en) * | 2014-06-24 | 2017-10-31 | Panzura, Inc. | Synchronizing file updates between two cloud controllers of a distributed filesystem |
-
2016
- 2016-03-18 WO PCT/IB2016/000463 patent/WO2016151400A1/en active Application Filing
- 2016-03-18 KR KR1020177029414A patent/KR102025222B1/ko active IP Right Grant
- 2016-03-18 AU AU2016238520A patent/AU2016238520B2/en active Active
- 2016-03-18 EP EP16724104.1A patent/EP3271835A1/en not_active Ceased
- 2016-03-18 JP JP2017567561A patent/JP6510083B2/ja active Active
- 2016-03-18 MX MX2017012161A patent/MX2017012161A/es unknown
- 2016-03-18 CA CA2980241A patent/CA2980241C/en active Active
- 2016-03-18 US US15/074,627 patent/US10891283B2/en active Active
- 2016-03-18 CN CN201680023260.8A patent/CN107636644B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216832A (zh) * | 2007-12-28 | 2008-07-09 | 腾讯科技(深圳)有限公司 | 数据同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2018510442A (ja) | 2018-04-12 |
KR20170137753A (ko) | 2017-12-13 |
AU2016238520A1 (en) | 2017-10-12 |
CA2980241C (en) | 2021-08-31 |
MX2017012161A (es) | 2018-07-06 |
CA2980241A1 (en) | 2016-09-29 |
KR102025222B1 (ko) | 2019-11-04 |
CN107636644A (zh) | 2018-01-26 |
AU2016238520B2 (en) | 2019-10-31 |
US10891283B2 (en) | 2021-01-12 |
US20160275135A1 (en) | 2016-09-22 |
WO2016151400A1 (en) | 2016-09-29 |
EP3271835A1 (en) | 2018-01-24 |
JP6510083B2 (ja) | 2019-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105144080B (zh) | 用于元数据管理的系统 | |
US8095618B2 (en) | In-memory caching of shared customizable multi-tenant data | |
US8332359B2 (en) | Extended system for accessing electronic documents with revision history in non-compatible repositories | |
US8396894B2 (en) | Integrated repository of structured and unstructured data | |
CN107636644B (zh) | 用于在全局分布式环境中保持相互依赖的公司数据一致性的系统和方法 | |
US10838934B2 (en) | Modifying archive data without table changes | |
CN103838817A (zh) | 数据一致性管理 | |
US20210383370A1 (en) | Enhanced multi-party user data deletion | |
US20120095950A1 (en) | Systems and methods for implementing business rules designed with cloud computing | |
US11663209B2 (en) | Distributed computer system for delivering data | |
US20170011128A1 (en) | Dynamic domain query and query translation | |
US20080027899A1 (en) | Systems and Methods for Integrating from Data Sources to Data Target Locations | |
US9805107B2 (en) | Systems and methods for dynamic partitioning in a relational database | |
US8069154B2 (en) | Autonomic rule generation in a content management system | |
US20140039970A1 (en) | Systems and methods for identifying and relating asset-tied transactions | |
US9092472B1 (en) | Data merge based on logical segregation | |
US7536398B2 (en) | On-line organization of data sets | |
US9053151B2 (en) | Dynamically joined fast search views for business objects | |
US11269903B1 (en) | Indexing and retrieval of configuration data | |
Kricke et al. | Preserving Recomputability of Results from Big Data Transformation Workflows: Depending on External Systems and Human Interactions | |
van der Lans | Creating an agile data integration platform using data virtualization | |
US7844613B2 (en) | Data warehouse with operational layer | |
CA2784504A1 (en) | Systems and methods for identifying and relating asset-tied transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1250184 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |