增量数据的存储方法及装置、存储介质、电子装置与流程

文档序号:26050603发布日期:2021-07-27 15:25阅读:127来源:国知局
增量数据的存储方法及装置、存储介质、电子装置与流程

本发明实施例涉及通信领域,具体而言,涉及一种增量数据的存储方法及装置、存储介质、电子装置。



背景技术:

在数据库使用过程中,当数据库的存储结构、数据安全无法满足业务需求时,需要将数据库中的数据迁移、备份到能够满足业务需求的新数据库中,这就涉及对大量数据进行迁移的问题;同时在全球数据安全区域性保护愈发强烈的背景下,使得全球数据存储面临更大挑战。越来越多的国家提出,需要将本区域内的数据保存或者备份到本区域。

现有技术中在对增量数据进行分发存储时,只简单描述了其有消息分发策略,并没有消息介绍其分发策略,也没有解决全球化数据动态分发的问题。

针对现有技术中存在的增量数据全球化分区域存储的问题,相关技术中尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种增量数据的存储方法及装置、存储介质、电子装置,以至少解决相关技术中增量数据全球化分区域存储的问题。

根据本发明的一个实施例,提供了一种增量数据的存储方法,包括:确定获取的增量数据对应的区域编码;从确定的上述区域编码与存储节点之间的映射关系中确定上述增量数据对应的目标存储节点;按照上述目标存储节点将上述增量数据存储至目标数据库。

根据本发明的另一个实施例,提供了一种增量数据的存储装置,包括:第一确定模块,用于确定获取的增量数据对应的区域编码;第二确定模块,用于从确定的上述区域编码与存储节点之间的映射关系中确定上述增量数据对应的目标存储节点;第一存储模块,用于按照上述目标存储节点将上述增量数据存储至目标数据库。

在一个示例性实施例中,上述第一确定模块,包括:第一解析单元,用于从上述增量数据所在的消息队列中解析上述增量数据对应的用户信息;第一确定单元,用于从上述用户信息的区域属性中确定上述增量数据对应的区域编码。

在一个示例性实施例中,上述第一确定模块,包括:第二确定单元,用于在从上述增量数据所在的消息队列中未解析出上述增量数据对应的用户信息的情况下,确定获取上述增量数据的客户端的话联网协议ip地址;第二解析单元,用于按照上述ip地址解析上述增量数据所在的区域;第三确定单元,用于利用上述增量数据所在的区域确定上述增量数据对应的区域编码。

在一个示例性实施例中,上述第一确定模块,包括:自定义单元,用于在从上述增量数据所在的消息队列中未解析出上述增量数据对应的用户信息,且未获取上述增量数据的客户端的话联网协议ip地址的情况下,自定义上述增量数据对应的区域编码,以确定获取的增量数据对应的区域编码。

在一个示例性实施例中,上述自定义单元,包括:第一划分子单元,用于将全球时区划分为n个编码区域,其中,上述n是大于1的自然数;第二划分子单元,用于按照生成上述增量数据的时间,将上述增量数据划分至上述n个编码区域中与生成上述增量数据的时间对应的目标编码区域中;第一确定子单元,用于基于上述目标编码区域对应的区域编码确定上述增量数据对应的区域编码。

在一个示例性实施例中,上述装置还包括,第三确定模块,用于从确定的上述区域编码与存储节点之间的映射关系中确定上述增量数据对应的目标存储节点之前,确定上述区域编码与上述存储节点之间的映射关系;存储模块,用于将上述映射关系存储至远程字典服务缓存中。

在一个示例性实施例中,上述装置还包括:变更模块,用于将上述映射关系存储至远程字典服务缓存中之后,在上述区域编码对应的上述存储节点发生变更的情况下,在上述远程字典缓存中变更上述区域编码与上述存储节点之间的映射关系。

在一个示例性实施例中,上述装置还包括:第四确定模块,用于确定获取的增量数据对应的区域编码之前,在确定与上述增量数据对应的数据表的情况下,确定上述增量数据的事件属性;第一封装模块,用于封装上述事件属性和上述增量数据,得到封装数据;第一发送模块,用于将上述封装数据发送至消息队列中。

根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,通过确定获取的增量数据对应的区域编码;从确定的区域编码与存储节点之间的映射关系中确定增量数据对应的目标存储节点;按照目标存储节点将增量数据存储至目标数据库。实现了基于获取的增量数据的区域编码确定出增量数据对应的存储节点的目的。因此,可以解决相关技术中增量数据全球化分区域存储的问题,达到增量数据分区域存储的效果。

附图说明

图1是本发明实施例的一种增量数据的存储方法的移动终端的硬件结构框图;

图2是根据本发明实施例的增量数据的存储方法的流程图;

图3是根据本发明实施例的整体流程图;

图4是根据本发明实施例的确定区域编码的流程图;

图5是根据本发明实施例的动态分区的流程图;

图6是根据本发明实施例的系统模块示意图;

图7是根据本发明实施例的增量数据的存储装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明的实施例。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种增量数据的存储方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的增量数据的存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种增量数据的存储方法,图2是根据本发明实施例的增量数据的存储方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,确定获取的增量数据对应的区域编码;

步骤s204,从确定的区域编码与存储节点之间的映射关系中确定增量数据对应的目标存储节点;

步骤s206,按照目标存储节点将增量数据存储至目标数据库。

其中,上述步骤的执行主体可以为终端等,但不限于此。

本实施例包括但不限于应用于对增量数据分区域存储的场景中。

通过上述步骤,通过确定获取的增量数据对应的区域编码;从确定的区域编码与存储节点之间的映射关系中确定增量数据对应的目标存储节点;按照目标存储节点将增量数据存储至目标数据库。实现了基于获取的增量数据的区域编码确定出增量数据对应的存储节点的目的。因此,可以解决相关技术中增量数据全球化分区域存储的问题,达到增量数据分区域存储的效果。

在一个示例性实施例中,确定获取的增量数据对应的区域编码,包括:

s1,从增量数据所在的消息队列中解析增量数据对应的用户信息;

s2,从用户信息的区域属性中确定增量数据对应的区域编码。

在本实施例中,增量数据设置在消息队列中,通过解析消息队列,得到增量数据,根据分区匹配规则,来确定该数据对应的区域编码。

在一个示例性实施例中,确定获取的增量数据对应的区域编码,包括:

s1,在从增量数据所在的消息队列中未解析出增量数据对应的用户信息的情况下,确定获取增量数据的客户端的话联网协议ip地址;

s2,按照ip地址解析增量数据所在的区域;

s3,利用增量数据所在的区域确定增量数据对应的区域编码。

在本实施例中,首先根据用户信息来确定其区域信息。

在一个示例性实施例中,确定获取的增量数据对应的区域编码,包括:

s1,在从增量数据所在的消息队列中未解析出增量数据对应的用户信息,且未获取增量数据的客户端的话联网协议ip地址的情况下,自定义增量数据对应的区域编码,以确定获取的增量数据对应的区域编码。

在一个示例性实施例中,自定义增量数据对应的区域编码,包括:

s1,将全球时区划分为n个编码区域,其中,n是大于1的自然数;

s2,按照生成增量数据的时间,将增量数据划分至n个编码区域中与生成增量数据的时间对应的目标编码区域中;

s3,基于目标编码区域对应的区域编码确定增量数据对应的区域编码。

在本实施例中,例如,将全球按照时区分为三大区域编码code,以0时区为中心,分为α(西12-西5),β(西4-东4),γ(东5-东12)。进入自定义分区规则的数据,都是在之前的匹配规则中未匹配到任何区域的。该规则假定,所有记录都是在用户所在区的8am-4pm操作产生的。由此规则,将一条未知区域的数据,分配到其中一个大区region中。α,β,γ对应的时间区间分别为α[-12,-5],β[-4,4],γ[5,12]。

在一个示例性实施例中,从确定的区域编码与存储节点之间的映射关系中确定增量数据对应的目标存储节点之前,方法还包括:

s1,确定区域编码与存储节点之间的映射关系;

s2,将映射关系存储至远程字典服务缓存中。

在本实施例中,可以预先将区域编码code与存储节点region的对应关系写入redis缓存。

在一个示例性实施例中,将映射关系存储至远程字典服务缓存中之后,方法还包括:

s1,在区域编码对应的存储节点发生变更的情况下,在远程字典缓存中变更区域编码与存储节点之间的映射关系。

在本实施例中,当区域code对应的存储节点region发生改变时,只需将redis的映射关系变更,并且新增x区的数据执行服务和目标数据库,数据分区服务就会往新的区域的消息队列发送数据。可达到增量数据动态保存至目标数据库的功能,对其他业务都没有影响。

在一个示例性实施例中,确定获取的增量数据对应的区域编码之前,方法还包括:

s1,在确定与增量数据对应的数据表的情况下,确定增量数据的事件属性;

s2,封装事件属性和增量数据,得到封装数据;

s3,将封装数据发送至消息队列中。

在本实施例中,可以预先设定好需要分区的表名,同步增量数据的工具canal组件解析的二进制日志binlog数据,当匹配到对应的表时,根据eventtype,将事件分为删除delete、更新upadte、插入insert,解析每一个column,获取分区索引index,同时组装最终能执行的sql语句。将这两部分数据分装成json对象,发送至消息队列。

下面结合具体实施例对本发明进行详细说明:

如图3所示,是本实施例中的整体流程图,包括以下步骤:

s301:源数据库:开启二进制日志写入功能,并设置binlog-format为行模式row模式;

s302:数据预处理模块:预先设定好需要分区的表名,canal组件解析的binlog数据,当匹配到对应的表时,根据事件属性eventtype,将事件分为delete、upadte、insert,解析每一个只读属性column,获取分区索引index(函数是返回表或区域中的值或值的引用。两种形式,数组形式和引用形式。数组形式通常返回数值或数值数组,引用形式通常返回引用),同时组装最终能执行的sql语句。将这两部分数据分装成对象简谱(javascriptobjectnotation,简称为json)对象,发送至消息队列。

例:当产生的binlog为用户表时,json对象为:

index可以为用户id,订单id,设备id等。

s303:数据分区模块:预先将区域编码code与存储节点region的对应关系写入远程字典服务(remotedictionaryserver)redis缓存。该模块消费并解析消息队列中的数据,根据分区匹配规则,来确定该数据对应的区域编码。如图4所示,由多个维度来匹配确定。首先根据用户信息来确定其区域信息,当无法通过已有信息判断时,再通过获取客户端操作时的互联网协议地址(internetprotocoladdress,简称为,ip)地址解析其所在区域,当以上信息都无法确定区域时,采用自定义策略来分配区域。

自定义策略,将全球按照时区分为三大区域编码code,以0时区为中心,分为α(西12-西5),β(西4-东4),γ(东5-东12)。进入自定义分区规则的数据,都是在之前的匹配规则中未匹配到任何区域的。该规则假定,所有记录都是在用户所在区的8am-4pm操作产生的。由此规则,将一条未知区域的数据,分配到其中一个大区region中。α,β,γ对应的时间区间分别为α[-12,-5],β[-4,4],γ[5,12]。

分区公式:r(α,β,γ)=12-t,其中t为utc的时间整点数。

例:一条通用时间协调(universaltimechiming,简称为utc),时间03:15产生的数据,t为3,则区域code为γ。

获取到区域code后,从服务本地缓存中的存储节点region信息,发送至不同存储节点的消息队列。服务本地缓存会定时从redis中同步一遍code与region的映射关系。

动态分区规则,如图5所示,当区域code对应的存储节点region发生改变时,只需将redis的映射关系变更,并且新增x区的数据执行服务和目标数据库,数据分区服务就会往新的区域的消息队列发送数据。即可达到增量数据动态保存至目标数据库的功能,对其他业务都没有影响。

例:原来区域a的数据是存在regiona中,当区域a要求必须将本区域的数据存到regionx中时,只需改变区域a对应的region从a改为x,即可实现。

s304:数据执行模块:消费本区域消息队列中的数据,写入目标数据库。

s305:系统模块如图6所示。

综上所述,本实施例根据用户信息来确定其区域信息,当无法通过已有信息判断时,再通过获取客户端操作时的ip地址解析其所在区域,当以上信息都无法确定区域时,采用自定义策略来分配区域。自定义策略将全球按时区分为三个大区,并根据日志产生的时间,来分配区域。服务本地缓存会定时从redis中同步一遍code与region的映射关系,当区域code对应的存储节点region发生改变时,只需将redis的对应关系变更,并且新增x区的数据执行服务和目标数据库,即可达到增量数据动态保存至目标数据库的功能,对其他业务都没有影响。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种增量数据的存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7是根据本发明实施例的增量数据的存储装置的结构框图,如图7所示,该装置包括:

第一确定模块72,用于确定获取的增量数据对应的区域编码;

第二确定模块74,用于从确定的区域编码与存储节点之间的映射关系中确定增量数据对应的目标存储节点;

第一存储模块76,用于按照目标存储节点将增量数据存储至目标数据库。

在一个示例性实施例中,上述第一确定模块,包括:

第一解析单元,用于从上述增量数据所在的消息队列中解析上述增量数据对应的用户信息;

第一确定单元,用于从上述用户信息的区域属性中确定上述增量数据对应的区域编码。

在一个示例性实施例中,上述第一确定模块,包括:

第二确定单元,用于在从上述增量数据所在的消息队列中未解析出上述增量数据对应的用户信息的情况下,确定获取上述增量数据的客户端的话联网协议ip地址;

第二解析单元,用于按照上述ip地址解析上述增量数据所在的区域;

第三确定单元,用于利用上述增量数据所在的区域确定上述增量数据对应的区域编码。

在一个示例性实施例中,上述第一确定模块,包括:

自定义单元,用于在从上述增量数据所在的消息队列中未解析出上述增量数据对应的用户信息,且未获取上述增量数据的客户端的话联网协议ip地址的情况下,自定义上述增量数据对应的区域编码,以确定获取的增量数据对应的区域编码。

在一个示例性实施例中,上述自定义单元,包括:

第一划分子单元,用于将全球时区划分为n个编码区域,其中,上述n是大于1的自然数;

第二划分子单元,用于按照生成上述增量数据的时间,将上述增量数据划分至上述n个编码区域中与生成上述增量数据的时间对应的目标编码区域中;

第一确定子单元,用于基于上述目标编码区域对应的区域编码确定上述增量数据对应的区域编码。

在一个示例性实施例中,上述装置还包括,第三确定模块,用于从确定的上述区域编码与存储节点之间的映射关系中确定上述增量数据对应的目标存储节点之前,确定上述区域编码与上述存储节点之间的映射关系;

存储模块,用于将上述映射关系存储至远程字典服务缓存中。

在一个示例性实施例中,上述装置还包括:变更模块,用于将上述映射关系存储至远程字典服务缓存中之后,在上述区域编码对应的上述存储节点发生变更的情况下,在上述远程字典缓存中变更上述区域编码与上述存储节点之间的映射关系。

在一个示例性实施例中,上述装置还包括:

第四确定模块,用于确定获取的增量数据对应的区域编码之前,在确定与上述增量数据对应的数据表的情况下,确定上述增量数据的事件属性;

第一封装模块,用于封装上述事件属性和上述增量数据,得到封装数据;

第一发送模块,用于将上述封装数据发送至消息队列中。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,确定获取的增量数据对应的区域编码;

s2,从确定的区域编码与存储节点之间的映射关系中确定增量数据对应的目标存储节点;

s3,按照目标存储节点将增量数据存储至目标数据库。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,确定获取的增量数据对应的区域编码;

s2,从确定的区域编码与存储节点之间的映射关系中确定增量数据对应的目标存储节点;

s3,按照目标存储节点将增量数据存储至目标数据库。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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