CN104834635A - 一种数据处理方法和装置 - Google Patents

一种数据处理方法和装置 Download PDF

Info

Publication number
CN104834635A
CN104834635A CN201410045260.0A CN201410045260A CN104834635A CN 104834635 A CN104834635 A CN 104834635A CN 201410045260 A CN201410045260 A CN 201410045260A CN 104834635 A CN104834635 A CN 104834635A
Authority
CN
China
Prior art keywords
data
database
write
target database
request
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.)
Pending
Application number
CN201410045260.0A
Other languages
English (en)
Inventor
杭国强
白琳
陈芨
王钢
张慧芳
陈昌文
王继伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Group Guangdong Co Ltd
Original Assignee
China Mobile Group Guangdong Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Group Guangdong Co Ltd filed Critical China Mobile Group Guangdong Co Ltd
Priority to CN201410045260.0A priority Critical patent/CN104834635A/zh
Publication of CN104834635A publication Critical patent/CN104834635A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据处理方法和装置,其中,所述方法包括:接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;将所述第一数据写入所述目标数据库中。本发明不需要进行数据迁移就能够实现异构数据库之间的数据同步,在降低成本的同时减轻了开发工作量。

Description

一种数据处理方法和装置
技术领域
本发明涉及数据处理领域,尤其涉及一种数据处理方法和装置。
背景技术
异构数据库系统是相关的多个数据库系统的集合,该多个数据库系统中至少有两个数据结构不同的数据库系统。异构数据库可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的数据库管理系统。
异构数据库的各个组成部分具有自身的自治性,在实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。其中,如何在异构数据库之间实现数据同步是现在经常需要面对的问题。
现有的解决方案一般是通过特定的软件在源数据库和目标数据库之间进行数据搬迁,进而实现数据的同步。例如Oracle Gloden Gate软件,该软件是基于日志的结构化数据复制软件。它通过解析源数据库在线日志或是归档日志,从而获得数据的增量变化;再将这些变化应用到目标数据库中,实现源数据库与目标数据库的数据同步。Oracle Gloden Gate也可以用于异构的数据库环境之间大量数据的实时复制,实现应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发容灾、数据库升级和移植、双业务中心等多个场景下应用。
但Oracle Gloden Gate属于一个公共产品,且定位主要针对企业级数据库的支持。其支持的数据库如下:
Oracle系列、MS SQL Server系列、IBM DB2系列、SYSBASE系列和MySQL系列。
从整体上来讲,Oracle Gloden Gate软件可以支持上面五种数据库中相同结构(数据库schema一样)的数据库之间的数据复制。
基于日志复制的数据同步方案目前成熟的只有Oralce Gloden Gate软件,且只能在标准的关系数据库之间实现数据库异构,且该软件价格成本较高,存在较大的局限性。
如果要节省成本而基于人工开发相应的程序,实现异构数据库的数据迁移及基于数据库触发器的增量迁移,也存在开发量大、数据库的额外开销较重的问题。
发明内容
本发明的目的是提供一种数据处理方法和装置,不需要进行数据迁移就能够实现异构数据库之间的数据同步,在降低成本的同时减轻开发工作量。
为了实现上述目的,本发明实施例提供了一种数据处理方法,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,所述方法包括:
接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
将所述第一数据写入所述目标数据库中。
上述的数据处理方法,其中,所述将所述第一数据写入所述目标数据库中具体为:
调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
上述的数据处理方法,其中,所述将所述第一数据写入所述目标数据库中具体包括:
将所述写入请求消息中携带的所述第一数据写入消息队列中;
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
上述的数据处理方法,其中,所述在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中具体为:
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
上述的数据处理方法,其中,将所述写入请求消息中携带的所述第一数据写入消息队列中的同时,所述方法还包括:
持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
上述的数据处理方法,其中,所述持久化所述第一数据具体为:
将所述第一数据写入持久化的非关系型数据库;
所述在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户具体为:
在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
上述的数据处理方法,其中,将所述第一数据写入所述目标数据库中之后,所述方法还包括:
在所述消息队列中标记所述第一数据的有效期为过期。
为了实现上述目的,本发明实施例还提供了一种数据处理装置,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,所述装置包括:
接收模块,用于接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
确定模块,用于根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
写入模块,用于将所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述写入模块具体为:
调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述写入模块具体包括:
第一写入子模块,用于将所述写入请求消息中携带的所述第一数据写入消息队列中;
第二写入子模块,用于在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述第二写入子模块具体为:
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述装置还包括:
持久化模块,用于持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
上述的数据处理装置,其中,所述持久化模块具体为:
将所述第一数据写入持久化的非关系型数据库,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
上述的数据处理装置,其中,所述装置还包括:
标记模块,用于在所述消息队列中标记所述第一数据的有效期为过期。
本发明实施例具有以下有益效果中的至少一项:
本发明实施例不需要进行数据迁移,就能够实现异构数据库之间的数据同步,在降低成本的同时减轻了开发工作量;
本发明实施例弥补了现有的异构数据库数据同步方案中只能针对较成熟的数据库实现,不能针对新的数据库实现数据同步的问题;
本发明实施例中异构数据库之间的耦合度低,简化了业务程序开发人员的难度,同时增强了后端存储的灵活性、稳定性及数据复杂处理的能力。
附图说明
图1为本发明实施例提供的数据处理方法的流程示意图;
图2为本发明实施例提供的异构数据库实现数据同步的系统架构;
图3为本发明实施例提供的写数据处理方法的流程示意图;
图4为本发明实施例提供的读数据处理方法的流程示意图;
图5为本发明实施例提供的数据处理装置的结构示意图。
具体实施方式
为使本发明实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明实施例提供了一种数据处理方法,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,所述方法如图1所示,包括:
步骤11,接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
步骤12,根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
步骤13,将所述第一数据写入所述目标数据库中。
在本发明实施例提供的方法中,对至少包括两个数据结构不同的数据库的多个数据库(即异构数据库),不需要进行数据迁移,只根据多个数据库预先订阅的标识,就能够在接收到写入请求消息后,将第一数据写入订阅了第一数据的目标数据库中,即在异构数据库之间实现数据同步。同时,由于采用本发明实施例提供的方法进行数据同步,不需要购买专门的软件,因此降低成本,且开发过程简单,减轻了开发工作量。
对上述过程举例说明如下。
<例子1>
异构数据库中包括MySQL数据库、海量分析系统数据库和智能搜索系统数据库,其中MySQL数据库订阅了第一标识和第二标识分别对应的数据,海量分析系统数据库订阅了第一标识和第三标识分别对应的数据,智能搜索系统数据库订阅了第二标识和第三标识分别对应的数据。
当接收到写入请求消息时,该写入请求消息中携带了第一数据和第一数据的第一标识,此时在异构数据库中确定目标数据库为MySQL数据库和海量分析系统数据库,将第一数据写入MySQL数据库和海量分析系统数据库即可。
可以看出,在将第一数据写入MySQL数据库和海量分析系统数据库时,已经实现了不同数据结构的数据库之间的数据同步。
在上述方法中,优选地,步骤13可以通过以下两种方式实现。
<方式一>
步骤13具体为:
调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
采用这种方式,是在接收到写入请求消息后,调用预先为目标数据库中建立的写操作接口,将写入请求消息中携带的所述第一数据主动推送给订阅第一数据的目标数据库。举例说明如下。
<例子2>
当在例子1中已经确定目标数据库为MySQL数据库和海量分析系统数据库后,分别调用预先建立的MySQL数据库的写操作接口和海量分析系统数据库的写操作接口,将第一数据主动推送到MySQL数据库和海量分析系统数据库中。
可以看出,方式一是接收到写入请求消息后,就将其中的待写入数据写入到目标数据库中。当然,除了上述向目标数据库主动推送订阅的数据的方式外,还可以等待目标数据库请求相应的数据时,才将数据发送到目标数据库,具体如下。
<方式二>
步骤13具体包括:
步骤131,将所述写入请求消息中携带的所述第一数据写入消息队列中;
步骤132,在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
采用方式二是在接收到写入请求消息时,将其中携带的第一数据先写入消息队列中,等待目标数据库发送请求相应数据的数据请求消息。并在接收到请求消息后,才将数据库订阅的数据发送到目标数据库中。
其中,写入数据的方法同样可以通过调用对应地写操作接口完成,即步骤132具体为:
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
对方式二举例说明如下。
<例子3>
当在例子1中已经确定目标数据库为MySQL数据库和海量分析系统数据库后,不主动推送第一数据,而是先将第一数据写入消息队列中,当接收到MySQL数据库发送的数据请求消息后,才调用预先建立的MySQL数据库的写操作接口,将第一数据主动推送到MySQL数据库中。
上述的数据处理方法中的方式二是将写入请求消息中携带的第一数据先写入一个消息队列,等待目标数据库主动请求数据后,才将队列中的第一数据发送过去。为了避免写入消息队列中的数据丢失,优选地,将所述写入请求消息中携带的所述第一数据写入消息队列中的同时,所述方法还包括:
持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
在持久化所述第一数据后,当用户通过应用层请求第一数据时,不再需要根据用户请求数据的标识确定该数据所在的数据库,进而查询数据库得到该数据,可以直接将持久化的第一数据返回给用户,提高读取数据的速度。
其中,考虑到非关系型数据库可以处理超大量的数据、运行在便宜的PC服务器集群上且没有过多的操作等优点,可以将第一数据写入持久化的非关系型数据库中。即所述持久化所述第一数据具体为:
将所述第一数据写入持久化的非关系型数据库;
所述在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户具体为:
在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
在对异构的数据库执行读操作时,虽然从基于持久化的非关系型数据库中是一定可以读到数据的,但是在本发明实施例中,优选地,如果从基于持久化的非关系型数据库中没读到数据,还是要去该数据所在的数据库集群里进行读取,即在非关系型数据库中命不中数据的情况下,去MySQL集群中请求数据。同时将从MySQL集群中读取到的数据重新写入消息队列中,使得消息队列更新非关系型数据库,以便执行下次读取操作。
为了避免重复向目标数据库中写入数据,将消息队列中的所述第一数据写入所述目标数据库中之后,所述方法还包括:
在所述消息队列中标记所述第一数据的有效期为过期。
当接收到目标数据库发送的请求数据消息时,如果第一数据在所述消息队列中已经标记为过期,则不再将第一数据写入数据库中。
应当注意地是,在上述两种方式中,写操作接口均是已经预先建立好的。为了进一步降低技术人员的开发工作量,可以在多个数据库中由数据结构相同的数据库共用一个写操作接口。举例说明如下。
<例子4>
异构数据库中包括MySQL数据库A和MySQL数据库B,此时,可以由两个MySQL数据库作为一个MySQL数据库集群,共用为MySQL数据库建立的写操作接口。
同样地,如果该异构数据库中还包括三个海量分析系统数据库,则可以由这三个海量分析系统数据库作为一个海量分析系统数据库集群,共用为海量分析系统数据库建立的写操作接口。
本发明实施例已经预先建立了异构数据库与订阅数据的标识之间的对应关系,进而通过调用写操作接口完成数据的写入操作,使得异构数据库之间的耦合度极低,简化了业务程序开发人员的难度。异构数据库中的各个数据库可以各自单独执行错误处理过程,增强了后端存储的灵活性、稳定性及数据复杂处理的能力。
鉴于上述异构数据库之间的低耦合度,可以在不影响业务正常处理的情况下,较为容易的在异构数据库中增加一个新的数据库,并保证异构数据库的性能不会降低。具体过程如下。
如果需要在异构数据库新增一个数据库,可以先判断在该异构数据库中是否已经有与新增数据库数据结构相同的数据库。
如果有,那么新增的数据库可以与异构数据库中的数据结构相同的数据库共用一个写操作接口。这里的结构相同是指数据库schema相同,可以是同结构不同类型的数据库(例如新增数据库为MySQL数据库,异构数据库中不包括MySQL数据库,但包括与MySQL数据库结构相同的其他数据库),也可以是同类型同结构的数据库(例如异构数据库中已包括MySQL数据库,新增数据库同样是MySQL数据库)。此时只要将新增数据库与其订阅数据的标识的对应关系增加到已有的数据库与数据标识之间的对应关系中,就可以实现异构数据库中数据库之间的数据同步。
如果在该异构数据库中不存在与新增数据库数据结构相同的数据库,可以为新增的数据库单独建立一个写操作接口,用于完成写入操作。将新增数据库与其订阅数据的标识的对应关系增加到已有的数据库与数据标识之间的对应关系中,同样可以实现异构数据库中数据库之间的数据同步。
对新增数据库的上述过程举例说明如下。
<例子5>
异构数据库中包括MySQL数据库A和MySQL数据库B,两个MySQL数据库共用一个MySQL写操作接口。
此时,如果需要新增一个MySQL数据库C,则新增的MySQL数据库C可以共用已有的MySQL写操作接口。只需要确定新增的MySQL数据库C与其订阅数据的标识之间的对应关系即可。
如果异构数据库中不包括MySQL数据库,但包括其他与MySQL数据库结构相同的数据库D,此时新增一个MySQL数据库数据库C,则新增的MySQL数据库C可以共用已有的数据库D的写操作接口。同样只需要确定新增的MySQL数据库C与其订阅数据的标识之间的对应关系即可。
如果在异构数据库中不包括与新增MySQL数据库C结构相同的数据库,则需要为MySQL数据库C新建一个写操作接口。
从上述的过程可以看出,采用本发明实施例提供的方法实现异构数据库数据同步方案时,不仅可以针对较成熟的数据库,还能针对新的、不太成熟的数据库。
本发明实施例基于上述方法,还提供了一种异构数据库实现数据同步的系统架构,如图2所示,具体包括:
应用层,是各种业务程序逻辑运算部分,用于提供业务的最终展现,与用户进行交互,接收用户的数据写入请求和数据读取请求等;
数据访问层,对应用层提供基于接口形式的数据访问服务,让应用层的人能更关注做相应的业务开发,不用在关注数据库的设计及SQL编写。对于应用层,数据访问层需要提供数据的增加、查询、更新和删除CRUD操作及简单的以业务基础的数据间的聚合处理;对于分布式消息队列层,数据访问层主要是将数据写入消息中携带的第一数据写入消息队列中;
分布式消息队列层(该架构是基于上述的方式二的),该消息队列支持数据持久化,消息组播的形式,分布式消息队列是基于消息队列形式的写调用,把现有技术中的同步写操作改变成异步的流式调用,从而提高了系统的稳定性;
队列消费者,这里用队列消费者来消费消息队列中的数据。队列消费者把消息队列中的数据同步到数据库中、本地缓存(为基于持久化的非关系型数据库层)和相应的分析系统中(图2中为MySQL数据库集群和海量分析系统Hadoop集群)。
下面结合图2的系统架构,说明一下向异构数据库中写入数据的过程,如图3所示,包括:
步骤1,预先建立异构数据库中每个数据库与其订阅数据的标识之间的对应关系;
步骤2,接收到用户通过应用层发送的请求将第一数据写入异构数据库中至少一个数据库的写入请求消息,其中写入请求消息携带了第一数据和第一数据的第一标识;
步骤3,将写入请求消息中携带的第一数据写入消息队列(图中未示出);
步骤4,队列消费者调用预先建立的非关系型数据库的写操作接口,将消息队列中有效期未过期的第一数据写入基于持久化的非关系型数据库;
步骤5,队列消费者调用预先建立的MySQL集群的写操作接口,将消息队列中有效期未过期的第一数据写入MySQL数据库集群;
步骤6,队列消费者调用预先建立的海量分析系统集群的写操作接口,将消息队列中有效期未过期的第一数据写入海量分析系统集群。
应当注意地是,消息队列的数据如果以组的形式消费,这个消息必然要每个消费者都取到消息进行处理后才会过期。
同样结合图2的系统架构,说明一下从异构数据库中读取数据的过程,如图4所示,包括:
步骤1,当接收到用户通过应用层发送的数据读取消息后,先到非关系型数据库层里读取,如果读取数据即返回,否则执行步骤2;
步骤2,从数据库集群(MySQL数据库集群)里读取数据,如果读取到数据则返回,执行步骤3;
步骤3,向消息队列层写入从数据库集群里读取的数据,等待队列消费者更新非关系型数据库;
步骤4,队列消费者调用预先建立的非关系型数据库的写操作接口,将读取的数据写入基于持久化的非关系型数据库。
通过上述过程可以看出,本发明实施例不需要进行数据迁移,就能够实现异构数据库之间的数据同步,在降低成本的同时减轻了开发工作量;同时弥补了现有的异构数据库数据同步方案中只能针对较成熟的数据库实现,不能针对新的数据库实现数据同步的问题;本发明实施例中,异构数据库之间的耦合度低,简化了业务程序开发人员的难度,同时增强了后端存储的灵活性、稳定性及数据复杂处理的能力。
本发明实施例还提供了一种数据处理装置,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,所述装置如图5所示,包括:
接收模块,用于接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
确定模块,用于根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
写入模块,用于将所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述写入模块具体为:
调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述写入模块具体包括:
第一写入子模块,用于将所述写入请求消息中携带的所述第一数据写入消息队列中;
第二写入子模块,用于在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述第二写入子模块具体为:
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
上述的数据处理装置,其中,所述装置还包括:
持久化模块,用于持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
上述的数据处理装置,其中,所述持久化模块具体为:
将所述第一数据写入持久化的非关系型数据库,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
上述的数据处理装置,其中,所述装置还包括:
标记模块,用于在所述消息队列中标记所述第一数据的有效期为过期。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种数据处理方法,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,其特征在于,所述方法包括:
接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
将所述第一数据写入所述目标数据库中。
2.如权利要求1所述的数据处理方法,其特征在于,所述将所述第一数据写入所述目标数据库中具体为:
调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
3.如权利要求1所述的数据处理方法,其特征在于,所述将所述第一数据写入所述目标数据库中具体包括:
将所述写入请求消息中携带的所述第一数据写入消息队列中;
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
4.如权利要求3所述的数据处理方法,其特征在于,所述在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中具体为:
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
5.如权利要求3所述的数据处理方法,其特征在于,将所述写入请求消息中携带的所述第一数据写入消息队列中的同时,所述方法还包括:
持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
6.如权利要求5所述的数据处理方法,其特征在于,所述持久化所述第一数据具体为:
将所述第一数据写入持久化的非关系型数据库;
所述在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户具体为:
在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
7.如权利要求3-6任一项所述的数据处理方法,其特征在于,将所述第一数据写入所述目标数据库中之后,所述方法还包括:
在所述消息队列中标记所述第一数据的有效期为过期。
8.一种数据处理装置,用于多个数据库,所述多个数据库中至少包括两个数据结构不同的数据库,其特征在于,所述装置包括:
接收模块,用于接收用户通过应用层发送的请求将第一数据写入所述多个数据库中的至少一个数据库的写入请求消息,所述写入请求消息中携带所述第一数据和所述第一数据的第一标识;
确定模块,用于根据预先建立的所述多个数据库与订阅数据的标识之间的对应关系,在所述多个数据库中确定与所述第一标识对应的目标数据库;
写入模块,用于将所述第一数据写入所述目标数据库中。
9.如权利要求8所述的数据处理装置,其特征在于,所述写入模块具体为:
调用预先为所述目标数据库建立的写操作接口,将所述写入请求消息中携带的所述第一数据写入所述目标数据库中。
10.如权利要求8所述的数据处理装置,其特征在于,所述写入模块具体包括:
第一写入子模块,用于将所述写入请求消息中携带的所述第一数据写入消息队列中;
第二写入子模块,用于在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
11.如权利要求10所述的数据处理装置,其特征在于,所述第二写入子模块具体为:
在接收所述目标数据库发送的请求与所述第一标识对应的数据的数据请求消息后,调用预先为所述目标数据库建立的写操作接口,将所述消息队列中与所述第一标识对应的所述第一数据写入所述目标数据库中。
12.如权利要求10所述的数据处理装置,其特征在于,所述装置还包括:
持久化模块,用于持久化所述第一数据,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,读取持久化的所述第一数据,并将所述第一数据返回给所述用户。
13.如权利要求12所述的数据处理装置,其特征在于,所述持久化模块具体为:
将所述第一数据写入持久化的非关系型数据库,使得在接收到用户通过应用层发送的请求在所述多个数据库中读取所述第一数据的读取请求消息时,在所述非关系型数据库中读取所述第一数据,并将所述第一数据返回给所述用户。
14.如权利要求10-13任一项所述的数据处理装置,其特征在于,所述装置还包括:
标记模块,用于在所述消息队列中标记所述第一数据的有效期为过期。
CN201410045260.0A 2014-02-07 2014-02-07 一种数据处理方法和装置 Pending CN104834635A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410045260.0A CN104834635A (zh) 2014-02-07 2014-02-07 一种数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410045260.0A CN104834635A (zh) 2014-02-07 2014-02-07 一种数据处理方法和装置

Publications (1)

Publication Number Publication Date
CN104834635A true CN104834635A (zh) 2015-08-12

Family

ID=53812534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410045260.0A Pending CN104834635A (zh) 2014-02-07 2014-02-07 一种数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN104834635A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162879A (zh) * 2015-09-24 2015-12-16 北京奇虎科技有限公司 实现多机房数据一致性的方法、装置及系统
CN106156278A (zh) * 2016-06-24 2016-11-23 努比亚技术有限公司 一种数据库数据读写方法和装置
CN106503216A (zh) * 2016-11-03 2017-03-15 用友网络科技股份有限公司 支持分层的元数据同步方法及元数据同步装置
CN106897345A (zh) * 2016-07-22 2017-06-27 阿里巴巴集团控股有限公司 一种数据存储的方法及装置
CN109388627A (zh) * 2017-08-08 2019-02-26 阿里巴巴集团控股有限公司 一种数据库访问的控制方法、装置及电子设备
CN112000646A (zh) * 2020-08-25 2020-11-27 北京浪潮数据技术有限公司 一种数据库初始化方法、装置及电子设备和存储介质
CN113254262A (zh) * 2020-02-13 2021-08-13 中国移动通信集团广东有限公司 一种数据库容灾方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101308513A (zh) * 2008-06-27 2008-11-19 福建星网锐捷网络有限公司 分布式系统中缓存数据的同步配置方法与装置
CN102053982A (zh) * 2009-11-02 2011-05-11 阿里巴巴集团控股有限公司 一种数据库信息管理方法和设备
CN103136231A (zh) * 2011-11-25 2013-06-05 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统
CN103440273A (zh) * 2013-08-06 2013-12-11 北京航空航天大学 一种数据跨平台迁移方法及装置
CN103559217A (zh) * 2013-10-17 2014-02-05 北京航空航天大学 一种面向异构数据库的海量组播数据入库实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101308513A (zh) * 2008-06-27 2008-11-19 福建星网锐捷网络有限公司 分布式系统中缓存数据的同步配置方法与装置
CN102053982A (zh) * 2009-11-02 2011-05-11 阿里巴巴集团控股有限公司 一种数据库信息管理方法和设备
CN103136231A (zh) * 2011-11-25 2013-06-05 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统
CN103440273A (zh) * 2013-08-06 2013-12-11 北京航空航天大学 一种数据跨平台迁移方法及装置
CN103559217A (zh) * 2013-10-17 2014-02-05 北京航空航天大学 一种面向异构数据库的海量组播数据入库实现方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162879A (zh) * 2015-09-24 2015-12-16 北京奇虎科技有限公司 实现多机房数据一致性的方法、装置及系统
CN105162879B (zh) * 2015-09-24 2019-03-12 北京奇虎科技有限公司 实现多机房数据一致性的方法、装置及系统
CN106156278A (zh) * 2016-06-24 2016-11-23 努比亚技术有限公司 一种数据库数据读写方法和装置
CN106156278B (zh) * 2016-06-24 2020-07-17 安徽三禾一信息科技有限公司 一种数据库数据读写方法和装置
CN106897345A (zh) * 2016-07-22 2017-06-27 阿里巴巴集团控股有限公司 一种数据存储的方法及装置
CN106503216A (zh) * 2016-11-03 2017-03-15 用友网络科技股份有限公司 支持分层的元数据同步方法及元数据同步装置
CN109388627A (zh) * 2017-08-08 2019-02-26 阿里巴巴集团控股有限公司 一种数据库访问的控制方法、装置及电子设备
CN113254262A (zh) * 2020-02-13 2021-08-13 中国移动通信集团广东有限公司 一种数据库容灾方法、装置和电子设备
CN113254262B (zh) * 2020-02-13 2023-09-05 中国移动通信集团广东有限公司 一种数据库容灾方法、装置和电子设备
CN112000646A (zh) * 2020-08-25 2020-11-27 北京浪潮数据技术有限公司 一种数据库初始化方法、装置及电子设备和存储介质
CN112000646B (zh) * 2020-08-25 2022-08-02 北京浪潮数据技术有限公司 一种数据库初始化方法、装置及电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN104834635A (zh) 一种数据处理方法和装置
US11422982B2 (en) Scaling stateful clusters while maintaining access
WO2020001108A1 (zh) 基于区块链的数据处理方法和装置
US8738568B2 (en) User-defined parallelization in transactional replication of in-memory database
EP2551854B1 (en) System for updating an associative memory
US20140149590A1 (en) Scaling computing clusters in a distributed computing system
CN104536904A (zh) 一种数据管理的方法、设备与系统
CN107766402A (zh) 一种楼盘字典云房源大数据平台
CN104933173A (zh) 一种用于异构多数据源的数据处理方法、装置和服务器
CN102214205A (zh) 带有自适应克隆的经聚类的数据库系统中的逻辑复制
WO2015043391A1 (en) Data synchronization for remote and local databases
CN107180113A (zh) 一种大数据检索平台
CN105005611A (zh) 一种文件管理系统及文件管理方法
US11321283B2 (en) Table and index communications channels
CN103927344A (zh) 一种数据集成方法
CN111506648A (zh) 交易数据备份方法、装置及计算设备、存储介质
CN111506649A (zh) 交易数据容灾切换方法、装置及计算设备、存储介质
US20170288939A1 (en) Abstraction layer for streaming data sources
CN105550351B (zh) 旅客行程数据即席查询系统及方法
CN104035522A (zh) 大数据库一体机
US10320896B2 (en) Intelligent mapping for an enterprise grid
US10102228B1 (en) Table and index communications channels
Yadav et al. Mathematical framework for a novel database replication algorithm
Zhong et al. On mixing high-speed updates and in-memory queries: A big-data architecture for real-time analytics
Chardonnens Big data analytics on high velocity streams

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150812

RJ01 Rejection of invention patent application after publication