具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库,通常可以表现为将多个服务器利用高速计算机网络连接而成的服务器集群。分布式数据库将集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,从而提高了存储容量。此外,分布式数据库采用备份的策略实现容错,保证数据的高可靠性,同时,在读取数据的时候,客户端可以并发地从多个备份服务器同时读取,从而提高了数据访问速度。服务器集群包括采集子服务器集群10、同步子服务器集群20、存储子服务器集群30、运算子服务器集群40。
图1为本申请实施例提供的分布式关系型数据库的数据处理方法的流程图,具体包括以下步骤:
S100:采集子服务器集群获取待处理数据。
数据库可以存储的数据对象多种多样,包括但不限于交易数据库、商品数据库、用户浏览行为数据库等。数据库可以是一个数据存储结构体,也可以是若干个数据存储结构体的集合体。例如,由1024个服务器的存储器构成的数据存储结构体的集合体。数据库可以通过数据库名称、数据库地址以及数据库存储的待处理数据的属性类别来区分。数据库位于构成服务器集群的服务器。
例如,表1记载了待处理数据的信息。
表1
属性类别 |
数据库名称 |
数据库地址 |
交易 |
Trade DB 01 |
交易节点地址1 |
交易 |
Trade DB 02 |
交易节点地址2 |
…… |
…… |
…… |
登录 |
Login DB 01 |
登录节点地址1 |
…… |
…… |
…… |
其中,第一列用于标识待处理数据的属性类别,第二列用于标识数据库名称,第三列用于标识数据库地址。
采集子服务器集群10获取待处理数据,具体的可以为采集子服务器集群10根据数据库分布规则,即数据库地址的分布规律,从分布式的关系型数据库获取待处理数据。更进一步的,采集子服务器集群10记录各数据库的地址,从而可以通过地址访问各数据库进而获取数据库中的待处理数据。
在本申请提供的又一实施例中,进一步的,获取待处理数据,还包括:获取待处理数据时,同时记载待处理数据来源的数据库名称和待处理数据的属性类别,或者同时记载数据库地址和待处理数据的属性类别,或者同时记载数据库名称、数据库地址和待处理数据的属性类别。
进一步的,获取待处理数据,具体的可以为采集子服务器集群10获取待处理数据。采集子服务器集群10获取待处理数据,还包括:
采集子服务器集群10获取待处理数据时,同时记载待处理数据来源的数据库名称和待处理数据的属性类别,或者同时记载数据库地址和待处理数据的属性类别,或者同时记载数据库名称、数据库地址和待处理数据的属性类别。
数据库名称和数据库地址之间具有确定的映射关系。因此,采集子服务器集群10可以根据数据库名称查出数据库地址,同样,采集子服务器集群10也可以根据数据库地址查出数据库名称。为了进行数据来源的追踪,在本申请实施例中,采集子服务器集群10获取待处理数据时,可以采取以下三种方式中的一种:
记载待处理数据来源的数据库名称和待处理数据的属性类别;或者
记载数据库地址和待处理数据的属性类别;或者
数据库名称、数据库地址和待处理数据的属性类别。
在该实施方式中,可以通过数据库名称和/或数据库地址追踪待处理数据的来源。
S200:同步子服务器集群同步待处理数据,生成同步数据。
同步子服务器集群20将若干不同来源的待处理数据进行同步,生成同步数据,用以处理某段时间内新增的数据。在本申请提供的实施例中,同步子服务器集群20同步待处理数据,生成同步数据,具体包括:
同步子服务器集群20确定第一同步点和第二同步点;
同步子服务器集群20筛选待处理数据中位于第一同步点和第二同步点之间的数据,生成同步数据。
同步子服务器集群20将若干不同来源的待处理数据进行同步,生成同步数据,用以处理某段时间内新增的数据。
具体的,同步子服务器集群20确定第一同步点和第二同步点,然后,同步子服务器集群20筛选待处理数据中位于第一同步点和第二同步点之间的数据,生成同步数据。
第一同步点为某个时间点。第二同步点可以为与第一同步点具有一定时间间隔的时间点。第一同步点和第二同步点之间的时间间隔可以根据实际情形,适应性设置。例如,可以是一周,或者是一日,还可以是其它预设的时长。
例如,表2记载了待处理数据的同步信息。
表2
交易 |
Trade DB 01 |
交易节点地址1 |
Trade_Time |
交易 |
Trade DB 02 |
交易节点地址2 |
Trade_Time |
…… |
…… |
…… |
…… |
登录 |
Login DB 01 |
登录节点地址1 |
Login_Time |
…… |
…… |
…… |
…… |
其中,第四列用于标识待处理数据的同步标志。
如表2中所示,不同属性类别的数据,具有不同的同步标志。
同步数据具有属性类别。属性类别包括但不限于交易类、特定行为类。
对于交易类属性类别的数据,筛选交易时间处于第一同步点和第二同步点之间的数据,生成同步数据。
对于特定行为类数据,筛选特定行为时间处于第一同步点和第二同步点之间的数据,生成同步数据。
S300:存储子服务器集群根据同步数据的属性类别定向存储所述同步数据。
具体的,同步数据具有属性类别。同步待处理数据,生成同步数据,可以为存储子服务器集群30根据同步数据的属性类别定向存储所述同步数据。存储子服务器集群30根据同步数据的属性类别定向存储所述同步数据,具体包括:
存储子服务器集群30将同一属性类别的同步数据根据分配规则存入指定的数据库。
更进一步的,在本申请提供的又一实施例中,属性类别包括交易类。交易类同步数据具有交易标识码。
将同一属性类别的同步数据根据分配规则存入指定的数据库,具体包括:
当同步数据的属性类别为交易类时,选择交易类同步数据预存储规则;
根据交易类同步数据预存储规则,计算交易标识码的MD5码值;
计算所述码值对预设参数的余值;
将交易类的同步数据存储至与所述余值对应的数据库。
具体的,将同一属性类别的同步数据根据分配规则存入指定的数据库,可以为存储子服务器集群30将同一属性类别的同步数据根据分配规则存入指定的数据库。存储子服务器集群30将同一属性类别的同步数据根据分配规则存入指定的数据库,具体包括:当同步数据的属性类别为交易类时,存储子服务器集群30选择交易类同步数据预存储规则;
存储子服务器集群30根据交易类同步数据预存储规则,计算交易标识码的MD5码值;
存储子服务器集群30计算所述码值对预设参数的余值;
存储子服务器集群30将交易类的同步数据存储至与所述余值对应的数据库。
请参见表3。
表3
属性类别 |
数据库名称 |
数据库地址 |
同步方式 |
预存储规则 |
交易 |
Trade DB 01 |
交易节点地址1 |
Trade_Time |
MD5(Trade_NO) |
交易 |
Trade DB 02 |
交易节点地址2 |
Trade_Time |
MD5(Trade_NO) |
…… |
…… |
…… |
…… |
…… |
登录 |
Login DB 01 |
登录节点地址1 |
Login_Time |
Range(USER_ID) |
…… |
…… |
…… |
…… |
…… |
下面举例来说明。假设,MD5(Trade_NO)表示计算交易标识码的MD5码值。在本申请实施例中,进一步计算所述码值对预设参数——例如100——的余值。假设,余值为30,那么,将同步数据存储至与余值30对应的数据库。
更进一步的,在本申请提供的又一实施例中,属性类别包括特定行为类。特定行为类数据具有行为主体标识码。将同一属性类别的同步数据根据分配规则存入指定的数据库,具体包括:
当同步数据的属性类别为特定行为类时,选择特定行为类同步数据预存储规则;
根据特定行为类同步数据预存储规则,计算行为主体标识码所属的区间代码;
将特定行为类同步数据存储至与所述区间代码对应的数据库。
具体的,将同一属性类别的同步数据根据分配规则存入指定的数据库,可以为存储子服务器集群30将同一属性类别的同步数据根据分配规则存入指定的数据库。存储子服务器集群30将同一属性类别的同步数据根据分配规则存入指定的数据库,具体包括:
当同步数据的属性类别为特定行为类时,存储子服务器集群30选择特定行为类同步数据预存储规则;
存储子服务器集群30根据特定行为类同步数据预存储规则,计算行为主体标识码所属的区间代码;
存储子服务器集群30将特定行为类同步数据存储至与所述区间代码对应的数据库。
下面举例来说明。假设,Range(USER_ID)表示计算行为主体标识码所属的区间代码。在本申请实施例中,假设主体标识码位于区间代码为3的区间。那么,将同步数据存储至与区间代码3对应的数据库。
进一步的,一个余值或一个区间代码可以对应多个数据库。在读取数据的时候,客户端可以并发地从存储子服务器集群30内的多个数据库同时读取,从而提高了数据访问速度。
在本申请实施例提供的数据处理方法中,根据同步数据的属性类别定向存储同步数据。定向存储的同步数据满足预设的存储条件,因而数据处理方法可以根据预设的存储条件设计,因而数据处理方法相对简易。相较于Hadoop框架下需要设计复杂的MapReduce应用程序以解决每个部分在节点上的分布与执行,数据处理方法相对简易。同时,定向存储于同一位置的同步数据之间不需要通信,因而,通信带宽要求相对低。
在本申请提供的又一实施例中,所述方法还包括:
处理定向存储的所述同步数据,生成结果数据。
具体的,处理定向存储的所述同步数据,生成结果数据,可以为运算子服务器集群处理定向存储的所述同步数据,生成结果数据。
进一步的,在本申请提供的又一实施例中,运算子服务器集群处理定向存储的所述同步数据,生成结果数据,具体包括:
运算子服务器集群筛选同步数据中满足第一条件的第一中间数据;
运算子服务器集群处理第一中间数据,生成结果数据。
进一步的,在本申请提供的又一实施例中,运算子服务器集群包括本地节点服务器和公共节点服务器。运算子服务器集群处理定向存储的所述同步数据,生成结果数据,具体包括:
本地节点服务器筛选本地的同步数据中满足第一条件的第一中间数据;
本地节点服务器汇总第一中间数据生成第二中间数据;
本地节点服务器向公共节点服务器发送第二中间数据;
公共节点服务器汇总第二中间数据生成结果数据。
例如,运算子服务器集群40的本地节点服务器筛选本地的同步数据中满足第一条件的第一中间数据。具体的,本地节点服务器根据筛选规则,筛选单笔交易金额大于100元的第一中间数据。本地节点服务器汇总第一中间数据生成第二中间数据。具体的,本地节点服务器汇总当天单笔交易金额大于100元的第一中间数据,生成第二中间数据。本地节点服务器向公共节点服务器发送第二中间数据,公共节点服务器汇总第二中间数据生成结果数据。具体的,公共节点服务器接收并汇总若干本地节点服务器的第二中间数据生成结果数据。
应当指出的是,这里仅筛选、汇总可以根据具体业务对象的不同,进行适应性设计。例如,筛选、汇总的先后顺序、层次、具体方式等。
在本申请提供的又一实施例中,所述方法还包括:
存储子服务器集群30根据同步数据的属性类别定向存储所述同步数据后,向运算子服务器集群40发送第一指令信息;
运算子服务器集群40处理定向存储的所述同步数据,生成结果数据。
进一步的,所述方法还包括:存储子服务器集群30存储第一指令信息。
在本申请实施例提供的技术方案中,存储子服务器集群30完成同步数据的定向存储后,向运算子服务器集群40发送第一指令信息。运算子服务器集群40接收到内部生成的第一指令信息后,根据指令处理定向存储的同步数据,生成结果数据。进一步的,存储子服务器集群30还可以存储生成的第一指令信息备查。
在本申请提供的又一实施例中,所述方法还包括:
采集子服务器集群10获取并向运算子服务器集群40发送第二指令信息;
运算子服务器集群40接收第二指令信息,并根据第二指令信息处理定向存储的同步数据,生成结果数据。
在本申请实施例提供的技术方案中,采集子服务器集群10可以获取外部的第二指令信息。然后,采集子服务器集群10向运算子服务器集群40发送该第二指令信息。运算子服务器集群40接收到外部发出的第二指令信息后,根据指令处理定向存储的同步数据,生成结果数据。
应当指出的是,这里的第二指令信息可以来源于服务器集群外部,而第一指令信息则可以来源于服务器集群内部。
以上是本申请实施例提供的数据处理的方法,基于同样的思路,本申请还提供分布式关系型数据库的数据处理***1。请参照图2,数据处理***1包括:
采集子服务器集群10,用于获取待处理数据;
同步子服务器集群20,用于同步待处理数据,生成同步数据;
存储子服务器集群30,用于根据同步数据的属性类别定向存储所述同步数据;
其中,所述数据库位于构成服务器集群的服务器。
在本申请提供的又一实施例中,采集子服务器集群10还用于:
获取待处理数据时,同时记载待处理数据来源的数据库名称和待处理数据的属性类别,或者同时记载数据库地址和待处理数据的属性类别,或者同时记载数据库名称、数据库地址和待处理数据的属性类别。
在本申请提供的又一实施例中,同步子服务器集群20用于同步待处理数据,生成同步数据,具体用于:
确定第一同步点和第二同步点;
筛选待处理数据中位于第一同步点和第二同步点之间的数据,生成同步数据。
在本申请提供的又一实施例中,同步数据具有属性类别。存储子服务器集群30,用于根据同步数据的属性类别定向存储所述同步数据,具体用于:
将同一属性类别的同步数据根据分配规则存入指定的数据库。
在本申请提供的又一实施例中,属性类别包括交易类。交易类同步数据具有交易标识码。存储子服务器集群30,用于将同一属性类别的同步数据根据分配规则存入指定的数据库,具体用于:
当同步数据的属性类别为交易类时,选择交易类同步数据预存储规则;
根据交易类同步数据预存储规则,计算交易标识码的MD5码值;
计算所述码值对预设参数的余值;
将交易类的同步数据存储至与所述余值对应的数据库。
在本申请提供的又一实施例中,属性类别包括特定行为类。特定行为类数据具有行为主体标识码。存储子服务器集群30,用于将同一属性类别的同步数据根据分配规则存入指定的数据库,具体用于:
当同步数据的属性类别为特定行为类时,选择特定行为类同步数据预存储规则;
根据特定行为类同步数据预存储规则,计算行为主体标识码所属的区间代码;
将特定行为类同步数据存储至与所述区间代码对应的数据库。
在本申请提供的又一实施例中,***还包括运算子服务器集群40。运算子服务器集群40用于处理定向存储的所述同步数据,生成结果数据。
在本申请提供的又一实施例中,运算子服务器集群40用于处理定向存储的所述同步数据,生成结果数据,具体包括:
筛选同步数据中满足第一条件的第一中间数据;
处理第一中间数据,生成结果数据。
在本申请提供的又一实施例中,运算子服务器集群40包括本地节点服务器和公共节点服务器。运算子服务器集群40,用于处理同步数据,生成结果数据,具体用于:
本地节点服务器筛选同步数据中满足第一条件的第一中间数据;
本地节点服务器汇总第一中间数据生成第二中间数据;
本地节点服务器向公共节点服务器发送第二中间数据;
公共节点服务器汇总第二中间数据生成结果数据。
在本申请提供的又一实施例中,存储子服务器集群30还用于:存储同步数据后,向运算子服务器集群40发送第一指令信息。运算子服务器集群40还用于:接收第一指令信息,并根据第一指令信息处理定向存储的同步数据,生成结果数据。
在本申请提供的又一实施例中,存储子服务器集群30还用于存储第一指令信息。
在本申请提供的又一实施例中,采集子服务器集群10还用于:获取并向运算子服务器集群40发送第二指令信息。运算子服务器集群40还用于:接收第二指令信息,并根据第二指令信息处理定向存储的同步数据,生成结果数据。
本申请实施例提供的数据处理***中,在本申请实施例提供的数据处理方法中,根据同步数据的属性类别定向存储同步数据。定向存储的同步数据满足预设的存储条件,因而数据处理方法可以根据预设的存储条件设计,因而数据处理方法相对简易。相较于Hadoop框架下需要设计复杂的MapReduce应用程序以解决每个部分在节点上的分布与执行,数据处理方法相对简易。同时,定向存储于同一位置的同步数据之间不需要通信,因而,通信带宽要求相对低。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数值处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数值处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数值处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数值处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数值结构、程序的模块或其他数值。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数值信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。