CN108628885B - 一种数据同步方法、装置及存储设备 - Google Patents
一种数据同步方法、装置及存储设备 Download PDFInfo
- Publication number
- CN108628885B CN108628885B CN201710166069.5A CN201710166069A CN108628885B CN 108628885 B CN108628885 B CN 108628885B CN 201710166069 A CN201710166069 A CN 201710166069A CN 108628885 B CN108628885 B CN 108628885B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- table entry
- synchronization
- key
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例公开了一种数据同步方法、装置及存储设备,其中,所述方法包括:监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作;根据所述写操作提取所述表项数据,并基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理;根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据;将所述同步数据存储到所述第二数据库中。采用本发明实施例,可自动地完成数据在不同类型数据库之间的同步,满足了用户数据同步的自动化需求,提高了在不同类型数据库之间进行数据同步的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法、装置及存储设备。
背景技术
在计算机技术领域,数据库(Database)是按照指定的数据格式来组织、存储和管理各种数据。根据需要,用户可以对数据库中的数据进行新增、更新、检索、删除等操作。数据库有多种类型,有包括存储有各种数据的表格的表项型数据库,也有基于键值对形式存储数据的键值对型数据库。
目前,如果需要在两个不同类型的数据库之间同步数据,现有的处理方式是需要用户分别以不同的数据输入形式将数据存储到不同类型的数据库中,才能使得数据以指定的数据格式存储到对应类型的数据库中。现有的处理方式的处理过程繁琐,使得数据同步效率低下。
发明内容
本发明实施例提供一种数据同步方法、装置及存储设备,可在不同的数据库之间自动同步数据。
一方面,本发明实施例提供了一种数据同步方法,包括:
监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作;
根据所述写操作提取所述表项数据,并基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理;
根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据;
将所述同步数据存储到所述第二数据库中。
其中可选地,所述监听第一数据库的写操作之前,还包括:
为第一数据库的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库;和/或:配置从第一数据库同步数据到第二数据库的数据转换规则。
其中可选地,所述根据所述写操作提取所述表项数据是指从所述写操作产生的数据记录信息中提取表项数据;所述数据记录信息为所述第一数据库的日志信息,所述日志信息用于记录所述写操作所写入的表项数据。
其中可选地,所述基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理,包括:
获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;
从表项数据中选择获取各个指定的表项位置的内容数据;
将选择获取的内容数据进行序列化处理。
其中可选地,所述第一数据库为表项型数据库,所述第二数据库为键值对key-value型数据库,配置的数据转换规则中包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系;
所述根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据,包括:
提取序列化后的表项数据的每一表项位置的内容数据;
按照配置的数据转换规则所包括的所述映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据。
其中可选地,所述基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理,包括:
基于多维数据序列化为一个字符串的规则对所述表项数据中的每一表项位置的内容数据进行序列化,得到关于所述表项数据的一个字符串;
在序列化得到一个字符串后,所述方法还包括:将序列化后的表项数据存储到消息队列中。
其中可选地,所述方法还包括:在检测到业务读请求时,选择从第一数据库和第二数据库中读性能高的数据库中读取数据。
相应地,本发明实施例还提供了一种数据同步装置,包括:
监听模块,用于监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作;
处理模块,用于根据所述写操作提取所述表项数据,并基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理;
转换模块,用于根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据;
同步模块,用于将所述同步数据存储到所述第二数据库中。
其中可选地,所述装置还包括:配置模块,用于为第一数据库的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库;和/或:用于配置从第一数据库同步数据到第二数据库的数据转换规则。
其中可选地,所述处理模块具体用于从所述写操作产生的数据记录信息中提取表项数据;所述数据记录信息为所述第一数据库的日志信息,所述日志信息用于记录所述写操作所写入的表项数据。
其中可选地,所述处理模块,具体用于获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;从表项数据中选择获取各个指定的表项位置的内容数据;将选择获取的内容数据进行序列化处理。
其中可选地,所述第一数据库为表项型数据库,所述第二数据库为键值对key-value型数据库,配置的数据转换规则中包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系;
所述转换模块,具体用于提取序列化后的表项数据的每一表项位置的内容数据;按照配置的数据转换规则所包括的所述映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据。
其中可选地,所述处理模块,具体用于基于多维数据序列化为一个字符串的规则对所述表项数据中的每一表项位置的内容数据进行序列化,得到关于所述表项数据的一个字符串;在序列化得到一个字符串后,所述方法还包括:将序列化后的表项数据存储到消息队列中。
其中可选地,所述装置还包括:读写模块,用于在检测到业务读请求时,选择从第一数据库和第二数据库中读性能高的数据库中读取数据。
相应地,本发明实施例还提供了一种存储设备,包括处理器和存储器,
所述存储器,用于存储配置的数据转换规则;
所述处理器,用于监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作;根据所述写操作提取所述表项数据,并基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理;根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据;将所述同步数据存储到所述第二数据库中。
本发明实施例通过在监听到写入新数据的操作时对新数据进行一系列的序列化、数据转换等处理,自动地完成数据在不同类型数据库之间的同步,满足了用户数据同步的自动化需求,提高了在不同类型数据库之间进行数据同步的效率。
附图说明
图1是本发明实施例的一种数据同步系统的示意图;
图2是本发明实施例的一种数据同步方法的流程示意图;
图3是本发明实施例的另一种数据同步方法的流程示意图
图4是本发明实施例的一种数据同步装置的结构示意图;
图5是本发明实施例的一种存储设备的结构示意图。
具体实施方式
在本发明的一个实施例中,数据同步可以满足很多应用场景,包括为防止数据丢失进行数据备份的场景。还包括针对相同的数据,需要为用户提供不同的读写性能的场景,例如,配置的用于进行数据同步存储的数据库中,既有写性能高的数据库方便用户快速录入数据,又有读性能高的数据库方便用户快速查找数据。或者还包括推广较广的数据库与性能更高的新开发数据库之间数据同步的场景。具体如图1所示数据存储系统,本发明实施例中,该系统配置了第一数据库和第二数据库,下面根据图1对本发明的一个实施例进行描述。
所述第一数据库101可以为表项型数据库,该表项型数据库将数据保存在不同的表中,例如所述第一数据库101具体可以为Mysql数据库(一种关系数据库管理系统的数据库)。所述第二数据库102为键值对key-value型数据库,例如CKV数据库(一种高性能分布式Key-Value存储系统的数据库)、Redis(一种key-value存储系统的数据库)。
若需要在存储系统的所述第一数据库101和第二数据库102之间同步数据,本发明实施例中需要进行相应的同步配置,可以包括为第一数据库101配置同步标识,表明需要对第一数据库101的写命令进行处理,以便于将该写命令的数据同步到第二数据库102等其他数据库中。具体的可以针对所述第一数据库101中某一个具体的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库101的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库102。同步配置还可以包括配置数据转换规则,即配置从第一数据库101同步数据到第二数据库102的数据转换规则。具体可以由开发用户在一个具有检测写命令、进行数据转换以及转存等功能的应用程序中配置,所述数据转换规则存储在存储器中,以便于在运行所述应用程序时能够调用数据转换规则实现数据转换的功能。
对第一数据库101的写操作的监听具体可以包括:检测当前是否存在通过第一数据库101的接口层访问所述第一数据库101以执行写命令,若存在,则表明存在写命令,监听到所述第一数据库101的写操作。此时需要基于该写操作得到向第一数据库101中新写入的表项数据。具体的,根据所述写操作提取所述表项数据可以包括:从所述写操作产生的数据记录信息中提取表项数据,所述数据记录信息为所述第一数据库101的日志信息,所述日志信息用于记录所述写操作所写入的表项数据,例如Mysql数据库中的binlog日志。
在得到向第一数据库101中新写入的表项数据后,可以对该表项数据中的每一个表项位置的内容数据进行序列化处理,得到序列化处理后的表项数据。然后根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库102的格式要求的同步数据。
可以首先将序列化处理后的表项数据输入到消息队列中,然后基于数据转换规则中指示的从第一数据库101中数据库表的表项位置到所述第二数据库102中键值对的映射关系,将消息队列中的数据转换为对应的键值对数据,从而得到符合所述第二数据库102格式要求的同步数据。
在得到符合所述第二数据库102格式要求的同步数据后,发起对第二数据库102的写操作将得到的所述同步数据存储到所述第二数据库102中,从而完成将新写入到第一数据库101中的表项数据到第二数据库102的同步处理。
具体的,以第一数据库101为Mysql数据库,而第二数据库102为CKV数据库为例对本发明实施例进行举例说明。在Mysql中有个数据库表test_db.test_table,该表具有三个有意义字段FID(学号),FName(姓名),FScore(成绩)。
首先,需要在同步配置中配置test_db.test_table,对其进行标记,表明该数据库表的数据需要同步配置到CKV数据库中,并配置同步的CKV的键值对key-value中,key为第0行(FID),value为(1,2行)对应(FName,FScore)。
系统通过写命令,经过Mysql接口层访问到Mysql数据库,并新增了一条记录(1,‘小明’,60)及表项数据。Mysql会自动产生binlog日志(一种二进制日志文件)。
配置的binlog Reader会监听binlog日志,由于数据库表已被配置,会触发同步逻辑,将(1,‘小明’,60)序列化并存入分布式高可靠消息中间件Hippo消息队列。
通过配置的缓存写模块Cache Writer会消费Hippo消息队列中的消息,并解析数据后根据同步配置的数据转换规则最终同步数据到CKV中,此处涉及多维数据序列化为一个字符串,可以使用boost序列化等。
根据CKV数据中的键值对,系统需要查询FID=1的信息时就可以直接访问CKV,获取到(‘小明’,60),解析数据,从而完成了业务访问。
再请参见图2,是本发明实施例的一种数据同步方法的流程示意图,本发明实施例的所述数据同步方法可以在一个存储设备中执行,该存储设备至少可以连接到两个数据库系统中,以便于在该至少两个数据库系统之间同步数据。具体的,所述方法包括如下步骤。
S201:监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作。一般的数据库配置有专用的接口层,可以监听接口层的写命令等对第一数据库的访问事件来完成对第一数据库的写操作的监听。所述S201还可以是通过对第一数据库的数据记录信息的监听来确定是否存在写操作,如监听Mysql数据库的日志文件判断是否有新的表项数据的记录,如果有,则可以确定监听到对第一数据库的写操作。
S202:根据所述写操作提取所述表项数据,并基于所述表项数据中的每一表项位置的内容数据对所述表项数据进行序列化处理。根据监听到的写操作,仅获取此次写操作写入的增量数据。具体可以从对应的数据库表的表项中提取新写入的表项数据,也可以从该数据库表对应的日志文件中提取对应的新些人的表项数据。表项数据一般存在多个表项,例如上述例子中表项数据包括FID(学号),FName(姓名),FScore(成绩)三个表项。需要基于每一个表项位置中的内容数据,例如FID表项位置中的学号1、FName表项位置中的名字‘小明’、FScore表项位置中的成绩60分,对表项数据进行序列化,得到关于该表项数据的完整的序列化字符数据。
其中具体的,在对表项数据中的内容数据进行序列化处理时,可以根据业务需要选择表项数据中的部分内容数据进行序列化处理,完成表项数据部分内容的同步。所需的部分内容数据可以在配置阶段中配置的数据转换规则中进行指定。具体的,所述基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理具体可以包括:获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;从表项数据中选择获取各个指定的表项位置的内容数据;将选择获取的内容数据进行序列化处理。
在配置的数据转换规则中包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系,可以指定部分表项位置与键值对之间的映射关系,例如,可以仅指定表项位置FName、FScore与key-value之间的映射关系,而不必考虑FID。在本发明实施例中,需要同步的内容数据可以根据用户的实际需求进行配置,能够灵活地选择并同步不同数据内容,更好地满足用户的实际业务需求。
S203:根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据。本发明实施例中,配置的数据转换规则中包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系,基于该关系将序列化后的表项数据中的每一个表项位置的内容数据映射为键值对所对应数据。
表项位置到键值对的映射关系中是根据用户的需求进行配置的,例如上述的例子中,所述映射关系为key为第0行(FID),value为(1,2行)对应(FName,FScore),在需要时,用户也可以配置为key为第1行(FName),value为(0,2行)对应(FID,FScore)。在本发明实施例中,映射关系均可以根据用户需求进行配置,能够灵活地同步不同数据内容,更好地满足用户的实际业务需求。
另外,所述第二数据库可以为多个不类型的第二数据库,而配置的数据转换规则中可以包括多个映射关系,那么,在向第一数据库中新写入表项数据后,该表项数据可以在后台自动地转换并同步到多个第二数据库中,或者以不同的映射关系,将不同的内容数据组合转换后同步到第二数据库不同存储位置处,以满足不同用户对内容数据的需求。例如,在上述例子中,可以将FID、FName同步到一个第二数据库中,以满足用户对学号和姓名的数据需求;而将FName,FScore同步到另一个第二数据库中,以满足用户对姓名和分数的数据需求。
其中,键值对存在多种形式,例如可以为key-value,或者key-key-value等,例如可以将上述的包括FID(学号),FName(姓名),FScore(成绩)的表项数据中,各个表项位置的内容分别映射为键值对所对应的数据,当第二数据库为key-value格式时,可以将FID映射为key数据,将FName和FScore映射为value数据;当第二数据库为key-key-value格式时,可以将FID映射为第一个key数据,将FName映射为第二个key数据,将FScore映射为value数据。
S204:将所述同步数据存储到所述第二数据库中。在完成映射得到满足第二数据库的存储格式要求的同步数据后,依照现有的对第二数据库的写入方式,将所述同步数据作为新的数据写入到第二数据库对应数据位置处,该数据位置所处的数据库与所述第一数据库中所述目标数据库表互相同步。
本发明实施例通过在监听到写入新数据的操作时对新数据进行一系列的序列化、数据转换等处理,自动地完成数据在不同类型数据库之间的同步,满足了用户数据同步的自动化需求,提高了在不同类型数据库之间进行数据同步的效率。
再请参见图3,是本发明实施例的另一种数据同步方法的流程示意图,本发明实施例的所述数据同步方法可以在一个存储设备中执行,该存储设备至少可以连接到两个数据库系统中,以便于在该至少两个数据库系统之间同步数据。具体的,所述方法包括如下步骤。
S301:配置从第一数据库同步数据到第二数据库的数据转换规则。在本发明实施例中,所述第一数据库为表项型数据库,所述第二数据库为键值对key-value型数据库,配置的数据转换规则中包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系。
在本发明实施例中,还可以仅针对第一数据库中某一个目标数据库表配置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库。也就是说,只有所述第一数据库中存在同步标识的数据库表在新写入表项数据时,才会将其同步到第二数据库中,其他未被配置同步标识的数据库表即使有更新也可以不必进行表项数据到第二数据库的同步。
S302:监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作。在执行所述S302的监听时,可选地,可以判断是否存在向第一数据库新写入数据的情况,若存在,再触发执行下述的S303;或者可以判断是否向第一数据库中具有同步标识的数据库表写入新的表项数据,若是,再触发执行下述的S303。
S303:从所述写操作产生的数据记录信息中提取表项数据;所述数据记录信息包括所述第一数据库的日志信息,所述日志信息用于记录所述写操作所写入的表项数据。例如在Mysql数据库中,会自动产生binlog日志。
S304:根据所述写操作提取所述表项数据,并基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理。
S305:根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据。
所述S305具体可以包括:提取序列化后的表项数据的每一表项位置的内容数据;按照配置的数据转换规则所包括的所述映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据。
所述S304具体可以包括:基于多维数据序列化为一个字符串的规则对所述表项数据中的每一表项位置的内容数据进行序列化,得到关于所述表项数据的一个字符串;在序列化得到一个字符串后,所述方法还包括:将序列化后的表项数据存储到消息队列中。
S306:若检测到业务读请求,选择从第一数据库和第二数据库中读性能高的数据库中读取数据。在本发明实施例中,CKV等键值对型数据库相对于表项型数据库的读性能更好,也就是说第二数据库的读性能高于第一数据库,因此,在对同步的数据进行业务读请求时,可以选择从第二数据库读数据。
本发明实施例通过在监听到写入新数据的操作时对新数据进行一系列的序列化、数据转换等处理,自动地完成数据在不同类型数据库之间的同步,满足了用户数据同步的自动化需求,提高了在不同类型数据库之间进行数据同步的效率。
下面对本发明实施例的数据同步装置及存储设备进行描述。
请参见图4,是本发明实施例的一种数据同步装置的结构示意图,本发明实施例的所述数据同步装置可以设置在一个存储设备中,具体的,本发明实施例的所述装置包括以下模块。
监听模块401,用于监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作;处理模块402,用于根据所述写操作提取所述表项数据,并基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理;转换模块403,用于根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据;同步模块404,用于将所述同步数据存储到所述第二数据库中。
进一步可选地,在一个实施例中,所述装置还可以包括:配置模块405,用于为第一数据库的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库;和/或:用于配置从第一数据库同步数据到第二数据库的数据转换规则。
进一步可选地,在一个实施例中,所述处理模块402具体用于从所述写操作产生的数据记录信息中提取表项数据;所述数据记录信息为所述第一数据库的日志信息,所述日志信息用于记录所述写操作所写入的表项数据。
进一步可选地,在一个实施例中,所述处理模块402,具体用于获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;从表项数据中选择获取各个指定的表项位置的内容数据;将选择获取的内容数据进行序列化处理。
进一步可选地,在一个实施例中,所述第一数据库为表项型数据库,所述第二数据库为键值对key-value型数据库,配置的数据转换规则中包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系;所述转换模块403,具体用于提取序列化后的表项数据的每一表项位置的内容数据;按照配置的数据转换规则所包括的所述映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据。
进一步可选地,在一个实施例中,所述处理模块402,具体用于基于多维数据序列化为一个字符串的规则对所述表项数据中的每一表项位置的内容数据进行序列化,得到关于所述表项数据的一个字符串;在序列化得到一个字符串后,所述方法还包括:将序列化后的表项数据存储到消息队列中。
进一步可选地,在一个实施例中,所述装置还可以包括:读写模块406,用于在检测到业务读请求时,选择从第一数据库和第二数据库中读性能高的数据库中读取数据。
本发明实施例通过在监听到写入新数据的操作时对新数据进行一系列的序列化、数据转换等处理,自动地完成数据在不同类型数据库之间的同步,满足了用户数据同步的自动化需求,提高了在不同类型数据库之间进行数据同步的效率。
再请参见图5,是本发明实施例的一种存储设备的结构示意图,本发明实施例的所述存储设备可以是服务器等设备,该存储设备可以与至少两个数据库系统建立连接,向该至少两个数据库系统写入或者读出数据,并实现在该至少两个数据库系统之间进行数据同步。所述存储设备包括电源模块等,还包括用户接口501、处理器502以及存储器503,所述用户接口501、处理器502以及存储器503之间数据相连,具体可以通过总线相连。
所述用户接口501主要可以为一些键盘接口、触摸屏接口等,用于接收用户配置的数据,例如接收用户配置的数据转换规则等数据。所述存储器503,用于存储程序指令,以及其他一些诸如配置的数据转换规则等对应的数据、指令。
所述存储器503可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器503也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器503还可以包括上述种类的存储器的组合。
所述处理器502可以是中央处理器(central processing unit,CPU)。所述处理器502还可以进一步包括硬件芯片。所述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logicdevice,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
可选地,所述存储器503用于存储相应的程序指令。所述处理器502可以调用所述程序指令,实现如本申请图2,3实施例中所示的数据同步方法。
具体的,所述处理器502,调用所述存储器中存储的程序指令,用于监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库新写入表项数据的操作;根据所述写操作提取所述表项数据,并基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理;根据配置的数据转换规则将所述序列化后的表项数据转换为符合第二数据库的格式要求的同步数据;将所述同步数据存储到所述第二数据库中。
具体可选地,在一个实施例中,所述处理器502,还用于为第一数据库的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库;和/或:配置从第一数据库同步数据到第二数据库的数据转换规则。
具体可选地,在一个实施例中,所述处理器502在用于根据所述写操作提取所述表项数据时,具体用于从所述写操作产生的数据记录信息中提取表项数据;所述数据记录信息为所述第一数据库的日志信息,所述日志信息用于记录所述写操作所写入的表项数据。
具体可选地,在一个实施例中,所述处理器,在用于基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理时,具体用于获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;从表项数据中选择获取各个指定的表项位置的内容数据;将选择获取的内容数据进行序列化处理。
具体可选地,在一个实施例中,所述第一数据库为表项型数据库,所述第二数据库为键值对key-value型数据库,配置的数据转换规则中包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系;所述处理器502,具体用于提取序列化后的表项数据的每一表项位置的内容数据;按照配置的数据转换规则所包括的所述映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据。
具体可选地,在一个实施例中,所述处理器502,在用于基于所述表项数据中每一表项位置的内容数据对所述表项数据进行序列化处理,具体用于基于多维数据序列化为一个字符串的规则对所述表项数据中的每一表项位置的内容数据进行序列化,得到关于所述表项数据的一个字符串;在序列化得到一个字符串后,所述方法还包括:将序列化后的表项数据存储到消息队列中。
具体可选地,在一个实施例中,所述处理器502,还用于在检测到业务读请求时,选择从第一数据库和第二数据库中读性能高的数据库中读取数据。
本发明实施例通过在监听到写入新数据的操作时对新数据进行一系列的序列化、数据转换等处理,自动地完成数据在不同类型数据库之间的同步,满足了用户数据同步的自动化需求,提高了在不同类型数据库之间进行数据同步的效率。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (11)
1.一种数据同步方法,其特征在于,包括:
为第一数据库的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库;
监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库的所述目标数据库表新写入表项数据的操作,所述第一数据库为表项型数据库;
根据所述写操作提取所述表项数据,并获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;
从表项数据中选择获取各个指定的表项位置的内容数据;
将选择获取的内容数据进行序列化处理,其中,是基于多维数据序列化为一个字符串的规则将选择获取的内容数据序列化后得到一个字符串;
提取序列化后的字符串中每一指定的表项位置对应的内容数据;
按照配置的数据转换规则所包括的从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据;其中,所述配置的数据转换规则包括多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系;
将所述同步数据存储到所述第二数据库中,所述第二数据库为键值对key-value型数据库;其中,将所述同步数据存储到所述第二数据库包括:将根据多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系得到的各个同步数据,对应同步到多个第二数据库中,或者将根据多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系得到的各个同步数据,存储到第二数据库的不同存储位置;
其中,所述配置的数据转换规则包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系,在该映射关系中被允许对第二数据库的键值对数据结构中的键K值配置不同的表项位置。
2.如权利要求1所述的方法,其特征在于,所述监听第一数据库的写操作之前,还包括:
配置从第一数据库同步数据到第二数据库的数据转换规则。
3.如权利要求1所述的方法,其特征在于,所述根据所述写操作提取所述表项数据是指从所述写操作产生的数据记录信息中提取表项数据;所述数据记录信息为所述第一数据库的日志信息,所述日志信息用于记录所述写操作所写入的表项数据。
4.如权利要求1-3任一项所述的方法,其特征在于,在序列化得到一个字符串后,所述方法还包括:将序列化后的表项数据存储到消息队列中。
5.如权利要求1所述的方法,其特征在于,还包括:
若检测到业务读请求,选择从第一数据库和第二数据库中读性能高的数据库中读取数据。
6.一种数据同步装置,其特征在于,包括:
配置模块,用于为第一数据库的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库;
监听模块,用于监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库的所述目标数据库表新写入表项数据的操作,所述第一数据库为表项型数据库;
处理模块,用于获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;从表项数据中选择获取各个指定的表项位置的内容数据;将选择获取的内容数据进行序列化处理,其中,是基于多维数据序列化为一个字符串的规则将选择获取的内容数据序列化后得到一个字符串;
转换模块,用于提取序列化后的字符串中每一指定的表项位置对应的内容数据;按照配置的数据转换规则所包括的从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据;其中,所述配置的数据转换规则包括多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系;
同步模块,用于将所述同步数据存储到所述第二数据库中,所述第二数据库为键值对key-value型数据库;其中,所述同步模块具体用于:将根据多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系得到的各个同步数据,对应同步到多个第二数据库中,或者将根据多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系得到的各个同步数据,存储到第二数据库的不同存储位置;
其中,所述配置的数据转换规则包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系,在该映射关系中被允许对第二数据库的键值对数据结构中的键K值配置不同的表项位置。
7.如权利要求6所述的装置,其特征在于,
所述配置模块,还用于配置从第一数据库同步数据到第二数据库的数据转换规则。
8.如权利要求6所述的装置,其特征在于,所述处理模块具体用于从所述写操作产生的数据记录信息中提取表项数据;所述数据记录信息为所述第一数据库的日志信息,所述日志信息用于记录所述写操作所写入的表项数据。
9.如权利要求6-8任一项所述的装置,其特征在于,
所述处理模块,具体用于将序列化后的表项数据存储到消息队列中。
10.如权利要求6所述的装置,其特征在于,还包括:
读写模块,用于在检测到业务读请求时,选择从第一数据库和第二数据库中读性能高的数据库中读取数据。
11.一种存储设备,其特征在于,包括处理器和存储器,
所述存储器,用于存储配置的数据转换规则;
所述处理器,用于为第一数据库的目标数据库表设置同步标识,所述同步标识用于指示在向所述第一数据库的所述目标数据库表新写入表项数据时,将新写入的表项数据同步到第二数据库;监听第一数据库的写操作,其中,所述写操作包括向所述第一数据库的所述目标数据库表新写入表项数据的操作,所述第一数据库为表项型数据库;根据所述写操作提取所述表项数据,并获取已配置的数据转换规则,并确定出该数据转换规则中指定的表项位置;从表项数据中选择获取各个指定的表项位置的内容数据;将选择获取的内容数据进行序列化处理,其中,是基于多维数据序列化为一个字符串的规则将选择获取的内容数据序列化后得到一个字符串;提取序列化后的字符串中每一指定的表项位置对应的内容数据;按照配置的数据转换规则所包括的从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系,依次将提取的每一个表项位置的内容数据映射为键值对所对应数据,得到符合所述第二数据库格式要求的同步数据;其中,所述配置的数据转换规则包括多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系;将所述同步数据存储到所述第二数据库中,所述第二数据库为键值对key-value型数据库;其中,将所述同步数据存储到所述第二数据库包括:将根据多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系得到的各个同步数据,对应同步到多个第二数据库中,或者将根据多个从第一数据库中数据库表的表项位置到第二数据库中键值对的映射关系得到的各个同步数据,存储到第二数据库的不同存储位置;其中,所述配置的数据转换规则包括从第一数据库中数据库表的表项位置到所述第二数据库中键值对的映射关系,在该映射关系中被允许对第二数据库的键值对数据结构中的键K值配置不同的表项位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710166069.5A CN108628885B (zh) | 2017-03-20 | 2017-03-20 | 一种数据同步方法、装置及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710166069.5A CN108628885B (zh) | 2017-03-20 | 2017-03-20 | 一种数据同步方法、装置及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628885A CN108628885A (zh) | 2018-10-09 |
CN108628885B true CN108628885B (zh) | 2023-04-18 |
Family
ID=63687073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710166069.5A Active CN108628885B (zh) | 2017-03-20 | 2017-03-20 | 一种数据同步方法、装置及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108628885B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109817273B (zh) * | 2019-02-12 | 2020-12-29 | 记忆科技(深圳)有限公司 | 一种nand性能测试方法及其系统 |
CN110119427A (zh) * | 2019-04-15 | 2019-08-13 | 平安普惠企业管理有限公司 | 数据管理方法及相关产品 |
CN110795499B (zh) * | 2019-09-17 | 2024-04-16 | 中国平安人寿保险股份有限公司 | 基于大数据的集群数据同步方法、装置、设备及存储介质 |
CN110968363A (zh) * | 2019-11-22 | 2020-04-07 | 贝壳技术有限公司 | 一种数据配置的同步方法、装置、电子设备以及可读存储介质 |
CN112883040A (zh) * | 2021-02-04 | 2021-06-01 | 中国工商银行股份有限公司 | 一种数据同步方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679816A (zh) * | 2014-12-17 | 2015-06-03 | 北京可思云海科技有限公司 | 一种嵌入式系统下的sqlite数据库应用方法 |
CN105635256A (zh) * | 2015-12-23 | 2016-06-01 | 腾讯科技(深圳)有限公司 | 多媒体同步方法、装置和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150088807A1 (en) * | 2013-09-25 | 2015-03-26 | Infobright Inc. | System and method for granular scalability in analytical data processing |
CN104572672B (zh) * | 2013-10-15 | 2018-10-02 | 北大方正集团有限公司 | 异构数据库的同步方法和应用系统 |
WO2015100652A1 (zh) * | 2013-12-31 | 2015-07-09 | 北京新媒传信科技有限公司 | 序列化消息之间的转换方法和装置 |
CN103902698B (zh) * | 2014-03-31 | 2018-04-13 | 北京皮尔布莱尼软件有限公司 | 一种数据存储系统和存储方法 |
CN104216961B (zh) * | 2014-08-21 | 2019-03-29 | 北京奇艺世纪科技有限公司 | 一种数据处理方法和装置 |
CN104462517A (zh) * | 2014-12-22 | 2015-03-25 | 北京奇虎科技有限公司 | 数据同步方法及装置 |
CN106357452B (zh) * | 2016-09-29 | 2019-06-04 | 上海和付信息技术有限公司 | 一种单点异构数据存储的高可用框架系统及其实现方法 |
-
2017
- 2017-03-20 CN CN201710166069.5A patent/CN108628885B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679816A (zh) * | 2014-12-17 | 2015-06-03 | 北京可思云海科技有限公司 | 一种嵌入式系统下的sqlite数据库应用方法 |
CN105635256A (zh) * | 2015-12-23 | 2016-06-01 | 腾讯科技(深圳)有限公司 | 多媒体同步方法、装置和系统 |
Non-Patent Citations (2)
Title |
---|
Yishan Li等.A performance comparison of SQL and NoSQL database.《2013 IEEE pacific Rim conference on communication , computers and signal proceeding》.2013,1-13. * |
兰晨.基于web服务的分布式存储系统的研究与实现.《中国优秀硕士学位论文全文数据库 信息科技辑》.2012,I137-90. * |
Also Published As
Publication number | Publication date |
---|---|
CN108628885A (zh) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628885B (zh) | 一种数据同步方法、装置及存储设备 | |
US11604782B2 (en) | Systems and methods for scheduling concurrent summarization of indexed data | |
US8782101B1 (en) | Transferring data across different database platforms | |
CN111241203B (zh) | Hive数据仓库同步方法、系统、设备及存储介质 | |
CN106874281B (zh) | 实现数据库读写分离的方法和装置 | |
CN109471851B (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
EP3438845A1 (en) | Data updating method and device for a distributed database system | |
CN113688288B (zh) | 数据关联分析方法、装置、计算机设备和存储介质 | |
CN114564852B (zh) | 一种fmea数据节点的操作方法及电子设备 | |
US20150363470A1 (en) | Index merge ordering | |
US10855750B2 (en) | Centralized management of webservice resources in an enterprise | |
US9213759B2 (en) | System, apparatus, and method for executing a query including boolean and conditional expressions | |
CN108140022B (zh) | 数据查询方法和数据库系统 | |
KR20200056526A (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
US9576008B2 (en) | System and method for search indexing | |
US20070118574A1 (en) | Reorganizing data with update activity | |
CN112506490A (zh) | 一种接口生成方法、装置、电子设备及存储介质 | |
CN113918535A (zh) | 一种数据读取方法、装置、设备及存储介质 | |
CN109032940B (zh) | 一种测试场景录入方法、装置、设备及存储介质 | |
CN116414935A (zh) | 一种基于Elastic Search的分布式搜索空间矢量数据的方法 | |
US20110191549A1 (en) | Data Array Manipulation | |
KR20130126012A (ko) | 비즈니스 인텔리전스의리포트 제공 방법 및 장치 | |
KR101828466B1 (ko) | 파일시스템을 기반으로 하는 저장장치에서 객체기반 스토리지 인터페이스를 제공하는 방법 및 장치 | |
CN114116907A (zh) | 一种数据库的同步方法、装置、电子设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230922 Address after: 100190 Beijing Haidian District Zhichun Road 49 No. 3 West 309 Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |