数据同步方法和装置与流程

文档序号:11582803阅读:244来源:国知局
数据同步方法和装置与流程

本申请涉及数据处理技术领域,尤其涉及一种数据同步方法和装置。



背景技术:

对于至少两个数据源对等部署情况下的数据一致性,相关技术中,通过建立数据源间的双向同步通道,实现变更的双向同步,在修改就近数据源的数据的同时,将变更数据同时或延时同步至其他数据源。

但是,上述方案无法保证多数据源中数据的一致性:假设有两个数据源,数据源一和数据源二,数据源一中的数据发生了变更a,数据源二中的数据发生了变更b,在数据源一向数据源二同步的时候,数据源二也可能在向数据源一同步,两个同步的速度和到达时间都是不确定的,最终两个数据源的结果可能是变更a的结果,也可能是变更b的结果,还可能是两个不同的结果。因此,相关技术中提供的方案无法保证至少两个数据源中数据的一致性,用户体验较差。



技术实现要素:

本申请的目的旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种数据同步方法。该方法可以保证至少两个数据源中数据的一致性,提高用户体验。

本申请的第二个目的在于提出一种数据同步装置。

为了实现上述目的,本申请第一方面实施例的数据同步方法,包括:第一变更过程数据源记录第一数据源的变更过程数据,并接收第二数据源的变更过程数据,所述第一变更过程数据源与所述第一数据源连接,所述第一数据源和所述第二数据源分别为至少两个数据源中的数据源;将所述第一数据源的变更过程数据和所述第二数据源的变更过程数据发送至所述第一数据源,以便所述第一数据源将所述第一数据源的变更过程数据和所述第二数据源的变更过程数据发送至所述第二数据源。

本申请实施例的数据同步方法中,第一变更过程数据源记录第一数据源的变更过程数据,并接收第二数据源的变更过程数据,然后将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第一数据源,以便第一数据源将第一数据源的变更过程数据和第二数据源的变更过程数据发送至第二数据源,从而可以实现将数据的新增、修改和/或删除等行为归一化为变更过程数据,将至少两个数据源之间的两两双向同步转变为单向同步,确保了至少两个数据源中数据的一致性,进而可以提高用户体验。

为了实现上述目的,本申请第二方面实施例的数据同步装置,所述数据同步装置设置在第一变更过程数据源中,所述数据同步装置包括:记录模块,用于记录第一数据源的变更过程数据,所述第一变更过程数据源与所述第一数据源连接;接收模块,用于接收第二数据源的变更过程数据,所述第一数据源和所述第二数据源分别为至少两个数据源中的数据源;发送模块,用于将所述记录模块记录的第一数据源的变更过程数据和所述接收模块接收的第二数据源的变更过程数据发送至所述第一数据源,以便所述第一数据源将所述第一数据源的变更过程数据和所述第二数据源的变更过程数据发送至所述第二数据源。

本申请实施例的数据同步装置中,记录模块记录第一数据源的变更过程数据,接收模块接收第二数据源的变更过程数据,然后发送模块将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第一数据源,以便第一数据源将第一数据源的变更过程数据和第二数据源的变更过程数据发送至第二数据源,从而可以实现将数据的新增、修改和/或删除等行为归一化为变更过程数据,将至少两个数据源之间的两两双向同步转变为单向同步,确保了至少两个数据源中数据的一致性,进而可以提高用户体验。

为了实现上述目的,本申请第三方面实施例的数据同步方法包括:第一服务器接收第二服务器发送的第二数据源的第二修改数据;其中,所述第二数据源耦合于所述第二服务器;所述第一服务器根据第一数据源的第一修改数据和所述第二修改数据,变更所述第一服务器的第一数据源,并将所述第一数据源的同步数据发送至所述第二服务器;其中,所述第一数据源耦合于所述第一服务器,所述同步数据包括所述第一修改数据和所述第二修改数据。

本申请实施例的数据同步方法中,所述第一服务器接收第二服务器发送的第二数据源的第二修改数据,包括:所述第一服务器从第一临时数据源获取所述第一修改数据和所述第二修改数据;其中,所述第一临时数据源用于记录所述第一修改数据和接收所述第二修改数据。所述第一临时数据源记录所述第一修改数据和接收所述第二修改数据,包括:所述第一临时数据源以新增记录的方式记录所述第一数据源的第一修改数据和接收所述第二修改数据。所述第一服务器从第一临时数据源获取所述第一修改数据和所述第二修改数据,包括:所述第一服务器按照预设规则,从所述第一临时数据源按顺序获取所述第一修改数据和所述第二修改数据;其中,所述预设规则包括以下至少之一:时间的先后、标识的大小和业务优先级的高低。

为了实现上述目的,本申请第四方面实施例的数据同步方法包括:第二服务器将第二数据源的第二修改数据发送给第一服务器;其中,所述第二数据源耦合于所述第二服务器;所述第二服务器接收所述第一服务器发送的同步数据,并根据所述同步数据变更所述第二服务器的所述第二数据源;其中,所述第一服务器发送的同步数据包括所述第二修改数据和第一修改数据;所述第一修改数据为所述第一服务器的第一数据源的修改数据。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施方式的数据同步方法一个实施例的流程图;

图2为本申请实施方式的数据同步方法的应用场景一个实施例的示意图;

图3为本申请实施方式的数据同步装置一个实施例的结构示意图;

图4为本申请实施方式的数据同步方法又一个实施例的流程图;

图5为本申请实施方式的数据同步方法的应用场景中又一个实施例的示意图;

图6为本申请实施方式的数据同步方法的应用场景中又一个实施例的数据流示意图;

图7为本申请实施方式的数据同步方法再一个实施例的流程图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1为本申请数据同步方法一个实施例的流程图,如图1所示,上述数据同步方法可以包括:

步骤101,第一变更过程数据源记录第一数据源的变更过程数据,并接收第二数据源的变更过程数据。

其中,上述第一变更过程数据源与第一数据源连接,第一数据源和第二数据源分别为至少两个数据源中的数据源。

上述第二数据源的变更过程数据是上述第二数据源连接的第二变更过程数据源在记录第二数据源的变更过程数据之后,发送给第一变更过程数据源的。

具体地,第一变更过程数据源记录第一数据源的变更过程数据可以为:第一变更过程数据源以新增记录的方式记录第一数据源的变更过程数据。

本实施例中,将数据的变更归一化为变更过程数据,并以新增记录的方式就近写入变更过程数据源。例如:将第一数据源的变更写入第一变更过程数据源,将第二数据源的变更写入第二变更过程数据源。

其中,上述变更过程数据可以包括以下内容之一或组合:字段、值、当前行为是新增、修改还是删除等。而以新增记录的方式就近写入变更过程数据源,可以保证多次变更间的隔离性。

另外,本实施例中,第一变更过程数据源接收第二数据源的变更过程数据,也就是说,将第二数据源的变更过程数据发送至第一变更过程数据源,实现了第一数据源和第二数据源的变更过程数据的汇集。

本实施例中,第一变更过程数据源可以为第一数据源中的特定数据库表,也可以是独立于第一数据源之外的独立数据源,同样第二变更过程数据源可以为第二数据源中的特定数据库表,也可以是独立于第二数据源之外的独立数据源。

步骤102,将第一数据源的变更过程数据和第二数据源的变更过程数据发送至第一数据源,以便第一数据源将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第二数据源。

具体地,第一变更过程数据源汇集了第一数据源和第二数据源的变更过程数据之后,将第一数据源和第二数据源的变更过程数据发送至第一数据源,发送的方式包括但不限于基于时间段、发送后标记已执行等。这里的“将第一数据源和第二数据源的变更过程数据发送至第一数据源”,可以认为是将第一数据源和第二数据源的变更过程数据同步至第一数据源。

然后,第一数据源可以将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第二数据源,实现第一数据源向第二数据源的单向同步,从而实现了第一数据源和第二数据源在发生变更之后数据的一致性。其中,第一数据源和第二数据源分别为至少两个数据源中的数据源,第一数据源可以为上述至少两个数据源中的主数据源,也就是说,本实施例中,上述至少两个数据源中各数据源的变更过程数据被汇集至上述至少两个数据源中的主数据源,再由主数据源将变更过程数据单向同步至各数据源,从而可以保持相同或不同种类数据源中数据的一致性。

具体地,将第一数据源的变更过程数据和第二数据源的变更过程数据发送至第一数据源可以为:将第一数据源的变更过程数据和第二数据源的变更过程数据通过业务通道发送至第一数据源。其中,上述业务通道可以为同步通道,当然也可以为其他类型的通道,本实施例对上述业务通道的形式不作限定。

在具体实现时,将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第一数据源可以为:通过业务通道,按照预定规则将第一数据源的变更过程数据和第二数据源的变更过程数据顺序发送至第一数据源;也就是说,可以按照预定规则在上述业务通道中对第一数据源的变更过程数据和第二数据源的变更过程数据的发送进行流式控制。

其中,上述预定规则可以包括时间先后、标识大小和业务优先级的高低中的至少一个,当然上述预定规则并不仅限于此,本实施例对上述预定规则不作限定,只要可以实现对变更过程数据的发送进行流式控制即可。

上述数据同步方法中,第一变更过程数据源记录第一数据源的变更过程数据,并接收第二数据源的变更过程数据,然后将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第一数据源,以便第一数据源将第一数据源的变更过程数据和第二数据源的变更过程数据发送至第二数据源,从而可以实现将数据的新增、修改和/或删除等行为归一化为变更过程数据,将至少两个数据源之间的两两双向同步转变为单向同步,确保了至少两个数据源中数据的一致性,进而可以提高用户体验。

本申请图1所示实施例提供的数据同步方法可以应用于图2所示的应用场景中,图2为本申请数据同步方法的应用场景一个实施例的示意图。

图2中,第一变更过程数据源与第一数据源连接,第二变更过程数据源与第二数据源连接,本申请图1所示实施例提供的数据同步方法用于保证第一数据源与第二数据源中数据的一致性。

第一变更过程数据源可以为第一数据源中的特定数据库表,也可以是独立于第一数据源之外的独立数据源,同样第二变更过程数据源可以为第二数据源中的特定数据库表,也可以是独立于第二数据源之外的独立数据源。

图2中,第一数据源为主数据源。

本实施例中,将数据的变更归一化为变更过程数据,并以新增记录的方式就近写入变更过程数据源。例如:将第一数据源的变更b写入第一变更过程数据源,将第二数据源的变更a写入第二变更过程数据源。

其中,上述变更过程数据可以包括以下内容之一或组合:字段、值、当前行为是新增、修改还是删除等。而以新增记录的方式就近写入变更过程数据源,可以保证多次变更间的隔离性。

然后,通过业务通道一将变更a的变更过程数据同步至第一变更过程数据源,则第一变更过程数据源存储了变更a和变更b的变更过程数据。

接下来,第一变更过程数据源通过业务通道二,将变更a和变更b的变更过程数据同步至第一数据源。同步的方式包括但不限于基于时间段、同步后标记已执行等。

最后,第一数据源将变更a和变更b的变更过程数据通过业务通道三同步至第二数据源,实现了第一数据源和第二数据源中的数据在变更a和变更b之后的一致性。

在具体实现时,第一变更过程数据源可以通过业务通道二,按照预定规则将变更a和变更b的变更过程数据同步至第一数据源,也就是说,可以按照预定规则在上述业务通道二中对变更a和变更b的变更过程数据的发送进行流式控制。同样,也可以按照预定规则在上述业务通道三中对变更a和变更b的变更过程数据的发送进行流式控制。

其中,上述预定规则可以包括时间先后、标识大小和业务优先级的高低中的至少一个,当然上述预定规则并不仅限于此,本实施例对上述预定规则不作限定,只要可以实现对变更过程数据的发送进行流式控制即可。

图3为本申请数据同步装置一个实施例的结构示意图,本实施例中的数据同步装置可以设置在第一变更过程数据源中,实现本申请图1所示实施例的流程。

如图3所示,上述数据同步装置可以包括:记录模块31、接收模块32和发送模块33;

其中,记录模块31,用于记录第一数据源的变更过程数据,上述第一变更过程数据源与上述第一数据源连接;

接收模块32,用于接收第二数据源的变更过程数据,上述第一数据源和上述第二数据源分别为至少两个数据源中的数据源;

发送模块33,用于将记录模块31记录的第一数据源的变更过程数据和接收模块32接收的第二数据源的变更过程数据发送至第一数据源,以便第一数据源将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第二数据源。

本实施例中,接收模块32接收的第二数据源的变更过程数据是第二数据源连接的第二变更过程数据源在记录上述第二数据源的变更过程数据之后,发送给第一变更过程数据源的。

具体地,记录模块31,具体用于以新增记录的方式记录第一数据源的变更过程数据。

本实施例中,将数据的变更归一化为变更过程数据,并以新增记录的方式就近写入变更过程数据源。例如:将第一数据源的变更写入第一变更过程数据源,将第二数据源的变更写入第二变更过程数据源。

其中,上述变更过程数据可以包括以下内容之一或组合:字段、值、当前行为是新增、修改还是删除等。而以新增记录的方式就近写入变更过程数据源,可以保证多次变更间的隔离性。

另外,本实施例中,接收模块32接收第二数据源的变更过程数据,实现了第一数据源和第二数据源的变更过程数据的汇集。

本实施例中,第一变更过程数据源可以为第一数据源中的特定数据库表,也可以是独立于第一数据源之外的独立数据源,同样第二变更过程数据源可以为第二数据源中的特定数据库表,也可以是独立于第二数据源之外的独立数据源。

本实施例中,发送模块33,具体用于将第一数据源的变更过程数据和第二数据源的变更过程数据通过业务通道发送至第一数据源。发送模块33采用的发送方式包括但不限于基于时间段、发送后标记已执行等。这里的“将第一数据源的变更过程数据和第二数据源的变更过程数据通过业务通道发送至第一数据源”,可以认为是将第一数据源和第二数据源的变更过程数据通过业务通道同步至第一数据源。

然后,第一数据源可以将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第二数据源,实现第一数据源向第二数据源的单向同步,从而实现了第一数据源和第二数据源在发生变更之后数据的一致性。其中,第一数据源和第二数据源分别为至少两个数据源中的数据源,第一数据源可以为上述至少两个数据源中的主数据源,也就是说,本实施例中,上述至少两个数据源中各数据源的变更过程数据被汇集至上述至少两个数据源中的主数据源,再由主数据源将变更过程数据单向同步至各数据源,从而可以保持相同或不同种类数据源中数据的一致性。

在具体实现时,发送模块33,具体用于通过业务通道,按照预定规则将上述第一数据源的变更过程数据和第二数据源的变更过程数据顺序发送至第一数据源;也就是说,发送模块33可以按照预定规则在上述业务通道中对第一数据源的变更过程数据和第二数据源的变更过程数据的发送进行流式控制。

其中,上述预定规则可以包括时间先后、标识大小和业务优先级的高低中的至少一个,当然上述预定规则并不仅限于此,本实施例对上述预定规则不作限定,只要可以实现对变更过程数据的发送进行流式控制即可。

上述数据同步装置中,记录模块31记录第一数据源的变更过程数据,接收模块32接收第二数据源的变更过程数据,然后发送模块33将上述第一数据源的变更过程数据和上述第二数据源的变更过程数据发送至第一数据源,以便第一数据源将第一数据源的变更过程数据和第二数据源的变更过程数据发送至第二数据源,从而可以实现将数据的新增、修改和/或删除等行为归一化为变更过程数据,将至少两个数据源之间的两两双向同步转变为单向同步,确保了至少两个数据源中数据的一致性,进而可以提高用户体验。

请参阅图4,本申请实施方式还提供了一种数据同步方法。该方法可以包括以下步骤。

步骤401:第一服务器接收第二服务器发送的第二数据源的第二修改数据;其中,所述第二数据源耦合于所述第二服务器。

在本实施方式中,所述第一服务器和所述第二服务器分别可以是由具有数据存储和数据处理功能的一个计算机或多个计算机组成。其中,所述第一服务器和所述第二服务器之间可以通过有线网络或者无线网络等互联网络进行数据交互。在本实施方式中,所述第一服务器和所述第二服务器可以是设置在不同地区的不同服务器。例如,京东网第一服务器可以是设置在中国北京京东网公司总部的京东网主服务器,京东网第二服务器可以是设置在美国纽约京东网公司分部的京东网分服务器。

在本实施方式中,所述数据源可以包括用以存储指定信息数据的数据库。例如,京东网的商品信息数据源可以是用以存储京东网上所有商品的基本信息数据的数据库。其中,所述商品的基本信息可以包括以下至少之一:商品的名称、商品的价格、买家对商品的评分情况和商品的展示图片等。当然,上述列举的几种信息数据只是为了更好地说明本申请实施方式,数据源所存储的信息数据还可以是其他种类的信息数据。对此,本申请不作限定。

在本实施方式中,所述第二修改数据可以是第二服务器对第二数据源中的数据或者通过其他方式对第二数据源中的数据进行修改的更改过程数据。例如,第二数据源是京东网的商品信息数据源,相应地,第二修改数据可以是对京东网中某件商品价格的修改变更过程数据,也可以是对某件商品的描述内容的删减变更过程数据,还可以是增加或者减少某件商品在网页上的展示图片的变更过程数据等。对于修改数据的具体内容,本申请不作限定。

在本实施方式中,所述接收可以是第一服务器通过互联网络接收第二服务器发送的满足传输协议的第二修改数据的数据包。对应地,所述发送则可以是第二服务器通过互联网络向第一服务器发送满足传输协议的第二修改数据的数据包。

在本实施方式中,所述耦合可是:第二服务器与第二数据源相互独立,但第二服务器与第二数据源位于同一地区(例如,京东网第二服务器和京东网第二数据源均位于美国纽约公司分部),且第二服务器与第二数据源之间可以通过无线或有线的互联网络方式相连接,第二服务器可以通过该连接对第二数据源进行具体操作。其中,所述具体操作可以包括对第二数据源中的数据进行修改。此外,所述耦合还可以是:第二数据源是第二服务器中的一部分。即第二数据源可以是第二服务器本身内部的一个存储单元,因此第二服务器可以通过内部连线对第二数据源进行具体操作。

在本实施方式中,所述第一服务器接收第二服务器发送的第二数据源的第二修改数据,具体可以为第一服务器可以通过与第二服务器之间的互联网络连接,接收由第二服务器发送的第二修改数据。在第一服务器接收第二修改数据之前,由于第二服务器与第二数据源耦合,第二服务器可以获取第二数据源的第二修改数据,并将第二修改数据发送给第一服务器。例如,位于中国北京的京东网第一服务器可以通过互联网络接收位于不同地区的京东网第二服务器发送的第二修改数据。其中,京东网的第二服务器可以是位于美国纽约公司分部的服务器,且该服务器与同样位于美国纽约的京东网第二数据源耦合。因此,该第二服务器可以获取对应的第二数据源的第二修改数据。例如可以获取对第二数据源中京东网所展示的某件商品名称修改的更改过程数据,并将所述更改过程数据作为第二修改数据,按照网络传输协议,以数据包的形式,通过互联网络发送给第一服务器。

步骤402:所述第一服务器根据第一数据源的第一修改数据和所述第二修改数据,变更所述第一服务器的第一数据源,并将所述第一数据源的同步数据发送至所述第二服务器;其中,所述第一数据源耦合于所述第一服务器,所述同步数据包括所述第一修改数据和所述第二修改数据。

在本实施方式中,所述第一数据源可以包括用以存储指定信息数据的数据库。所述第一数据源和所述第一服务器耦合可以是:第一服务器与第一数据源可以相互独立,但第一服务器与第一数据源位于同一地区,且第一服务器与第一数据源之间可以通过无线或有线的互联网络方式相连接。第一服务器可以通过该连接对第一数据源进行具体操作。此外,所述第一数据源和所述第一服务耦合还可以是:第一数据源还可以是第一服务器中的一部分。即第一数据源可以是第一服务器本身内部的一个计算机存储单元,第一服务器可以通过内部连线对第一数据源进行具体操作。

在本实施方式中,需要说明的是,第一数据源存储的指定信息数据可以是与第二数据源存储的指定信息数据完全相同。例如,第一数据源和第二数据源都是用以存储客户信息数据的数据源,且第一数据源与第二数据源具有同等级别。则上述第一数据源和第二数据源存储的客户信息数据可以完全相同。当然,还可以是第一数据源存储的指定信息数据与第二数据源存储的指定信息数据部分相同。例如,第一数据源和第二数据源都是用以存储客户信息数据的数据源。但第一数据源与第二数据源的级别不同。其中,第一数据源的级别高于第二数据源。则上述第一数据源和第二数据源存储的客户信息数据可以部分相同。例如,对于客户信息数据中权限级别较低的数据,包括客户的姓名、性别和生日等基本数据,可以在第一数据源和第二数据源中同时存储,且第一数据源和第二数据源中所存储的该类数据完全一致。而对于客户信息数据中权限级别较高的数据,包括客户的家庭住址、联系电话和收入情况等核心数据可以只存储在第一数据源中,且对于该类型数据,第一数据源不与第二数据源同步。或者,该类型数据中的部分数据第一数据源可以与第二数据源进行同步。

在本实施方式中,所述第一修改数据可以是第一服务器对第一数据源中的数据或者通过其他方式对第一数据源中的数据进行修改的更改过程数据。

在本实施方式中,所述变更可以是第一服务器根据第一修改数据和第二修改数据,对第一数据源中的数据进行相应的修改。例如,第一修改数据是将数据源中的数据a的数值修改为b,第二修改数据是将数据源中的数据d的名称修改为c。相应的变更可以是,第一服务器根据第一修改数据和第二修改数据,将第一数据源中的数据a的数值修改为b,并将第一数据源中数据d的名称修改为c。需要说明的是,第一服务器可以根据第一修改数据和第二修改数据对第一数据源中的数据进行相应的变更。也可以按照预设的优先级单独根据第一修改数据进行数据变更。或者,还可以单独根据第二修改数据对第一数据源中的数据进行相应的变更。例如,第一修改数据和第二修改数据都是针对数据源中数据a的名称的修改。其中,第一修改数据是将数据源中的数据a的名称修改为b,第二修改数据是将数据源中的数据a的名称修改为c。且b和c并不等同。第一服务器可以根据预设的优先级,即以主数据源第一数据源的第一修改数据为准,可以单独根据第一修改数据将数据源中的数据a的名称修改为b,而不执行第二修改数据的数据变更。当然,还可以根据具体情况,设置其他相适应的预设的优先级。对此,本申请不作限定。

在本实施方式中,所述同步数据可以是第一服务器根据第一修改数据和第二修改数据对第一数据源中的数据进行相应修改的数据变更后的结果变更数据。其中,该结果变更数据可以包括第一修改数据和第二修改数据。例如,第一修改数据是将数据源中的数据a的数值修改为b,第二修改数据是将数据源中的数据d的名称修改为c,则对应的同步数据可以是将数据源中的数据a的数值修改为b,同时将数据源中的数据d的名称修改为c。当然,所述同步数据也可以是根据第一修改数据和第二修改数据,对第一数据源中的数据a和d进行相应修改以后,得到的修改后的数据a和d。

在本实施方式中,通过所述第一服务器根据第一数据源的第一修改数据和所述第二修改数据,变更所述第一服务器的第一数据源,并将所述第一数据源的同步数据发送至所述第二服务器。具体地,可以为第一服务器根据第一修改数据和第二修改数据,对第一数据源中的相应数据进行对应的修改,并将对第一数据源进行修改的变更结果数据,即同步数据,通过互联网络发送给第二服务器。其中,同步数据可以包括第一修改数据和第二修改数据。例如,京东网第一服务器可以根据第一修改数据:将商品a的价格由5元修改为10元和第二修改数据:将商品b的展示图片由a图修改为b图,对第一数据源中的商品a和商品b的信息数据进行具体的修改。即,将第一数据源中商品a的信息数据中商品a的价格修改为10元,将商品b的展示图片修改为b图。再将包括了将商品a的价格修改为10元和将商品b的展示图片修改为b图的同步数据,通过互联网络发送给第二服务器。

由上描述可见,本申请实施方式通过第一服务器先记录第一数据源的第一修改数据和接收第二数据源的第二修改数据,再根据第一修改数据和第二修改数据对第一数据源进行相应的数据变更,最后将第一数据源的同步数据发送给第二服务器以进行数据同步。从而,解决了现有数据同步方法中存在的多个数据源数据变更不一致的技术问题,确保了多元数据源中数据的一致性,提高了用户体验。

在一个具体的实施场景中,可以参阅图5。图中,京东网第一服务器和京东网第一数据源分别是位于中国北京京东网公司总部的京东网第一服务器和京东网第一数据源。其中,京东网第一数据源用于存储京东网中所有商品的信息数据,是京东网公司的主数据源。并且京东网第一数据源与京东网第一服务器耦合。而京东网第二服务器和京东网第二数据源则分别是位于美国纽约京东网公司分部的京东网第二服务器和京东网第二数据源。其中,京东网第二数据源同样用于存储京东网中所有商品的信息数据,且与京东网第二服务器耦合。此外,京东网第一服务器与京东网第二服务器可以通过互联网络相连接,以进行数据交互。当在美国纽约,对京东网第二数据源中的数据进行修改(即第二修改数据),例如将京东网中商品x的价格修改为10元。同时,在中国北京,也在对京东网第一数据源中的数据进行修改(第一修改数据),例如将京东网中商品y的功能性描述内容删除。京东网第一服务器可以根据第一修改数据和第二修改数据,对京东网第一数据源进行数据变更,例如将第一数据源中的商品x的价格修改为10元,同时将商品y的功能性描述内容删除。再将变更后京东网第一数据源的同步数据通过互联网络发送给第二服务器。其中,该同步数据可以包括第一修改数据和第二修改数据。即包括将数据源中的商品x的价格修改为10元和将商品y的功能性描述内容述删除。最后,京东网第二服务器根据同步数据对京东网第二数据源进行数据变更。所述数据同步过程中数据流的具体过程可以参阅图6。包括以下步骤。s1:第二服务器获取第二修改数据,同时第一服务器获取第一修改数据。s2:第二服务器将第二修改数据发送至第一服务器。s3:第一服务器根据第一修改数据和第二修改数据,变更第一数据源。s4:第一服务器将变更后的第一数据源的同步数据发送至第二服务器。s5:第二服务器根据同步数据,变更第二数据源。从而,实现了不同数据源数据的一致性,解决了现有同步方法中存在的多个数据源数据变更不一致的技术问题。

在本申请的一个实施方式中,第一服务器接收第二服务器发送的第二数据源的第二修改数的步骤中,可以包括:第一服务器从第一临时数据源获取所述第一修改数据和所述第二修改数据;其中,所述第一临时数据源用于记录所述第一修改数据和接收所述第二修改数据。

在本实施方式中,所述第一临时数据源可以是第一服务器中的一部分,例如是第一服务器中的一个计算机存储单元。也可以是独立于第一服务器,但与第一服务器通过有线或无线的方式相连接,且由第一服务器控制的存储设备,例如,可以是与第一服务器相连的用于存储数据的硬盘。其中,所述第一临时数据源用以记录第一修改数据和接收第二修改数据。需要说明的是,在第二服务器内部或者外部也可以布置有类似的与第二服务器相连的第二临时数据源,用以记录第二修改数据和接收同步数据。对此,本申请不再赘述。

在本实施方式中,所述获取可以是第一服务器不直接获得,或者接收第一修改数据和第二修改数据。可以先由第一临时数据源记录第一修改数据和接收第二修改数据。再由第一服务器从第一临时数据源中获取第一修改数据和第二修改数据。

在本实施方式中,所述记录可以是第一临时数据源将对第一数据源的变更过程作为一个文档数据记录下来,即第一修改数据。例如,将第一数据源中数据a的数值改为了8。第一临时数据源可以把将第一数据源中数据a的数值修改为8的这一变更过程作为第一修改数据记录在第一临时数据源中。

在本实施方式中,第一服务器从第一临时数据源获取所述第一修改数据和所述第二修改数据。具体可以为第一服务器不是直接获取第一修改数据和第二修改数据,而可以从第一临时数据源中获取第一修改数据,从第一临时数据源中获取第二修改数据。其中,第一临时数据源可以用于记录第一数据源的第一修改数据,也可以用于接收第二服务器发送的第二修改数据。例如,在中国北京,将京东网第一数据源中商品a的价格修改为5元。同时,在美国纽约,将京东网第二数据源中商品b的评价分数修改为8.6分。这时,京东网第一临时数据源可以将修改京东网第一数据源中商品a的价格为5元的变更过程作为第一修改数据,记录在第一临时数据源中。同样,京东网第二临时数据源可以将修改京东网第二数据源中商品b的评价分数为8.6分的变更过程作为第二修改数据,记录在第二临时数据源中。京东网第二服务器可以从第二临时数据源中获取第二修改数据,并将第二修改数据先发送至第一临时数据源。京东网第一服务器不直接获取第一修改数据和第二修改数据,而可以通过京东网第一临时数据源获取第一修改数据:将京东网数据源中商品a的价格修改为5元,通过京东网第一临时数据源获取第二修改数据:将京东网数据源中商品b的评价分数修改为8.6分。

在本申请的一个实施方式中,所述第一临时数据源记录所述第一修改数据和接收所述第二修改数据的步骤可以包括:所述第一临时数据源以新增记录的方式记录所述第一数据源的第一修改数据和接收所述第二修改数据。

在本实施方式中,所述新增记录可以是临时数据源将不同的多个修改数据作为独立的修改记录分别记录在临时数据源中。例如,第一临时数据源在8:10时记录了第一修改数据a。在8:11时,第一服务器对数据源进行了第二次修改。这时,第一临时数据源可以以新增记录的方式将第一数据源的第二次修改数据,作为一个独立于第一修改数据a的新的第一修改数据b,记录在第一临时数据源中。其中,第一修改数据b不会覆盖之前记录的第一修改数据a,且记录的第一修改数据a和第一修改数据b中还可以分别记录有各自对应的时间信息。例如,第一修改数据a中还可以记录有修改的时间信息8:10。

在本实施方式中,所述第一临时数据源以新增记录的方式记录所述第一数据源的第一修改数据和接收所述第二修改数据,具体可以为第一临时数据源通过新增记录的方式记录第一数据源的多个第一修改数据和接收第二数据源的多个第二修改数据。其中,所记录的多个第一修改数据之间可以互相独立,不会彼此覆盖。同样所接收的多个第二修改数据间也可以互相独立,不会彼此覆盖。例如,第一临时数据源在9:10时记录了第一数据源的第一修改数据a。在9:11时记录了第一数据源的另一次不同修改,即第一修改数据b,同时接收到了第二服务器发送的第二数据源的第二修改数据c。在9:12时接收了第二数据源的另一个第二修改数据d。其中,上述修改数据a、b、c和d均可以以新增记录的方式记录或接收于第一临时数据源中。各个修改数据之间可以彼此独立,不会互相影响。例如,不会由于第一修改数据b记录的时间晚于第一修改数据a而将第一修改数据a覆盖。也不会由于第一修改数据b和第二修改数据c同一时间记录或接收于第一临时数据源,而只记录或接收其中一个修改数据。因此,第一修改数据b和第二修改数据c都可以相互独立记录或接收存储于第一临时数据源中。

在本申请的一个实施方式中,所述第一服务器从第一临时数据源获取所述第一修改数据和所述第二修改数据,该步骤可以包括:所述第一服务器按照预设规则,从所述第一临时数据源按顺序获取所述第一修改数据和所述第二修改数据;其中,所述预规则可以包括以下至少之一:时间的先后、标识的大小和业务优先级的高低。

在本实施方式中,所述预设规则可以是第一服务器从存储有多个修改数据的第一临时数据源中获取各个修改数据的顺序规则。相应地,所述按顺序获取可以是第一服务器根据预设规则,按顺序从多个修改数据中依次获取各个修改数据。例如,第一临时数据源中同时存储有第一修改数据a和第二修改数据b,第一服务器可以根据预设规则先获取第一修改数据a,也可以根据其他预设规则先获取第二修改数据b。其中,所述预设规则具体可以是时间的先后、标识的大小或者业务优先级的高低等。具体地,第一服务器可以按照时间先后规则,从第一临时数据源中按顺序获取第一修改数据和第二修改数据。例如,第一临时数据源于9:10记录了第一修改数据,于9:11接收了第二修改数据。则第一服务器可以按照时间先后规则先获取第一修改数据,再获取第二修改数据。第一服务器也可以按照标识的大小规则,从第一临时数据源中按顺序获取第一修改数据和第二修改数据。例如,第一修改数据的标识相对比较小,第二修改数据的标识相对比较大。则第一服务器可以按照标识的大小规则先获取第二修改数据,再获取第一修改数据。第一服务器还可以按照业务优先级的高低的规则按顺序获取第一修改数据和第二修改数据。例如,第一修改数据的级别相对比较高,第二修改数据的级别相对比较低。则第一服务器可以按照业务优先级的高低的规则先获取第一修改数据,再获取第二修改数据。当然,本实施方式中所列举的三种预设规则只是为了更好的说明本申请实施方式,具体实施时,还可以根据具体情况设定其他相应的预设规则。对此,本申请不作限定。

在本实施方式中,所述第一服务器按照预设规则,从所述第一临时数据源按顺序获取所述第一修改数据和所述第二修改数据。具体地,可以为第一服务器根据预设规则,按顺序从第一临时数据源中依次获取第一修改数据和第二修改数据。例如,京东网第一服务器可以按照第一临时数据源中记录或接收的各个修改数据的时间先后的顺序,依次获取其中的修改数据。譬如,第一临时数据源先记录了第一修改数据a,再接收了第二修改数据b,最后记录了另一个第一修改数据c。这时,第一服务器可以按照时间先后顺序,先从第一临时数据源中获取第一修改数据a,再从第一临时数据源中获取第二修改数据b,最后获取第一修改数据c。当然,第一服务器也可以先将第一临时数据源中的所有第一修改数据和所有第二修改数据集合,作为一个数据,进行获取。譬如,也可以将第一临时数据源中的第一修改数据a、第二修改数据b和第一修改数据c作为一个总的数据,一起获取。

请参阅图7,本申请实施方式提供了再一个数据同步方法。该方法可以包括以下步骤。

步骤701:第二服务器将第二数据源的第二修改数据发送给第一服务器;其中,所述第二数据源耦合于所述第二服务器。

在本实施方式中,所述第一服务器和所述第二服务器分别可以是由具有数据存储和数据处理功能的一个计算机或多个计算机组成。其中,所述第一服务器和所述第二服务器之间可以通过有线网络或者无线网络等互联网络进行数据交互。在本实施方式中,所述第一服务器和所述第二服务器可以是设置在不同地方的不同服务器。例如,京东网的第一服务器可以是设置在中国北京的京东网公司总部的京东网第一服务器,京东网第二服务器可以是设置在美国纽约的京东网公司分部的京东网第二服务器。

在本实施方式中,所述第二数据源可以包括用以存储指定信息数据的数据库。例如,京东网的商品信息数据源可以是用以存储京东网上所有商品的描述信息的数据库。

在本实施方式中,所述第二修改数据可以是第二服务器对第二数据源中的数据或者通过其他方式对第二数据源中的数据进行修改的更改过程数据。例如,第二数据源是京东网的商品信息数据源,则对应的第二修改数据可以是对京东网中某件商品价格的修改,也可以是对某件商品的描述内容的删减,还可以是增加或者减少某件商品在网页上的展示图片等。

在本实施方式中,所述耦合可是:第二服务器与第二数据源相互独立,但第二服务器与第二数据源位于同一地区(例如,京东网第二服务器和京东网第二数据源均位于美国纽约),且第二服务器与第二数据源之间可以通过无线或有线的方式相连接,第二服务器可以通过该连接对第二数据源进行具体操作。例如,可以对第二数据源中的数据进行修改。此外,所述耦合还可以是:第二数据源是第二服务器中的一部分。即第二数据源可以是第二服务器本身内部的一个存储单元,第二服务器可以通过内部连线对第二数据源进行具体操作。

在本实施方式中,所述第二服务器将第二数据源的第二修改数据发送给第一服务器,具体可以为,第二服务器因为与第二数据源耦合,可以获取第二数据源的第二修改数据,再通过互联网络将第二修改数据发送给第一服务器。例如,在美国纽约,将京东网第二数据源中的数据a的名称修改为b。因为京东网第二数据源是与京东网第二服务器相连的,京东网第二服务器可以获取京东网第二数据源的第二修改数据,即将数据源中的数据a的名称改为b,并可以通过互联网络,将所述第二修改数据按照网络传输协议,发送至位于中国北京的京东网第一服务器。

步骤702:所述第二服务器接收所述第一服务器发送的同步数据,并根据所述同步数据变更所述第二服务器的所述第二数据源;其中,所述第一服务器发送的同步数据包括所述第二修改数据和第一修改数据;所述第一修改数据为所述第一服务器的第一数据源的修改数据。

在本实施方式中,所述第一数据源可以是包括用以存储指定信息数据的数据库。并且,所述第一数据源和所述第一服务器耦合。即第一服务器与第一数据源之间可以相互独立,但第一服务器与第一数据源位于同一地区,且第一服务器与第一数据源之间可以通过无线或有线的方式相连接,第一服务器可以通过该连接对第一数据源进行具体操作。此外,第一数据源还可以是第一服务器的一部分。即第一数据源可以是第一服务器本身的一个计算机存储单元,第一服务器可以通过内部连线对第一数据源进行具体操作。

在本实施方式中,需要说明的是,第一数据源存储的指定信息数据可以是与第二数据源存储的指定信息数据完全相同。例如,第一数据源和第二数据源都是用以存储客户信息数据的数据源,且第一数据源与第二数据源具有同等级别。则上述第一数据源和第二数据源存储的客户信息数据可以完全相同。当然,还可以是第一数据源存储的指定信息数据与第二数据源存储的指定信息数据部分相同。例如,第一数据源和第二数据源都是用以存储客户信息数据的数据源。但第一数据源与第二数据源的级别不同。其中,第一数据源的级别高于第二数据源。则上述第一数据源和第二数据源存储的客户信息数据可以部分相同。例如,对于客户信息数据中权限级别较低的数据,包括客户的姓名、性别和生日等基本数据,可以在第一数据源和第二数据源中同时存储,且第一数据源和第二数据源中所存储的该类数据完全一致。而对于客户信息数据中权限级别较高的数据,包括客户的家庭住址、联系电话和收入情况等核心数据可以只存储在第一数据源中,且对于该类型数据,第一数据源不与第二数据源同步。或者,该类型数据中的部分数据第一数据源可以与第二数据源进行同步。

在本实施方式中,所述第一修改数据可以是第一服务器对第一数据源中的数据或者通过其他方式对第一数据源中的数据进行修改的更改过程数据。

在本实施方式中,所述同步数据可以是第一服务器根据第一修改数据和第二修改数据对第一数据源中的数据进行相应修改的数据变更后的结果变更数据。其中,该结果变更数据可以包括第一修改数据和第二修改数据。例如,第一修改数据是将数据源中的数据a的数值修改为b,第二修改数据是将数据源中的数据d的名称修改为c,则对应的同步数据可以是将数据源中的数据a的数值修改为b,同时将数据源中的数据d的名称修改为c。当然,所述同步数据也可以是根据第一修改数据和第二修改数据对第一数据源中的数据a和数据d进行相应修改以后,得到的修改后的数据a和数据d。

在本实施方式中,所述变更可以是第二服务器根据同步数据,对第二数据源中的数据进行相应的数据修改。例如,同步数据包括第一修改数据和第二修改数据。其中,第一修改数据是将数据源中的数据a的数值修改为b,第二修改数据是将数据源中的数据d的名称修改为c。则相应的变更可以是,第二服务器根据第一修改数据和第二修改数据,将第二数据源中的数据a的数值修改为b,并将第二数据源中数据d的名称修改为c。

在本实施方式中,所述第二服务器接收所述第一服务器发送的同步数据,并根据所述同步数据变更所述第二服务器的所述第二数据源。具体地,可以为第二服务器可以通过互联网络接收第一服务器发送的同步数据。其中,该同步数据可以包括第一修改数据和第二修改数据。第二服务器可以根据该同步数据,对第二数据源中的数据进行相应的变更。例如,在美国纽约,京东网第二服务器可以通过互联网络接收到位于中国北京的京东网第一服务器发送的同步数据。其中,该同步数据可以包括第一修改数据和第二修改数据。第一修改数据是将京东网中商品c的价格改为1。第二修改数据是之前由京东网第二服务器发送的修改数据:将京东网第二数据源中的商品a的名称修改为b。京东网第二服务器可以根据上述第一修改数据和第二修改数据对京东网第二数据源进行数据变更。即,将商品c的价格修改为1,同时将京东网第二数据源中的商品a的名称修改为b。从而实现了京东网第一数据源的数据和京东网第二数据源的数据一致。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(programmablegatearray;以下简称:pga),现场可编程门阵列(fieldprogrammablegatearray;以下简称:fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1