CN107844506B - 一种实现数据库与缓存的数据同步的方法及装置 - Google Patents
一种实现数据库与缓存的数据同步的方法及装置 Download PDFInfo
- Publication number
- CN107844506B CN107844506B CN201610837062.7A CN201610837062A CN107844506B CN 107844506 B CN107844506 B CN 107844506B CN 201610837062 A CN201610837062 A CN 201610837062A CN 107844506 B CN107844506 B CN 107844506B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- processor
- cache
- module
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Abstract
本申请公开了一种实现数据库与缓存的数据同步的方法及装置,用以更加便捷地实现数据库和缓存的数据同步,并提高数据同步的实时性和准确性。本申请提供的一种实现数据库与缓存的数据同步的方法,包括:读取数据模块按照预先配置的数据同步任务,从数据库中读取数据,并发送给所述数据同步任务关联的处理器;所述处理器接收所述数据,并按照预先配置的数据处理规则,对所述数据进行处理,以使得所述数据符合缓存要求,将处理后的数据发送给所述数据同步任务关联的数据写入模块;所述数据写入模块接收所述处理器发送的数据,并写入所述缓存。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种实现数据库与缓存的数据同步的方法及装置。
背景技术
Tair是广泛应用的分布式键值(Key-Value,KV)存储,为无数业务场景提供了分布式缓存方案。Tair中的数据来源除了应用产生的业务数据(如页面html片段、用户访问结果)外,最主要的来源就是数据库了。数据库(Database,DB)作为最基础的数据存储,是需要持久化数据存储的最常用选择。但是关系型数据库在海量数据、高并发访问下面临诸多挑战,而Tair这种分布式KV存储在性能、可伸缩性、数据结构灵活性方面具有更优异的表现。所以对于那些访问量巨大的前台应用,通常会采用Tair替代DB作为主要的数据获取源。而如何将DB的数据写入到Tair中,以及保持DB与Tair数据的一致性,就是所有使用Tair的场景共同需要解决的问题。
现有技术中有如下数据同步方案:
方案一:设置较短的Tair缓存过期时间(expired Time)即可,让数据过期自动失效,使用时,先读取Tair,例如Tair中没有值,从DB补偿读取并回写,保持了DB与Tair的相对一致性。
方案二:双写,即在数据产生的源头,向DB写入数据的同时写入Tair。
但是,现有方案一的数据同步是相对同步,如对实时性要求较高,每次同步设置expired Time时长内实际是无法保证绝对同步的,极大的降低了缓存的命中率。
现有方案二的数据同步,将DB数据加工处理到Tair的转换逻辑,和数据写入到DB的业务逻辑耦合在了一起,而且每处写入/更新DB数据的位置都要同时更新Tair,这对日后的维护升级可能是个灾难。
综上所述,现有技术中的实现数据库和缓存同步的方案,数据同步的实时性和准确性较差,并且较为繁琐。
发明内容
本申请实施例提供了一种实现数据库与缓存的数据同步的方法及装置,用以更加便捷地实现数据库和缓存的数据同步,并提高数据同步的实时性和准确性。
本申请实施例提供的一种实现数据库与缓存的数据同步的方法,包括:
读取数据模块按照预先配置的数据同步任务,从数据库中读取数据,并发送给所述数据同步任务关联的处理器;
所述处理器接收所述数据,并按照预先配置的数据处理规则,对所述数据进行处理,以使得所述数据符合缓存要求,将处理后的数据发送给所述数据同步任务关联的数据写入模块;
所述数据写入模块接收所述处理器发送的数据,并写入所述缓存。
通过该方法,将DB数据同步至Tair的过程,抽象、分解为三个环节,即Reader(即读取数据模块)、Processor(即处理器)、Writer(数据写入模块),分别执行数据的读取、处理、写入操作,将数据来源、数据处理逻辑、数据输出分别提取为三个规则保存并记录。用户只需要将三个内容通过配置数据同步任务的方式,记录保存下来,系统读取这些配置,将逻辑转化为动态的代码,针对每条数据同步任务,调取相应的Reader(即读取数据模块)、Processor(即处理器)、Writer(数据写入模块)进行处理,从而保证了数据同步的严谨性、实时性和准确性,并且数据同步更加便捷,维护起来更加简单。
可选地,所述读取数据模块,通过执行配置的查询数据库语言sql,或者,通过订阅数据库同步消息,从数据库中读取数据,其中,所述数据库同步消息是指通过读取数据库变更日志文件生成数据库的变更数据的消息。
可选地,所述处理器,通过执行配置的脚本语言,对接收到的数据进行处理。
可选地,所述读取数据模块从数据库中读取的数据包括:数据表的表名、表中字段的新值和旧值、用于表示数据插入、更新或删除的变更类型。
可选地,所述处理器处理后的数据包括数据值、该数据值的索引、所述数据写入模块在所述缓存中对该数据值进行的操作类型。
可选地,所述数据同步任务对应一个所述读取数据模块、多个所述处理器和多个所述数据写入模块;
所述读取数据模块按照所述数据同步任务,从数据库中读取多个数据表的数据,并将每一数据表的数据发送给一个所述处理器,其中,所述数据表的数据与所述处理器一一对应;
每一所述处理器接收所述读取数据模块发送的数据,并按照预先配置的数据处理规则,对接收到的数据进行处理,以使得处理后的数据符合缓存要求,将处理后的数据发送给预先配置的一个数据写入模块;
每一所述数据写入模块接收一个所述处理器发送的数据,并写入所述缓存中的预设空间,其中,每一所述数据写入模块将数据写入所述缓存中的不同的预设空间中。
本申请实施例提供的一种实现数据库与缓存的数据同步的装置,包括:
读取数据模块,用于按照预先配置的数据同步任务,从数据库中读取数据,并发送给所述数据同步任务关联的处理器;
处理器,用于接收所述数据,并按照预先配置的数据处理规则,对所述数据进行处理,以使得所述数据符合缓存要求,将处理后的数据发送给所述数据同步任务关联的数据写入模块;
数据写入模块,用于接收所述处理器发送的数据,并写入所述缓存。
可选地,所述读取数据模块,通过执行配置的查询数据库语言sql,或者,通过订阅数据库同步消息,从数据库中读取数据,其中,所述数据库同步消息是指通过读取数据库变更日志文件生成数据库的变更数据的消息。
可选地,所述处理器,通过执行配置的脚本语言,对接收到的数据进行处理。
可选地,所述读取数据模块从数据库中读取的数据包括:数据表的表名、表中字段的新值和旧值、用于表示数据插入、更新或删除的变更类型。
可选地,所述处理器处理后的数据包括数据值、该数据值的索引、所述数据写入模块在所述缓存中对该数据值进行的操作类型。
可选地,所述数据同步任务对应一个所述读取数据模块、多个所述处理器和多个所述数据写入模块;
所述读取数据模块按照所述数据同步任务,从数据库中读取多个数据表的数据,并将每一数据表的数据发送给一个所述处理器,其中,所述数据表的数据与所述处理器一一对应;
每一所述处理器接收所述读取数据模块发送的数据,并按照预先配置的数据处理规则,对接收到的数据进行处理,以使得处理后的数据符合缓存要求,将处理后的数据发送给预先配置的一个数据写入模块;
每一所述数据写入模块接收一个所述处理器发送的数据,并写入所述缓存中的预设空间,其中,每一所述数据写入模块将数据写入所述缓存中的不同的预设空间中。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种实现数据库与缓存的数据同步的装置的结构示意图;
图2为本申请实施例提供的一种实现数据库与缓存的数据同步的方法的流程示意图;
图3为本申请实施例提供的一种实现数据库与缓存的系统架构示意图。
具体实施方式
本申请实施例提供了一种实现数据库与缓存的数据同步的方法及装置,用以更加便捷地实现数据库和缓存的数据同步,并提高数据同步的实时性和准确性。
本申请实施例提供方案主要为DB数据同步到Tair提供基于配置的、动态灵活的通用解决方案,摒弃现有技术方案的多种问题和不足,完美解决了DB中的数据放入Tair、DB与Tair之间保持数据同步一致的问题。
参见图1,本申请实施例提供的一种实现数据库与缓存的数据同步的装置,包括:
读取数据模块10,用于按照预先配置的数据同步任务,从数据库中读取数据,并发送给所述数据同步任务关联的处理器11;
处理器11,用于接收所述读取数据模块10发送的数据,并按照预先配置的数据处理规则,对所述读取数据模块10发送的数据进行处理,以使得处理后的数据符合缓存要求,将处理后的数据发送给所述数据同步任务关联的数据写入模块12;
数据写入模块12,用于接收所述处理器11发送的数据,并写入所述缓存。
本申请实施例中,将DB数据同步至Tair的过程,抽象、分解为三个环节,即Reader(即读取数据模块)、Processor(即处理器)、Writer(数据写入模块),分别执行数据的读取、处理、写入操作,将数据来源、数据处理逻辑、数据输出分别提取为三个规则保存并记录。用户只需要将三个内容通过配置的方式,记录保存下来,系统读取这些配置,将逻辑转化为动态的代码,针对每条数据进行处理,从而保证了数据同步的严谨性、实时性和准确性,并且数据同步更加便捷,维护起来更加简单。
可选地,所述读取数据模块,通过执行配置的查询数据库语言sql,或者,通过订阅数据库同步消息,从数据库中读取数据,其中,所述数据库同步消息是指通过读取数据库变更日志文件生成数据库的变更数据的消息。
可选地,所述处理器,通过执行配置的脚本语言,对接收到的数据进行处理。
可选地,所述读取数据模块从数据库中读取的数据包括:数据表的表名、表中字段的新值和旧值、用于表示数据插入、更新或删除的变更类型。
可选地,所述处理器处理后的数据包括数据值、该数据值的索引、所述数据写入模块在所述缓存中对该数据值进行的操作类型。
可选地,所述数据同步任务对应一个所述读取数据模块、多个所述处理器和多个所述数据写入模块;
所述读取数据模块按照所述数据同步任务,从数据库中读取多个数据表的数据,并将每一数据表的数据发送给一个所述处理器,其中,所述数据表的数据与所述处理器一一对应;
每一所述处理器接收所述读取数据模块发送的数据,并按照预先配置的数据处理规则,对接收到的数据进行处理,以使得处理后的数据符合缓存要求,将处理后的数据发送给预先配置的一个数据写入模块;
每一所述数据写入模块接收一个所述处理器发送的数据,并写入所述缓存中的预设空间,其中,每一所述数据写入模块将数据写入所述缓存中的不同的预设空间中。
下面关于上述各模块以及处理过程分别给出进一步的详细说明。
Reader:
负责从数据源读取数据,输出原始数据。其中,所述的数据源,即数据库。
目前支持两种从数据源读取数据的方式:
通过数据库读取器(DBReader)直接查询DB;
通过精卫(JingWeiReader)监听DB的变更。
DBReader通过执行配置的语言(例如sql)从数据库获取数据;
JingWeiReader通过订阅数据库同步消息(例如精卫消息)实时获得数据库变更数据。
Processor:
负责数据的加工处理,接收Reader输出的原始数据,进行加工处理后输出符合缓存要求的结果数据。
所述Processor,例如是:GroovyProcessor。
GroovyProcessor通过执行配置的脚本语言(例如groovy)来处理数据,另外,还支持DB查询、高速服务框架(High-speed Service Framework,HSF)服务调用等功能。
Writer:
负责数据最终的存储/落地,接收Processor输出的结果数据,将该结果数据写入到目标数据存储(即缓存)中。
所述缓存即Tair,所述Writer为TairWriter。
关于数据同步任务(Task):
每一数据同步任务,包括:从数据源读取数据(Reader),对原始数据进行加工处理(Processor),将处理后的结果数据写入到目标数据存储(Writer)。
每个Reader、Processor、Writer都可以被不同的多个数据同步任务重复使用。
一个任务的Reader只能有一个,但是Processor和Writer可以有多个。比如一个JingWeiReader监听了多个数据表的变更,而每个数据表的处理对应一个Processor,将处理后的结果数据写入到不同的Tair空间中,那么这种情况下就可以为这个JingWeiReader配置多个Processor和多个Writer。
因此,所述数据同步任务对应一个所述读取数据模块、多个所述处理器和多个所述数据写入模块;
所述读取数据模块按照所述数据同步任务,从数据库中读取多个数据表的数据,并将每一数据表的数据发送给一个所述处理器,其中,所述数据表的数据与所述处理器一一对应;
每一所述处理器接收所述读取数据模块发送的数据,并按照预先配置的数据处理规则,对接收到的数据进行处理,以使得处理后的数据符合缓存要求,将处理后的数据发送给预先配置的一个数据写入模块;
每一所述数据写入模块接收一个所述处理器发送的数据,并写入所述缓存中的预设空间,其中,每一所述数据写入模块将数据写入所述缓存中的不同的预设空间中。
DBReader和JingWeiReader输出的数据对象可以称为DBChangeData,即Processor接收的数据对象,是DB原始数据的单元封装,代表了数据表的某行数据,对应了数据表中的某一行记录,包含了表名、表中字段的新值与旧值、变更类型,即插入(insert)、更新(update)、删除(delete)。
JingWeiReader输出的DBChangeData包含了数据表的所有字段,而DBReader输出的DBChangeData所包含的字段,取决于配置的Sql中包含了哪些字段。
JingWeiReader输出的DBChangeData的变更类型(insert、update、delete),取决于实际对数据库表的变更操作类型,而DBReader(通过执行sql查询DB)输出的DBChangeData的变更类型,默认为insert。
Processor输出的数据对象可以称为KvItem,即TairWriter接收的数据对象,Processor接收DBReader或JingWeiReader输出的DBChangeData对象,经过处理后产生KvItem对象,交由TairWriter处理。
KvItem代表了Tair交互的某条数据记录,包含了key值(索引)、value值(具体的数据值)(value只能是基本类型或String(json))、类型(覆盖(Put)/删除(Delete),表示对Tair执行的操作类型)。其中,例如,key值是学生的学号,value值是学号对应的分数。
其中,关于如何确定所述类型,例如,用户在Processor中配置规则,满足什么条件的来源数据应该是put还是delete,根据用户配置的规则进行类型识别。
综上,参见图2,本申请实施例提供的一种实现数据库与缓存的数据同步的方法,包括步骤:
S101、读取数据模块按照预先配置的数据同步任务,从数据库中读取数据,并发送给所述数据同步任务关联的处理器;
S102、所述处理器接收所述数据,并按照预先配置的数据处理规则,对所述数据进行处理,以使得所述数据符合缓存要求,将处理后的数据发送给所述数据同步任务关联的数据写入模块;
所述的处理,可以有多种,例如:数据加工、数据汇总、进行一定的权限判断、通过调用外部服务得到某种特定结果等。
S103、所述数据写入模块接收所述处理器发送的数据,并写入所述缓存。
通过该方法,将DB数据同步至Tair的过程,抽象、分解为三个环节,即Reader(即读取数据模块)、Processor(即处理器)、Writer(数据写入模块),分别执行数据的读取、处理、写入操作,将数据来源、数据处理逻辑、数据输出分别提取为三个规则保存并记录。用户只需要将三个内容通过配置的方式,记录保存下来,系统读取这些配置,将逻辑转化为动态的代码,针对每条数据进行处理,从而保证了数据同步的严谨性、实时性和准确性,并且数据同步更加便捷,维护起来更加简单。
可选地,所述读取数据模块,通过执行配置的查询数据库语言sql,或者,通过订阅数据库同步消息,从数据库中读取数据,其中,所述数据库同步消息是指通过读取数据库变更日志文件生成数据库的变更数据的消息。
其中,所述数据库同步消息,是指基于数据库的变更,读取数据库变更日志文件(binlog)生成的变更数据的消息,用于提供给对数据库变更有关系的场景使用。
可选地,所述处理器,通过执行配置的脚本语言,对接收到的数据进行处理。
其中,脚本语言是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。
所述处理器,还可以通过执行其它语言对接收到的数据进行处理,例如C语言、php等等。
可选地,所述读取数据模块从数据库中读取的数据包括:数据表的表名、表中字段的新值和旧值、用于表示数据插入、更新或删除的变更类型。
例如:若需要将company表中字段名为company_name的字段的值原先为taobao(旧值),修改为alibaba(新值),则变更类型为更新操作(更新类型)。或者,在company表中新插入一条字段名为company_name的值为alibaba的记录,则变更类型为插入操作。或者,该company表中从有一条字段名为company_name,值为alibaba的记录,变更为没有该记录,则变更类型为删除操作。
可选地,所述处理器处理后的数据包括数据值、该数据值的索引、所述数据写入模块在所述缓存中对该数据值进行的操作类型。
例如,数据库中有companyname这张表,包含了以下数据:公司编号,公司名称,公司地址等等。那么,处理器处理后的数据包括的数据值例如为alibaba,该数据值的索引为alibaba的公司编号,操作类型为覆盖(PUT)或者删除(Delete)。
参见图3,本申请实施例中提供的技术方案,自上而下分控制台(Console)、调度器(Supervisor)、执行器(Worker)三个子系统,应用DB、实时数据处理平台(Tlog)、(Xflush)工具,以及以下技术框架:WEB应用框架(webx3)、分布式开放源码的分布式应用程序协调服务(zookeeper,ZK)框架、轻量级的、完善的批处理框架(SpringBatch)。
其中,
Console:即用户控制台,用户在这个平台上进行任务配置,任务的启动、停止,任务的数据、日志查看等操作。
Supervisor:进行任务的定时调度;分配任务给worker;负责worker的负载均衡(load balance)和失效备援(failover)。
Worker:任务的执行机,启动任务、停止任务,基于spring batch平台;提供任务日志获取服务。
Zookeeper:维护worker心跳,存储了worker中运行的任务集合。
Tlog:负责任务运行数据的采集、分析、存储;提供任务数据查询服务。
XFlush:提供任务数据报表和数据监控报警。
系统执行流程:
用户在Console配置:Reader读取的数据源,Processor处理的逻辑,Writer写入的目标数据地址,任务(Task)的各项组成和配置(即将哪些Reader、Processor、Writer组合到一起执行相应的任务),系统保存这些配置至DB中。
用户点击“运行”或系统调用运行时,Reader读取数据源信息,以DBChangeData为单元传递给Processor处理,Processor处理后形成以KvItem为单位的数据,由Writer写入至Tair中。
在整个数据流程中,每一条数据都会被分别进行处理,处理过程如果发生异常,则记录本次处理异常的数据,并在一定时间后重新调用Processor和Writer进行处理和写入。
综上所述,本申请实施例将DB数据同步至Tair的过程,抽象、分解为三个环节Reader、Processor、Writer,即为读取、处理、写入,将数据来源、数据处理逻辑、数据输出分别提取为3个规则保存并记录。用户只需要将三个内容通过配置的方式,记录保存下来,系统读取这些配置,将逻辑转化为动态的代码,针对每条数据进行处理,保证了数据同步的严谨性和准确性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种实现数据库与缓存的数据同步的方法,其特征在于,该方法包括:
读取数据模块按照预先配置的数据同步任务,从数据库中读取数据,并发送给所述数据同步任务关联的处理器;
所述处理器接收所述数据,并按照预先配置的数据处理规则,对所述数据进行处理,以使得所述数据符合缓存要求,将处理后的数据发送给所述数据同步任务关联的数据写入模块;
所述数据写入模块接收所述处理器发送的数据,并写入所述缓存。
2.根据权利要求1所述的方法,其特征在于,所述读取数据模块,通过执行配置的查询数据库语言sql,或者,通过订阅数据库同步消息,从数据库中读取数据,其中,所述数据库同步消息是指通过读取数据库变更日志文件生成数据库的变更数据的消息。
3.根据权利要求1所述的方法,其特征在于,所述处理器,通过执行配置脚本语言,对接收到的数据进行处理。
4.根据权利要求1所述的方法,其特征在于,所述读取数据模块从数据库中读取的数据包括:数据表的表名、表中字段的新值和旧值、用于表示数据插入、更新或删除的变更类型。
5.根据权利要求1所述的方法,其特征在于,所述处理器处理后的数据包括数据值、该数据值的索引、所述数据写入模块在所述缓存中对该数据值进行的操作类型。
6.根据权利要求1所述的方法,其特征在于,所述数据同步任务对应一个所述读取数据模块、多个所述处理器和多个所述数据写入模块;
所述读取数据模块按照所述数据同步任务,从数据库中读取多个数据表的数据,并将每一数据表的数据发送给一个所述处理器,其中,所述数据表的数据与所述处理器一一对应;
每一所述处理器接收所述读取数据模块发送的数据,并按照预先配置的数据处理规则,对接收到的数据进行处理,以使得处理后的数据符合缓存要求,将处理后的数据发送给预先配置的一个数据写入模块;
每一所述数据写入模块接收一个所述处理器发送的数据,并写入所述缓存中的预设空间,其中,每一所述数据写入模块将数据写入所述缓存中的不同的预设空间中。
7.一种实现数据库与缓存的数据同步的装置,其特征在于,包括:
读取数据模块,用于按照预先配置的数据同步任务,从数据库中读取数据,并发送给所述数据同步任务关联的处理器;
处理器,用于接收所述数据,并按照预先配置的数据处理规则,对所述数据进行处理,以使得所述数据符合缓存要求,将处理后的数据发送给所述数据同步任务关联的数据写入模块;
数据写入模块,用于接收所述处理器发送的数据,并写入所述缓存。
8.根据权利要求7所述的装置,其特征在于,所述读取数据模块,通过执行配置的查询数据库语言sql,或者,通过订阅数据库同步消息,从数据库中读取数据,其中,所述数据库同步消息是指通过读取数据库变更日志文件生成数据库的变更数据的消息。
9.根据权利要求7所述的装置,其特征在于,所述处理器,通过执行配置的脚本语言,对接收到的数据进行处理。
10.根据权利要求7所述的装置,其特征在于,所述读取数据模块从数据库中读取的数据包括:数据表的表名、表中字段的新值和旧值、用于表示数据插入、更新或删除的变更类型。
11.根据权利要求7所述的装置,其特征在于,所述处理器处理后的数据包括数据值、该数据值的索引、所述数据写入模块在所述缓存中对该数据值进行的操作类型。
12.根据权利要求7所述的装置,其特征在于,所述数据同步任务对应一个所述读取数据模块、多个所述处理器和多个所述数据写入模块;
所述读取数据模块按照所述数据同步任务,从数据库中读取多个数据表的数据,并将每一数据表的数据发送给一个所述处理器,其中,所述数据表的数据与所述处理器一一对应;
每一所述处理器接收所述读取数据模块发送的数据,并按照预先配置的数据处理规则,对接收到的数据进行处理,以使得处理后的数据符合缓存要求,将处理后的数据发送给预先配置的一个数据写入模块;
每一所述数据写入模块接收一个所述处理器发送的数据,并写入所述缓存中的预设空间,其中,每一所述数据写入模块将数据写入所述缓存中的不同的预设空间中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610837062.7A CN107844506B (zh) | 2016-09-21 | 2016-09-21 | 一种实现数据库与缓存的数据同步的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610837062.7A CN107844506B (zh) | 2016-09-21 | 2016-09-21 | 一种实现数据库与缓存的数据同步的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107844506A CN107844506A (zh) | 2018-03-27 |
CN107844506B true CN107844506B (zh) | 2021-06-11 |
Family
ID=61657079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610837062.7A Active CN107844506B (zh) | 2016-09-21 | 2016-09-21 | 一种实现数据库与缓存的数据同步的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107844506B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549725A (zh) * | 2018-04-28 | 2018-09-18 | 北京百度网讯科技有限公司 | 数据库访问控制方法、装置、系统、设备及计算机可读介质 |
CN109816955A (zh) * | 2018-12-26 | 2019-05-28 | 广州海达安控智能科技有限公司 | 基于多传感器融合的变形监测仪器联动管理系统及方法 |
CN111797158B (zh) * | 2019-04-08 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 数据同步系统、方法和计算机可读存储介质 |
CN111414424B (zh) * | 2020-03-23 | 2023-08-04 | 北京思特奇信息技术股份有限公司 | 一种配置数据自动同步redis的方法、系统、介质及设备 |
CN112597151A (zh) * | 2020-12-03 | 2021-04-02 | 长沙市到家悠享家政服务有限公司 | 数据处理方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN102915377B (zh) * | 2012-11-14 | 2016-08-03 | 深圳市宏电技术股份有限公司 | 数据库转换或同步方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140279871A1 (en) * | 2013-03-13 | 2014-09-18 | Marcelo Ochoa | System and method for providing near real time data synchronization |
-
2016
- 2016-09-21 CN CN201610837062.7A patent/CN107844506B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915377B (zh) * | 2012-11-14 | 2016-08-03 | 深圳市宏电技术股份有限公司 | 数据库转换或同步方法及系统 |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107844506A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844506B (zh) | 一种实现数据库与缓存的数据同步的方法及装置 | |
CN106776855B (zh) | 基于Spark Streaming读取Kafka数据的处理方法 | |
TWI628551B (zh) | Data library copying method and device based on log parsing | |
CN104899126B (zh) | 对宿主机中容器进行本地实时监控的方法、装置及系统 | |
US10824602B2 (en) | System for determining the impact to databases, tables and views by batch processing | |
CN107958010B (zh) | 用于在线数据迁移的方法及系统 | |
CN113204598B (zh) | 一种数据同步方法、系统及存储介质 | |
JP2021518021A (ja) | データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体 | |
CN110856038A (zh) | 视频生成方法及系统、存储介质 | |
CN114722119A (zh) | 数据同步方法及系统 | |
CN110716802A (zh) | 一种跨集群的任务调度系统及方法 | |
CN110688361A (zh) | 数据迁移方法、电子装置及计算机设备 | |
CN104462342A (zh) | 数据库快照同步处理方法及装置 | |
CN111753015B (zh) | 支付清算系统的数据查询方法及装置 | |
CN106371919B (zh) | 一种基于映射-归约计算模型的洗牌数据缓存方法 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN107526672A (zh) | 一种数据记录的方法及装置 | |
CN109981580A (zh) | 一种防止cmsp被动态跟踪的安全方法和系统 | |
CN111435356A (zh) | 数据特征提取方法、装置、计算机设备以及存储介质 | |
CN112015798B (zh) | 一种保证数据不重复和延迟监控的数据处理方法及装置 | |
CN115080309A (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
CN106557530B (zh) | 业务系统、数据修复方法及装置 | |
CN114077518A (zh) | 数据快照方法、装置、设备及存储介质 | |
CN114691768A (zh) | 一种数据处理方法、核算系统及相关设备 | |
CN107391642B (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: 20211110 Address after: No. 699, Wangshang Road, Binjiang District, Hangzhou, Zhejiang Patentee after: Alibaba (China) Network Technology Co., Ltd Address before: P.O. Box 847, 4th floor, capital building, Grand Cayman, British Cayman Islands Patentee before: Alibaba Group Holdings Limited |