一种数据处理方法和装置的制造方法

文档序号:8502165阅读:287来源:国知局
一种数据处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据处理领域,尤其涉及一种数据处理方法和装置。
【背景技术】
[0002]异构数据库系统是相关的多个数据库系统的集合,该多个数据库系统中至少有两个数据结构不同的数据库系统。异构数据库可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的数据库管理系统。
[0003]异构数据库的各个组成部分具有自身的自治性,在实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。其中,如何在异构数据库之间实现数据同步是现在经常需要面对的问题。
[0004]现有的解决方案一般是通过特定的软件在源数据库和目标数据库之间进行数据搬迁,进而实现数据的同步。例如Oracle Gloden Gate软件,该软件是基于日志的结构化数据复制软件。它通过解析源数据库在线日志或是归档日志,从而获得数据的增量变化;再将这些变化应用到目标数据库中,实现源数据库与目标数据库的数据同步。Oracle GlodenGate也可以用于异构的数据库环境之间大量数据的实时复制,实现应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发容灾、数据库升级和移植、双业务中心等多个场景下应用。
[0005]但Oracle Gloden Gate属于一个公共产品,且定位主要针对企业级数据库的支持。其支持的数据库如下:
[0006]Oracle 系列、MS SQL Server 系列、IBM DB2 系列、SYSBASE 系列和M ySQL 系列。
[0007]从整体上来讲,Oracle Gloden Gate软件可以支持上面五种数据库中相同结构(数据库schema —样)的数据库之间的数据复制。
[0008]基于日志复制的数据同步方案目前成熟的只有Oralce Gloden Gate软件,且只能在标准的关系数据库之间实现数据库异构,且该软件价格成本较高,存在较大的局限性。
[0009]如果要节省成本而基于人工开发相应的程序,实现异构数据库的数据迁移及基于数据库触发器的增量迁移,也存在开发量大、数据库的额外开销较重的问题。

【发明内容】

[0010]本发明的目的是提供一种数据处理方法和装置,不需要进行数据迁移就能够实现异构数据库之间的数据同步,在降低成本的同时减轻开发工作量。
[0011]为了实现上述目的,本发明实施例提供了一种数据处理方法,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,所述方法包括:
[0012]接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
[0013]根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
[0014]将所述第一数据写入所述目标数据库中。
[0015]上述的数据处理方法,其中,所述将所述第一数据写入所述目标数据库中具体为:
[0016]调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
[0017]上述的数据处理方法,其中,所述将所述第一数据写入所述目标数据库中具体包括:
[0018]将所述写入请求消息中携带的所述第一数据写入消息队列中;
[0019]在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
[0020]上述的数据处理方法,其中,所述在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中具体为:
[0021]在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
[0022]上述的数据处理方法,其中,将所述写入请求消息中携带的所述第一数据写入消息队列中的同时,所述方法还包括:
[0023]持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
[0024]上述的数据处理方法,其中,所述持久化所述第一数据具体为:
[0025]将所述第一数据写入持久化的非关系型数据库;
[0026]所述在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户具体为:
[0027]在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
[0028]上述的数据处理方法,其中,将所述第一数据写入所述目标数据库中之后,所述方法还包括:
[0029]在所述消息队列中标记所述第一数据的有效期为过期。
[0030]为了实现上述目的,本发明实施例还提供了一种数据处理装置,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,所述装置包括:
[0031]接收模块,用于接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
[0032]确定模块,用于根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
[0033]写入模块,用于将所述第一数据写入所述目标数据库中。
[0034]上述的数据处理装置,其中,所述写入模块具体为:
[0035]调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
[0036]上述的数据处理装置,其中,所述写入模块具体包括:
[0037]第一写入子模块,用于将所述写入请求消息中携带的所述第一数据写入消息队列中;
[0038]第二写入子模块,用于在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
[0039]上述的数据处理装置,其中,所述第二写入子模块具体为:
[0040]在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
[0041]上述的数据处理装置,其中,所述装置还包括:
[0042]持久化模块,用于持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
[0043]上述的数据处理装置,其中,所述持久化模块具体为:
[0044]将所述第一数据写入持久化的非关系型数据库,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
[0045]上述的数据处理装置,其中,所述装置还包括:
[0046]标记模块,用于在所述消息队列中标记所述第一数据的有效期为过期。
[0047]本发明实施例具有以下有益效果中的至少一项:
[0048
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1