CN114036226A - 一种数据同步方法、装置、设备及存储介质 - Google Patents
一种数据同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114036226A CN114036226A CN202111296293.9A CN202111296293A CN114036226A CN 114036226 A CN114036226 A CN 114036226A CN 202111296293 A CN202111296293 A CN 202111296293A CN 114036226 A CN114036226 A CN 114036226A
- Authority
- CN
- China
- Prior art keywords
- operation information
- data
- target
- database
- physical address
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据同步方法、装置、设备及存储介质,该方法包括:获取数据库的全部操作信息和数据快照;对全部操作信息进行处理,得到目标操作信息;将目标操作信息和数据快照合并,得到目标数据;将目标数据写入目标数据仓库。本公开通过获取数据库的全部操作信息和数据快照,对全部操作信息进行处理,得到目标操作信息,将目标操作信息和数据快照合并,得到目标数据,将目标数据写入目标数据仓库,解决了读取数据、缓存到本地、批量加载数据仓库整条数据链路比较长,进入数据仓库有延时的问题,加快了数据从一个数据库同步到数据仓库的速度。
Description
技术领域
本公开涉及数据存储技术领域,尤其涉及一种数据同步方法、装置、设备及存储介质。
背景技术
随着大数据和人工智能(Artificial Intelligence,AI)技术的发展,各个行业越来越深刻地意识到大数据技术对于自身产品服务的价值,大数据应用和大数据平台成为各个技术公司以及互联网公司的核心技术。各个行业随着大数据时代来临,都希望能更好更贴合业务的分析自己的数据来支持公司运营,从最原属的数据入库到现在比较常用的建立数据仓库,甚至到未来热门的数据湖方向,都离不开一个问题,如何把数据从一个系统快速的同步给另一个系统。
常用的解决方案是直接链接数据库并且批量加载数据。然而,现有的数据推送方式对Mysql数据库性能影响大,容易导致慢查询从而影响线上业务;且随着业务增长,读取数据、缓存到本地、批量加载数据仓库整条数据链路比较长,数据写入数据仓库时,存在延时。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据同步方法、装置、设备及存储介质,以实现把数据从一个数据库快速的同步到数据仓库。
第一方面,本公开实施例提供一种数据同步方法,所述方法包括:
获取数据库的全部操作信息和数据快照;
对所述全部操作信息进行处理,得到目标操作信息;
将所述目标操作信息和所述数据快照合并,得到目标数据;
将所述目标数据写入目标数据仓库。
第二方面,本公开实施例提供一种数据同步装置,所述装置包括:
获取模块,用于获取数据库的全部操作信息和数据快照;
操作信息处理模块,用于对所述全部操作信息进行处理,得到目标操作信息;
目标数据确定模块,用于将所述目标操作信息和所述数据快照合并,得到目标数据;
目标数据写入模块,用于将所述目标数据写入目标数据仓库。
第三方面,本公开实施例提供一种数据同步设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
本公开实施例提供的数据同步方法、装置、设备及计算机可读存储介质,该方法包括:获取数据库的全部操作信息和数据快照;对全部操作信息进行处理,得到目标操作信息;将目标操作信息和数据快照合并,得到目标数据;将目标数据写入目标数据仓库。通过获取数据库的全部操作信息和数据快照,对全部操作信息进行处理,得到目标操作信息,将目标操作信息和数据快照合并,得到目标数据,将目标数据写入目标数据仓库,解决了读取数据、缓存到本地、批量加载数据仓库整条数据链路比较长,进入数据仓库有延时的问题,加快了数据从一个数据库同步到数据仓库的速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种数据同步方法流程图;
图2为本公开实施例提供的另一种数据同步方法流程图;
图3为本公开实施例提供的操作信息进行分组合并的示意图;
图4为本公开实施例提供的操作信息和数据快照合并的示意图;
图5为本公开实施例提供的数据同步应用实例的流程图;
图6为本公开实施例提供的数据同步装置的结构示意图;
图7为本公开实施例提供的数据同步设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
随着大数据和AI技术的发展,各个行业越来越深刻地意识到大数据技术对于自身产品服务的价值,大数据应用和大数据平台成为各个技术公司以及互联网公司的核心技术。各个行业随着大数据时代来临,都希望能更好更贴合业务的分析自己的数据来支持公司运营,从最原属的数据入库到现在比较常用的建立数据仓库,甚至到未来热门的数据湖方向,都离不开一个问题:如何把数据从一个系统快速的同步给、至另一个系统。
在数据仓库中,未经过加工的原始数据称之为数据仓库操作存储资料(Operational Data Store,ODS)层或者是数据仓库贴源层,这一层的主要作用是将业务原始数据引入数据仓库,如何准确、高效的将关系型数据库中的数据同步到Hive表中的方案称为关系型数据库集成到数据仓库方案。常用的解决方案是直接链接数据库并且批量加载数据,比如直连Mysql数据库中读取Select表中的数据,然后保存在本地的中间存储文件,最后把中间存储文件文件加载到Hive表中。
但是随着业务的发展,上述方案的缺点逐渐暴露出来:第一,Hive表或者常见的数据仓库本身不支持更新(Update)、删除(Delete)等结构化查询语言(Structured QueryLanguage,SQL)原语操作,无法支持Mysql数据库中发生过Update或者Delete操作的数据。第二,直接从Mysql数据库中以选择(Select)方式读取大量数据,会对Mysql数据库性能影响大,容易导致慢查询从而影响线上业务。第三,随着业务增长,Select读取数据、缓存到本地的中间存储文件、批量加载数据到数据仓库整条数据链路较长,数据进入数据仓库有延时,第四,以Select方式读取数据,需要人工去拆解Sselect范围来提升数据查询的并行度,比如按表Select读取数据,按时间字段分区间Select,智能化程度低。
针对该问题,本公开实施例提供了一种数据同步方法,该方法可以适用于将原始数据从一个系统同步至另一系统的应用场景。例如:可以是将数据库中的数据同步至数据仓库或者数据湖中,还可以是将数据仓库中的数据同步至数据湖中,也可以是将一个数据库中的数据同步至另一个数据库中。可以理解的是,本公开实施例提供的数据同步方法并不限于如上所述的几种应用场景,此处只是示意性说明。下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的数据同步方法流程图。该方法具体步骤如下:
S101、获取数据库的全部操作信息和数据快照。
其中,所述操作信息主要是指对数据库中的数据进行的操作,上述操作信息主要包括如下信息:物理地址,数据值和操作指令,上述操作指令至少包括:写入,读取,更新,删除等指令。全部操作信息是指数据库中每个地址任何时刻的操作信息。数据快照是指数据存储的某一时刻的状态记录。
进一步的,本实施例提供的数据同步方法可以按照系统或者客户需求,间隔预设时长执行一次。例如,可以是间隔一周,一天等,本实施例不进行限定。具体的,间隔预设时长后采用本实施例提供的数据方法将一个数据库中的数据同步至数据仓库中。相应的,数据库的全部操作信息和数据快照可以理解为上一次数据同步之后数据库在间隔预设时长内的操作信息和数据快照。例如:间隔预设时长为24小时,数据同步方法在每天0点执行,那么数据库的全部操作信息和数据快照是指昨天0点和今天0点这段时间内的数据库操作信息和数据快照。
其中,所述数据库是关系型数据库。关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解。关系型数据库中一系列的行和列被称为表,一组表组成了数据库,上述关系型数据库可以包括如下至少一种:Mysql数据库、Oracle数据库、Postgresql数据库等等。需要说明的是,本实施例中以Mysql数据库为例进行说明,然而并不限定本实施例提供的数据同步方仅应用于Mysql数据库。
其中,获取数据库的全部操作信息可以是实时监测数据库的操作指令,检测到数据库的操作指令后,获取该操作指令对应的操作信息。还可以是通过获取数据的操作日志,通过对操作日志进行处理,得到操作信息。需要说明的是,本实施例中仅对全部操作信息的获取方法进行举例说明,而非限定,在具体应用中可以采取任意方式获取数据库的操作信息。
获取数据快照可以是直接从快照数据库中读取该数据库的数据快照,也可以是实时抓取数据库的数据快照。需要说明的是,本实施例中仅对数据快照的获取方法进行举例说明,而非限定,在具体应用中可以采取任意方式获取数据库的数据快照。
在一个可能的实施方式中,所述操作信息至少包括操作日志;相应的,获取数据库的全部操作信息,包括:采用变化数据捕捉(Change Data Capture,CDC)技术获取数据库的操作日志。
在本实施例中,所述操作信息是指操作日志。
其中,CDC技术是数据库进行备份的一种方式,常用于大量数据的备份工作。CDC技术分为入侵式的和非入侵式的备份方法,入侵式的有基于触发器备份、基于时间戳备份、基于快照备份等。非入侵式的备份方法是基于日志的备份。在本实施例中采用非入侵式CDC技术基于日志进行备份,得到数据库的操作日志。其中,Mysql数据库基于日志的CDC需要开启mysql binary log。
S102、对所述全部操作信息进行处理,得到目标操作信息。
其中,目标操作信息是指可以对数据快照进行合并处理,得到目标数据的目标操作信息。
本实施例中,对全部操作信息进行处理是指按照物理地址将所有的操作信息进行分组,即每个物理地址在预设时长内的所有操作信息作为一组;然后针对每个物理地址,将该组内的最新的操作信息作为目标操作信息。其中,最新的操作信息可以理解为操作时间距离当前时间最接近的操作信息。
例如:关系型数据库中的物理地址d1,在8:06进行了更新操作,更新的数据是data1,在12:18再次进行了更新操作,更新的数据是data2,在14:34进行了删除操作,在21:56进行了写入操作,写入的数据是data3,那么将物理地址d1,写入操作,数据值data3作为目标操作信息。
S103、将所述目标操作信息和所述数据快照合并,得到目标数据。
在本实施例中,目标操作信息和数据快照合并是指将目标操作信息和数据快照中进行合并处理,得到目标数据。
具体的,针对关系型数据库中的每个物理地址,如果该物理地址存在目标操作信息,则将该目标操作信息作为该物理地址的目标数据;如果该物理地址不存在目标操作信息,则从数据快照中读取该物理地址对应的原始数据作为目标数据。
S104、将所述目标数据写入目标数据仓库。
本实施例中目标写入目标数据库的方式不进行限定,可以采用并行的方式写入,也可以采用串行的方式写入。为了节省写入的时间,本实施例中采用并行的写入方式。
本公开实施例提供的数据同步方法,通过获取数据库的全部操作信息和数据快照,对全部操作信息进行处理,得到目标操作信息,基于目标操作信息合并数据快照,得到目标数据,将目标数据写入目标数据仓库,解决了读取数据、缓存到本地、批量加载数据仓库整条数据链路比较长,进入数据仓库有延时的问题,加快了数据从一个数据库同步到数据仓库的速度。
在一个实施例中,图2为本公开实施例提供的另一种数据同步方法流程图。该方法具体步骤如下:
S201、获取数据库的全部操作信息和数据快照。
在本实施例中,采用CDC技术获取数据库的操作日志。具体的,采用非入侵式CDC技术基于日志进行备份,得到数据库的操作日志。其中,Mysql数据库基于日志的CDC需要开启mysql binary log。即采用CDC技术获取mysql binary log。
进一步的,将获取到的数据库的全部操作信息采用消息队列的形式发送至后续的处理模块中。采用消息队列形式进行发送,使得消息缓存减少本地化数据产生,提升系统稳定性和传输效率。
其中,消息队列可以是kafka,rocketmq或者pulsar中的任意一种,本实施例不进行限定。
S202、将全部操作信息按照物理地址进行分组。
物理地址可以理解为数据库中存储数据的地址。进一步的,将全部操作信息按照物理地址进行分组,可以理解为将同一个物理地址的所有操作信息分为一组。
如图3所示,获取到的全部操作信息即原始CDC数据map包括:(Id1,data,updata1),(Id2,data,delete1),(Id3,data,insert),(Id3,data,updata),(Id2,data,updata1),(Id1,data,updata2),然后在分组(shuffle)阶段按照Id进行分组,即将物理地址相同的操作信息分为一组,即{(Id1,data,updata1),(Id1,data,updata2)}为第一组操作信息,{(Id2,data,delete1),(Id2,data,updata1)}为第二组操作信息,{(Id3,data,insert),(Id3,data,updata)}为第三组操作信息。
S203、针对每组操作信息,将最新的操作信息确定为该组的物理地址对应的目标操作信息。
本实施例中,使用spark、mapreduce等大数据技术将操作信息按照Id进行哈希(hash)处理,在shuffle阶段把操作信息按照Id分成多组,后续的合并(reduce)操作为并行任务,reduce结果为数据的最终操作结果。
如图3所示,第一组操作信息将(Id1,data,updata2)确定为Id1对应的目标操作信息,第二组操作信息中新的操作信息是删除操作,因此Id2无数据数据,即不存在目标操作信息。第一组操作信息将(Id3,data,updata)确定为Id3对应的目标操作信息。
S204、针对每个物理地址,如果所述物理地址存在对应的目标操作信息,则该目标操作信息确定为目标数据。
S205、如果所述物理地址未存在对应的目标操作信息,则从数据快照中读取该物理地址的原始数据作为目标数据。
在本实施例中,如果一个物理地址存在对应的目标操作信息,则该目标操作信息确定为该物理地址对应的目标数据。如果一个物理地址不存在对应的目标操作信息,则从数据快照中读取该物理地址的原始数据作为目标数据。
如图4所示,在一个例子中,操作日志包括对Id4的写入操作,对Id1的更新操作,对Id2的更新操作,对Id1的再次更新操作。Id4的写入操作之前Id4没有数值,写入操作之后数值(After-Value)是400;对Id1的更新操作之前数值(Before-Value)是100,更新操作之后数值(After-Value)是110;对Id2的更新操作之前数值(Before-Value)是200,更新操作之后数值(After-Value)是210;对Id1的再次更新操作之前数值(Before-Value)是110,再次更新操作之后数值(After-Value)是120。
采用上述实施例提供的目标操作信息确定方法,从上述操作日志中提取出目标操作信息,即提取delta表。如图4所示,目标操作信息包括Id1的数值(Value)是120,Id2的数值(Value)是210,Id4的数值(Value)是400。数据快照中的存量数据即原始数据是Id1的数值(Value)是100,Id2的数值(Value)是200,Id3的数值(Value)是300。由于Id1,Id2和Id4均存在目标操作信息,因此,将Id1的数值是120,Id2的数值是210,Id4的数值是400直接作为目标数据,Id3不存在目标数据,因此,将id3的原始数据300作为目标数据。
S206、将所述目标数据写入目标数据仓库。
将目标数据写入到Hive表中,即将目标数据写入到目标数据仓库中,从而实现了关系型数据库并行批量入库。
本实施例提供的数据同步方法,较好的解决了大数据数仓(如Hive)无法支持Update、Delete操作,入仓即为最终结果。相比直接从Mysql以Select方式影响Mysql业务,本实施例提供的数据同步方法对Mysql业务几乎无影响,实时大数据技术保证了数据进入数仓的时效性。以大数据系统为计算引擎实现了关系型数据库读取并行操作,较大提升了数据读取效率,和数据写入数仓效率。
本公开实施例提供的数据同步方法,通过获取数据库的全部操作信息和数据快照,将全部操作信息按照物理地址进行分组,针对每组操作信息,将最新的操作信息确定为该组的物理地址对应的目标操作信息,针对每个物理地址,如果物理地址存在对应的目标操作信息,则该目标操作信息确定为目标数据,如果所述物理地址未存在对应的目标操作信息,则从数据快照中读取该物理地址的原始数据作为目标数据,最后将目标数据写入目标数据仓库,解决了读取数据、缓存到本地、批量加载数据仓库整条数据链路比较长,进入数据仓库有延时的问题,加快了数据从一个数据库同步到数据仓库的速度。
在一个可能的实施方式中,对所述全部操作信息进行处理,得到目标操作信息,包括:将所述全部操作信息按照物理地址进行哈希处理,得到目标操作信息。
在一个可能的实施方式中,使用大数据技术将所述全部操作信息按照物理地址进行哈希处理,得到目标操作信息,包括:使用大数据技术将所述全部操作信息按照物理地址进行分组;采用并行的方式确定每个物理地址对应的操作信息;针对每个物理地址,将最新的操作信息确定为目标操作信息。
在本实施例中,使用大数据技术将操作信息按照物理地址进行哈希(hash)处理,在分组(shuffle)阶段把全部操作信息按照物理地址分成多组,后续的合并(reduce)任务即并行任务,reduce结果为数据的最终操作结果。
上述大数据技术可以是flink、spark或者mapreduce中的任意一种,也可以是其他的大数据技术,本实施例中不进行限定。
优选的,大数据技术是flink或spark,flink和spark支持并行读取消息队列数据,这样,对操作信息进行并行处理,加入数据处理速度,进而提高数据入仓的速度。
在一个应用型实例中,如图5所示,CDC采集模块主要作用为根据关系型数据库采集操作信息,并且把操作信息(如mysql的二进制日志(binlog))实时推送到消息队列中。
其中,消息队列可以选择kafka,rocketmq或者pulsar中的任意一种,本实施例中不进行限定。消息队列的主要作用是消息缓存减少本地化数据产生,提升系统稳定性和传输效率。
消息队列的消费端是信息合并模块,信息合并模块可以使用flink或者sparkstreaming等大数据技术去合并操作信息,用最新的操作信息覆盖掉老的数据信息生产最新的操作信息。
比如数据A更新成A1,又更新为A2,合并操作信息之后即从A更新为A2,省去A1数据的操作。
整库快照模块主要作用是提供全量数据用于合并(merge),合并模块主要作用是将目标操作信息和数据快照合并,生成目标数据,并且把数据写入目标数据仓库。在本实施例中,合并模块可以采用mysql数据库中的merge语句来实现。
本实施例提供的,信息合并模块和数据合并模块可使用大数据技术如flink和spark,flink和spark支持并行读取消息队列数据,提升处理效率。
图6为本公开实施例提供的数据同步装置的结构示意图。该数据同步装置具体可以是如上所述的客户端,或者是该客户端中的部件。本公开实施例提供的数据同步装置可以执行数据同步方法实施例提供的处理流程,如图6所示,本公开实施例提供的数据同步装置60包括:获取模块601,操作信息处理模块602,目标数据确定模块603,目标数据写入模块604。
其中,获取模块601,用于获取数据库的全部操作信息和数据快照;
操作信息处理模块602,用于对所述全部操作信息进行处理,得到目标操作信息;
目标数据确定模块603,用于将所述目标操作信息和所述数据快照合并,得到目标数据;
目标数据写入模块604,用于将所述目标数据写入目标数据仓库。
本公开实施例提供的数据同步方法,通过获取数据库的全部操作信息和数据快照,对全部操作信息进行处理,得到目标操作信息,将目标操作信息和数据快照合并,得到目标数据,将目标数据写入目标数据仓库,解决了读取数据、缓存到本地、批量加载数据仓库整条数据链路比较长,进入数据仓库有延时的问题,加快了数据从一个数据库同步到数据仓库的速度。
进一步的,操作信息处理模块602,包括:
分组单元,用于将所述全部操作信息按照物理地址进行分组;
目标信息确定单元,用于针对每组操作信息,将最新的操作信息确定为该组的物理地址对应的目标操作信息。
进一步的,操作信息处理模块602,具体用于将所述全部操作信息按照物理地址进行哈希处理,得到目标操作信息。
进一步的,操作信息处理模块602,具体用于将所述全部操作信息按照物理地址进行分组;采用并行的方式确定每个物理地址对应的操作信息;针对每个物理地址,将最新的操作信息确定为目标操作信息。
进一步的,目标数据确定模块603,用于针对每个物理地址,如果所述物理地址存在对应的目标操作信息,则该目标操作信息确定为目标数据;如果所述物理地址未存在对应的目标操作信息,则从数据快照中读取该物理地址的原始数据作为目标数据。
优选的,所述数据库是关系型数据库。
图6所示实施例的数据同步装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本公开实施例提供的数据同步设备的结构示意图。该数据同步设备具体可以是如上所述的客户端,或者是该客户端中的部件。本公开实施例提供的数据同步设备可以执行数据测试同步实施例提供的处理流程。
如图7所示,数据同步设备70包括:存储器71、处理器72、计算机程序和通讯接口73;其中,计算机程序存储在存储器71中,并被配置为由处理器72执行如上所述的数据同步方法。
另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的数据同步方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
获取数据库的全部操作信息和数据快照;
对所述全部操作信息进行处理,得到目标操作信息;
将所述目标操作信息和所述数据快照合并,得到目标数据;
将所述目标数据写入目标数据仓库。
2.根据权利要求1所述的方法,其特征在于,对所述全部操作信息进行处理,得到目标操作信息,包括:
将所述全部操作信息按照物理地址进行分组;
针对每组操作信息,将最新的操作信息确定为该组的物理地址对应的目标操作信息。
3.根据权利要求1所述的方法,其特征在于,对所述全部操作信息进行处理,得到目标操作信息,包括:
将所述全部操作信息按照标识进行哈希处理,得到目标操作信息。
4.根据权利要求4所述的方法,其特征在于,将所述全部操作信息按照物理地址进行哈希处理,得到目标操作信息,包括:
将所述全部操作信息按照物理地址进行分组;
采用并行的方式确定每个物理地址对应的操作信息;
针对每个物理地址,将最新的操作信息确定为目标操作信息。
5.根据权利要求1所述的方法,其特征在于,将所述目标操作信息和所述数据快照合并,得到目标数据,包括:
针对每个物理地址,如果所述物理地址存在对应的目标操作信息,则该目标操作信息确定为目标数据;
如果所述物理地址未存在对应的目标操作信息,则从数据快照中读取该物理地址的原始数据作为目标数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述数据库是关系型数据库。
7.一种数据同步装置,其特征在于,所述装置包括:
获取模块,用于获取数据库的全部操作信息和数据快照;
操作信息处理模块,用于对所述全部操作信息进行处理,得到目标操作信息;
目标数据确定模块,用于基于所述目标操作信息合并所述数据快照,得到目标数据;
目标数据写入模块,用于将所述目标数据写入目标数据仓库。
8.根据权利要求7所述的装置,其特征在于,所述操作信息处理模块,包括:
操作信息分组单元,用于将所述全部操作信息按照物理地址进行分组;
目标操作信息确定单元,用于针对每组操作信息,将最新的操作信息确定为该组的物理地址对应的目标操作信息。
9.一种数据同步设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-6中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296293.9A CN114036226A (zh) | 2021-11-03 | 2021-11-03 | 一种数据同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296293.9A CN114036226A (zh) | 2021-11-03 | 2021-11-03 | 一种数据同步方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036226A true CN114036226A (zh) | 2022-02-11 |
Family
ID=80136217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111296293.9A Pending CN114036226A (zh) | 2021-11-03 | 2021-11-03 | 一种数据同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036226A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528127A (zh) * | 2022-03-31 | 2022-05-24 | Oppo广东移动通信有限公司 | 数据处理方法、装置、存储介质及电子设备 |
CN116049096A (zh) * | 2022-05-05 | 2023-05-02 | 荣耀终端有限公司 | 一种数据迁移方法、电子设备及存储介质 |
-
2021
- 2021-11-03 CN CN202111296293.9A patent/CN114036226A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528127A (zh) * | 2022-03-31 | 2022-05-24 | Oppo广东移动通信有限公司 | 数据处理方法、装置、存储介质及电子设备 |
CN116049096A (zh) * | 2022-05-05 | 2023-05-02 | 荣耀终端有限公司 | 一种数据迁移方法、电子设备及存储介质 |
CN116049096B (zh) * | 2022-05-05 | 2024-04-16 | 荣耀终端有限公司 | 一种数据迁移方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309233B (zh) | 数据存储的方法、装置、服务器和存储介质 | |
CN114036226A (zh) | 一种数据同步方法、装置、设备及存储介质 | |
US11048423B2 (en) | Method and system for synchronizing requests related to key-value storage having different portions | |
CN103595797B (zh) | 一种分布式存储系统中的缓存方法 | |
CN106874281B (zh) | 实现数据库读写分离的方法和装置 | |
US11526465B2 (en) | Generating hash trees for database schemas | |
CN109284273B (zh) | 一种采用后缀数组索引的海量小文件查询方法及系统 | |
CN114780641B (zh) | 多库多表同步方法、装置、计算机设备和存储介质 | |
US11687533B2 (en) | Centralized storage for search servers | |
KR101674176B1 (ko) | 파일 단위 순서 모드 저널링 기법을 이용한 fsync 시스템 호출 처리 장치 및 방법 | |
CN111488323B (zh) | 一种数据处理方法、装置及电子设备 | |
US11222022B2 (en) | Method and system for searching a key-value storage | |
CN101459599B (zh) | 一种实现缓存数据访问与加载并发进行的方法及系统 | |
CN107004036B (zh) | 用以搜索包含大量条目的日志的方法和系统 | |
EP3264254A1 (en) | System and method for a simulation of a block storage system on an object storage system | |
CN113742420B (zh) | 数据同步方法和装置 | |
CN108021562B (zh) | 应用于分布式文件系统的存盘方法、装置及分布式文件系统 | |
CN112541101B (zh) | 订阅数据的推送方法、装置、电子设备及计算机存储介质 | |
CN110287172B (zh) | 一种格式化HBase数据的方法 | |
CN113704267A (zh) | 基于ElasticSearch的数据查询方法、系统、设备及存储介质 | |
CN108121719B (zh) | 一种实现数据抽取转换加载etl的方法及装置 | |
CN109299035A (zh) | 一种chr文件管理方法、系统及计算机可读存储介质 | |
US20220358095A1 (en) | Managing data requests to a data shard | |
CN115604290B (zh) | Kafka消息执行方法、装置、设备及存储介质 | |
CN117390040B (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 |