CN113656503A - 数据同步方法、装置、系统及计算机可读存储介质 - Google Patents
数据同步方法、装置、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113656503A CN113656503A CN202110962016.0A CN202110962016A CN113656503A CN 113656503 A CN113656503 A CN 113656503A CN 202110962016 A CN202110962016 A CN 202110962016A CN 113656503 A CN113656503 A CN 113656503A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- storage component
- source
- kafka
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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/284—Relational databases
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
本发明提供了一种数据同步方法、装置、系统及计算机可读存储介质,涉及大数据和互联网技术领域,在进行数据同步时,先根据与源存储组件对应的接入配置信息,将源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;当监听到存在待处理的同步任务时,获取同步任务的配置数据,该配置数据包括源存储组件、Kafka的目标主题和目的存储组件的地址信息;进而根据该配置数据,执行同步任务。本发明支持多服务实例接入,可以满足多种存储组件间的数据同步需求,实现了数据同步的实时性,从而能够保证业务进度,且与传统数据同步方案相比,单次导入的数据量大大减少,因此提高了目的存储组件的性能。
Description
技术领域
本发明涉及大数据和互联网技术领域,尤其是涉及一种数据同步方法、装置、系统及计算机可读存储介质。
背景技术
随着业务的不断发展与壮大,各业务场景的数据量成倍数级增长,传统的MySQL(关系型数据库管理系统)已不能支撑对大量数据,按各种复杂的业务场景进行分析的要求,即使采用了分库分表方案,也很难按月、按季度、按年生成决策报表,实时查看。因此,目前根据更快速、更高效的业务决策需求,需要将MySQL中的数据同步到其他相应的目的存储组件中。
传统数据同步方案是按照业务需求迭代,手动开发任务进行数据同步,是将MySQL中的数据表对应的Schema维护到excel中,通过编写好的程序完成数据的一次性定时写入。
然而传统数据同步方案具有如下缺点:只能进行T(today)+1的数据导入,保证不了数据同步的实时性,对于业务进度整体滞后;由于单次导入数据量过大,严重影响了目的存储组件的性能。
发明内容
本发明的目的在于提供一种数据同步方法、装置、系统及计算机可读存储介质,以实现数据同步的实时性,提高目的存储组件的性能。
本发明实施例提供了一种数据同步方法,包括:
根据与源存储组件对应的接入配置信息,将所述源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;
当监听到存在待处理的同步任务时,获取所述同步任务的配置数据,所述配置数据包括所述源存储组件、所述Kafka的目标主题和目的存储组件的地址信息;
根据所述配置数据,执行所述同步任务。
进一步地,所述源存储组件包括关系型数据库管理系统MySQL,所述接入配置信息包括库表的白名单配置信息和主题映射关系配置信息;所述根据与源存储组件对应的接入配置信息,将所述源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中,包括:
通过开源中间件Canal将所述MySQL的每个服务实例伪装成一个从库节点,实时获取每个所述服务实例对应的二进制日志binlog数据;
对每个所述服务实例对应的binlog数据进行数据格式转换,得到每个所述服务实例对应的预定数据格式的源数据;
根据所述库表的白名单配置信息和所述主题映射关系配置信息,将每个所述服务实例对应的源数据写入所述Kafka的对应主题中。
进一步地,所述当监听到存在待处理的同步任务时,获取所述同步任务的配置数据,包括:
当监听到ZooKeeper创建节点时,确定存在待处理的同步任务;所述ZooKeeper用于在存入新的同步任务的配置数据时进行节点创建;
从所述ZooKeeper中获取所述同步任务的配置数据。
进一步地,所述根据所述配置数据,执行所述同步任务,包括:
根据所述配置数据,启动与所述同步任务对应的消费者线程;所述消费者线程用于从所述Kafka的目标主题中拉取来自所述源存储组件的目标源数据,并将拉取的所述目标源数据实时同步至所述目的存储组件中。
进一步地,所述方法还包括:
当监测到所述消费者线程在运行过程中出现异常中止时,将未处理成功的数据发送至所述Kafka的临时主题中;
当所述消费者线程重新启动时,从所述Kafka的临时主题中重新消费所述未处理成功的数据。
进一步地,所述方法还包括:
实时对所述消费者线程的输出日志进行监控;
当监控到所述输出日志存在异常时,将所述输出日志中的异常日志条数和异常日志内容发送至预设的终端设备。
进一步地,所述方法还包括:
定时对预设时长范围内同步完成的数据进行一致性校验,得到校验结果,所述校验结果包括不一致数据和不一致原因;
将所述校验结果输出至指定文件中,以进行数据修复。
本发明实施例还提供了一种数据同步装置,包括:
写入模块,用于根据与源存储组件对应的接入配置信息,将所述源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;
获取模块,用于当监听到存在待处理的同步任务时,获取所述同步任务的配置数据,所述配置数据包括所述源存储组件、所述Kafka的目标主题和目的存储组件的地址信息;
同步模块,用于根据所述配置数据,执行所述同步任务。
本发明实施例还提供了一种数据同步系统,包括源存储组件、数据同步设备和目的存储组件,所述数据同步设备分别与所述源存储组件和所述目的存储组件连接;所述数据同步设备包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的数据同步方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的数据同步方法。
本发明实施例提供的数据同步方法、装置、系统及计算机可读存储介质,在进行数据同步时,先根据与源存储组件对应的接入配置信息,将源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;当监听到存在待处理的同步任务时,获取同步任务的配置数据,该配置数据包括源存储组件、Kafka的目标主题和目的存储组件的地址信息;进而根据该配置数据,执行同步任务。该数据同步方法、装置、系统及计算机可读存储介质,支持多服务实例接入,可以满足多种存储组件间的数据同步需求,实现了数据同步的实时性,从而能够保证业务进度,且与传统数据同步方案相比,单次导入的数据量大大减少,因此提高了目的存储组件的性能。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据同步系统的结构示意图;
图2为本发明实施例提供的一种数据同步系统的系统架构图;
图3为本发明实施例提供的一种数据同步方法的流程示意图;
图4为本发明实施例提供的另一种数据同步方法的流程示意图;
图5为本发明实施例提供的一种数据同步装置的结构示意图;
图6为本发明实施例提供的一种数据同步设备的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前传统数据同步方案保证不了数据同步的实时性,耗时周期长,且单次导入数据量过大,严重影响了目的存储组件的性能。基于此,本发明实施例提供的一种数据同步方法、装置、系统及计算机可读存储介质,针对业务线系统,可以协助业务自助化完成数据同步,定制化的完成数据同步工作,实现数据同步的实时性,提高目的存储组件的性能,并保证数据可用性与一致性。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据同步系统进行详细介绍。
参见图1所示的一种数据同步系统的结构示意图,该数据同步系统包括源存储组件11、数据同步设备12和目的存储组件13,数据同步设备12分别与源存储组件11和目的存储组件13连接。
上述源存储组件11和目的存储组件13均可以为一个或多个,如图1所示,上述数据同步系统支持多源存储组件11接入,多目的存储组件13输出。源存储组件11与目的存储组件13可以是相同类型,也可以是不同类型,即该数据同步系统支持不同存储组件类型间的数据同步;例如,源存储组件11可以包括MySQL和TiDB,目的存储组件13可以包括Kudu、Elasticsearch、TiDB和HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),该数据同步系统可以同时接入MySQL和TiDB,可以实现将MySQL中的数据同步至Kudu、Elasticsearch、TiDB和HDFS中的一种或多种存储组件中,也可以实现将TiDB中的数据同步分别至Kudu、Elasticsearch、TiDB和HDFS中的一种或多种存储组件中。其中,TiDB是一种集群部署的开源分布式关系型数据库,Kudu是Cloudera开源的新型列式存储系统,Elasticsearch是一个基于Lucene的搜索服务器,HDFS是指被设计成适合运行在通用硬件上的分布式文件系统。
本发明实施例还提供了一种数据同步系统的系统架构图,如图2所示,该数据同步系统支持MySQL和TiDB的接入,还支持MySQL的多服务实例(即服务器实例)接入。具体地,对于MySQL的接入,可以凭借阿里巴巴开源的MySQL同步工具(开源中间件)Canal,将MySQL的每个服务实例伪装成一个MySQL从库节点,实时获取对应主库的DML(data manipulationlanguage,数据操作语言)日志和DDL(data definition language,数据定义语言)日志,并将获取到的binlog(即二进制日志,包括DML日志和DDL日志)数据输出到Kafka(分布式日志系统)中;对于TiDB的接入,为了使接入的日志数据格式统一,可以将binlog数据作为标准格式数据,利用数据流的实时处理框架Flink,将TiDB的日志数据转换为binlog数据,并输出到Kafka中。完成数据接入后,可以根据业务的使用场景,将Kafka中的binlog数据,输出到不同的存储组件中,当前支持输出到Kudu、Elasticsearch、TiDB和HDFS中,业务方可以根据分析场景自主配置同步任务。
为了便于理解,下面对于MySQL的接入进行详细介绍。借助于Canal同步工具,将binlog数据写入到Kafka对应的topic(主题)中,主要包含数据库权限申请、白名单配置、topic映射配置、数据格式转换和数据写入五个部分。
(1)数据库权限申请
用户可以根据需同步表所在的库,申请对应主库的读权限,目的是开启Canal拉取MySQL binlog数据的权限。
(2)白名单配置
按照实际业务需求,开启对应库表的白名单,屏蔽非必要的库表数据,以减少后续处理数据时的资源消耗。
(3)topic映射配置
根据白名单配置信息,自动生成主题映射关系,该主题映射关系主要指定库表数据最终落入Kafka的哪个主题,可按库或表分别指定,配置完成后,可支持Kafka topic的自动创建。
(4)数据格式转换
将Canal接入的binlog数据,按照对象模式转换为json格式,以更好的兼容后续组件的使用。
(5)数据写入
根据白名单配置信息与主题映射关系,将转换为json格式的数据写入到指定的topic中。
为了便于理解上述数据同步系统的具体运行过程,本发明实施例还提供了一种数据同步方法,该方法由上述数据同步系统中的数据同步设备执行。参见图3所示的一种数据同步方法的流程示意图,该方法主要包括如下步骤S302~步骤S306:
步骤S302,根据与源存储组件对应的接入配置信息,将源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中。
在一些可能的实施例中,上述源存储组件包括MySQL,接入配置信息包括库表的白名单配置信息和主题映射关系配置信息,基于此,步骤S302可以通过如下过程实现:通过开源中间件Canal将MySQL的每个服务实例伪装成一个从库节点,实时获取每个服务实例对应的二进制日志binlog数据;对每个服务实例对应的binlog数据进行数据格式转换,得到每个服务实例对应的预定数据格式的源数据;根据库表的白名单配置信息和主题映射关系配置信息,将每个服务实例对应的源数据写入Kafka的对应主题中。
上述预定数据格式可以为json格式,可以将Canal接入的binlog数据,按照对象模式,转换为json格式,这样可以更好的兼容后续存储组件(即目的存储组件)的使用。
步骤S304,当监听到存在待处理的同步任务时,获取同步任务的配置数据,该配置数据包括源存储组件、Kafka的目标主题和目的存储组件的地址信息。
上述配置数据可以包括源存储组件、Kafka的目标主题和目的存储组件的地址信息,还可以包括同步类型,同步类型分为存量与实时同步、存量同步、实时同步三类。当目的存储组件为Elasticsearch时,其地址信息可以包括索引名、源存储组件的字段与Elasticsearch的字段之间的映射关系和用户密码等,这样便于构建相对精确mapper(映射器),可以支持业务查询索引的场景,以及提升查询性能。当目的存储组件为TiDB时,其地址信息可以包括目标集群、库、表等信息和用户密码等。
具体实现时,数据同步设备内可以安装有DI(Data Intelligence,数据集成)平台客户端和ZooKeeper客户端,DI平台用于为用户提供同步任务的操作界面,ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务。用户在DI平台上创建同步任务后,可以根据目标源数据的schema,自动创建TiDB表或Elasticsearch索引模板,之后会调用审批接口对同步任务进行任务审批,核验数据处理时各部分准备工作是否都完善,以保证数据同步的准确性,并驳回不合法的配置或不适合同步的任务;审批通过后将同步任务的配置数据写入到ZooKeeper中,ZooKeeper会发生节点变化,通过监听ZooKeeper的节点变化,决定是否启动新的同步任务。基于此,上述步骤S304可以通过如下过程实现:当监听到ZooKeeper创建节点时,确定存在待处理的同步任务;ZooKeeper用于在存入新的同步任务的配置数据时进行节点创建;从ZooKeeper中获取该同步任务的配置数据。
步骤S306,根据上述配置数据,执行同步任务。
具体实现时,可以根据上述配置数据,启动与上述同步任务对应的消费者线程;该消费者线程用于从Kafka的目标主题中拉取来自源存储组件的目标源数据,例如,消费者线程可以每500毫秒或2000的批次大小拉取目标源数据,并将拉取的目标源数据实时同步至目的存储组件中。
本发明实施例提供的数据同步方法,先根据与源存储组件对应的接入配置信息,将源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;当监听到存在待处理的同步任务时,获取同步任务的配置数据,该配置数据包括源存储组件、Kafka的目标主题和目的存储组件的地址信息;进而根据该配置数据,执行同步任务。该方法支持多服务实例接入,可以满足多种存储组件间的数据同步需求,实现了数据同步的实时性,从而能够保证业务进度,且与传统数据同步方案相比,单次导入的数据量大大减少,因此提高了目的存储组件的性能。
目前传统数据同步方案对于存量数据与实时数据衔接,无法保证同步前后的数据一致性,很大程度上需要人为干预,增加了维护成本,基于此,本实施例提供的方法还包括:当监测到消费者线程在运行过程中出现异常中止时,将未处理成功的数据发送至Kafka的临时主题中;当该消费者线程重新启动时,从Kafka的临时主题中重新消费该未处理成功的数据。消费者线程在运行过程中可能出现依赖的组件服务异常、网络异常、云服务异常等,通过将发生异常时未处理成功的数据发送至Kafka的临时主题中,并在同步任务重试过程中,重新消费该未处理成功的数据,保证了数据最终的一致性。
进一步地,为了保证同步任务的运行,上述方法还包括:实时对消费者线程的输出日志进行监控;当监控到输出日志存在异常时,将输出日志中的异常日志条数和异常日志内容发送至预设的终端设备。例如,将异常日志条数和异常日志内容发送至企业微信,这样用户可及时对相关问题进行响应。另外,在消费Kafka中数据的过程中,当业务量突增导致出现阻塞时,可以根据阻塞情况,进行数据同步设备的参数动态调优。
进一步地,上述方法还包括:定时对预设时长范围内同步完成的数据进行一致性校验,得到校验结果,该校验结果包括不一致数据和不一致原因;将该校验结果输出至指定文件中,以进行数据修复。
上述预设时长范围可以根据实际需求设置,例如预设时长范围为1小时,在每个小时的预设时刻(如第5分钟)校验上一个小时同步完成的数据,并将不一致数据和不一致原因输出到对应的文件中,便于问题定位与数据修复使用。
在进行一致性校验时,可以从目的存储组件中拉取同步完成的数据,从源存储组件中拉取对应的源数据,然后逐条或逐个字段对该同步完成的数据和对应的源数据进行比对,记录不一致数据的唯一组件(数据ID),并自动检测不一致数据对应的哪个环节出现问题,例如连接异常、消费Kafka时存在消费重复等,得到校验结果。进一步地,还可以将校验结果以告警方式发送至用户,这样不需要用户关注数据同步涉及的大量日志数据,直接将问题呈现给用户,可以帮助用户提高工作效率。
进一步地,上述方法还包括:根据上述指定文件中的不一致原因,对相应的不一致数据进行数据修复。
在一种可能的实现方式中,可以将上述指定文件中不一致数据的唯一组件输出到一个修复记录表中,该修复记录表中还包括不一致数据的状态属性(表示这条数据是否已修复);对于状态属性为未修复的不一致数据,在进行数据修复时,重新从源存储组件中拉取该不一致数据对应的源数据再次进行一致性校验(此时数据量少,校验速度快),当校验的结果仍为不一致时,将该不一致数据对应的源数据覆盖目的存储组件中的该不一致数据,并将该不一致数据的状态属性更改为已修复,同时以消息提示的形式告知用户修复内容。
为了便于理解,本发明实施例还提供了如图4所示的另一种数据同步方法的流程示意图。如图4所示,在DI平台上创建同步任务后,经过任务审批,将同步任务的配置数据写入到ZooKeeper中,数据同步服务通过监听ZooKeeper的节点变化,决定是否启动新的同步任务。当监听到ZooKeeper创建节点时,数据同步服务启动新的同步任务,之后会根据配置数据所指示的输入和输出方式,从数据源(即Kafka)拉取数据,然后将获取的数据,实时写入至目的存储组件Elasticsearch、TiDB中;同时,数据监控服务也会对同步任务的数据一致性进行定时监控,即每小时第5分钟校验上一个小时同步完成的数据;若出现了不一致数据情况,可通过改流程创建同步类型为存量同步的同步任务,来修复数据。当监听到ZooKeeper删除节点时,数据同步服务下线对应的同步任务;当监听到ZooKeeper更改节点时,数据同步服务从ZooKeeper获取相应同步任务更改后的配置数据,并基于该更改后的配置数据重新启动相应同步任务。
本发明实施例中的数据同步服务,除了Canal开源服务外,也可以采用springboot构建其他同步服务,通过动态监听ZooKeeper节点的新增、删除、更改操作,发布和下线同步任务,源数据统一从Kafka消费,并将消费到的数据,输出到指定的存储组件中。
本发明实施例基于大数据技术和互联网技术构建了一个数据同步系统,能帮忙业务快速接入数据,节省了传统数据同步带来的人力开发和维护成本,大大提高了工作效率,并能支持对异常数据的修复,满足多种存储组件间的数据同步需求,保证了按数据对业务决策的及时性;标准化了数据同步流程,使用简单,门槛低。
对应于上述的数据同步方法,本发明实施例还提供了一种数据同步装置,参见图5所示的一种数据同步装置的结构示意图,该装置包括:
写入模块52,用于根据与源存储组件对应的接入配置信息,将源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;
获取模块54,用于当监听到存在待处理的同步任务时,获取同步任务的配置数据,该配置数据包括源存储组件、Kafka的目标主题和目的存储组件的地址信息;
同步模块56,用于根据上述配置数据,执行同步任务。
本发明实施例提供的数据同步装置,先根据与源存储组件对应的接入配置信息,将源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;当监听到存在待处理的同步任务时,获取同步任务的配置数据,该配置数据包括源存储组件、Kafka的目标主题和目的存储组件的地址信息;进而根据该配置数据,执行同步任务。该装置支持多服务实例接入,可以满足多种存储组件间的数据同步需求,实现了数据同步的实时性,从而能够保证业务进度,且与传统数据同步方案相比,单次导入的数据量大大减少,因此提高了目的存储组件的性能。
进一步地,上述源存储组件包括关系型数据库管理系统MySQL,接入配置信息包括库表的白名单配置信息和主题映射关系配置信息;上述写入模块52具体用于:通过开源中间件Canal将MySQL的每个服务实例伪装成一个从库节点,实时获取每个服务实例对应的二进制日志binlog数据;对每个服务实例对应的binlog数据进行数据格式转换,得到每个服务实例对应的预定数据格式的源数据;根据库表的白名单配置信息和主题映射关系配置信息,将每个服务实例对应的源数据写入Kafka的对应主题中。
进一步地,上述获取模块54具体用于:当监听到ZooKeeper创建节点时,确定存在待处理的同步任务;ZooKeeper用于在存入新的同步任务的配置数据时进行节点创建;从ZooKeeper中获取该同步任务的配置数据。
进一步地,上述同步模块56具体用于:根据上述配置数据,启动与上述同步任务对应的消费者线程;该消费者线程用于从Kafka的目标主题中拉取来自源存储组件的目标源数据。
进一步地,上述同步模块56还用于:当监测到消费者线程在运行过程中出现异常中止时,将未处理成功的数据发送至Kafka的临时主题中;当该消费者线程重新启动时,从Kafka的临时主题中重新消费该未处理成功的数据。
进一步地,上述装置还包括与同步模块56连接的监控模块,监控模块用于:实时对消费者线程的输出日志进行监控;当监控到输出日志存在异常时,将输出日志中的异常日志条数和异常日志内容发送至预设的终端设备。
进一步地,上述装置还包括与同步模块56连接的校验模块,校验模块用于:定时对预设时长范围内同步完成的数据进行一致性校验,得到校验结果,该校验结果包括不一致数据和不一致原因;将该校验结果输出至指定文件中,以进行数据修复。
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
参见图6,本发明实施例还提供一种数据同步设备12,包括:处理器60,存储器61,总线62和通信接口63,所述处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。
其中,存储器61可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory,简称NVM),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线62可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器61用于存储程序,所述处理器60在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的数据同步方法。该计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
根据与源存储组件对应的接入配置信息,将所述源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;
当监听到存在待处理的同步任务时,获取所述同步任务的配置数据,所述配置数据包括所述源存储组件、所述Kafka的目标主题和目的存储组件的地址信息;
根据所述配置数据,执行所述同步任务。
2.根据权利要求1所述的方法,其特征在于,所述源存储组件包括关系型数据库管理系统MySQL,所述接入配置信息包括库表的白名单配置信息和主题映射关系配置信息;所述根据与源存储组件对应的接入配置信息,将所述源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中,包括:
通过开源中间件Canal将所述MySQL的每个服务实例伪装成一个从库节点,实时获取每个所述服务实例对应的二进制日志binlog数据;
对每个所述服务实例对应的binlog数据进行数据格式转换,得到每个所述服务实例对应的预定数据格式的源数据;
根据所述库表的白名单配置信息和所述主题映射关系配置信息,将每个所述服务实例对应的源数据写入所述Kafka的对应主题中。
3.根据权利要求1所述的方法,其特征在于,所述当监听到存在待处理的同步任务时,获取所述同步任务的配置数据,包括:
当监听到ZooKeeper创建节点时,确定存在待处理的同步任务;所述ZooKeeper用于在存入新的同步任务的配置数据时进行节点创建;
从所述ZooKeeper中获取所述同步任务的配置数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述配置数据,执行所述同步任务,包括:
根据所述配置数据,启动与所述同步任务对应的消费者线程;所述消费者线程用于从所述Kafka的目标主题中拉取来自所述源存储组件的目标源数据,并将拉取的所述目标源数据实时同步至所述目的存储组件中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当监测到所述消费者线程在运行过程中出现异常中止时,将未处理成功的数据发送至所述Kafka的临时主题中;
当所述消费者线程重新启动时,从所述Kafka的临时主题中重新消费所述未处理成功的数据。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
实时对所述消费者线程的输出日志进行监控;
当监控到所述输出日志存在异常时,将所述输出日志中的异常日志条数和异常日志内容发送至预设的终端设备。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
定时对预设时长范围内同步完成的数据进行一致性校验,得到校验结果,所述校验结果包括不一致数据和不一致原因;
将所述校验结果输出至指定文件中,以进行数据修复。
8.一种数据同步装置,其特征在于,包括:
写入模块,用于根据与源存储组件对应的接入配置信息,将所述源存储组件中每个服务实例对应的源数据实时写入分布式日志系统Kafka的对应主题中;
获取模块,用于当监听到存在待处理的同步任务时,获取所述同步任务的配置数据,所述配置数据包括所述源存储组件、所述Kafka的目标主题和目的存储组件的地址信息;
同步模块,用于根据所述配置数据,执行所述同步任务。
9.一种数据同步系统,其特征在于,包括源存储组件、数据同步设备和目的存储组件,所述数据同步设备分别与所述源存储组件和所述目的存储组件连接;
所述数据同步设备包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962016.0A CN113656503A (zh) | 2021-08-20 | 2021-08-20 | 数据同步方法、装置、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962016.0A CN113656503A (zh) | 2021-08-20 | 2021-08-20 | 数据同步方法、装置、系统及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113656503A true CN113656503A (zh) | 2021-11-16 |
Family
ID=78480600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962016.0A Pending CN113656503A (zh) | 2021-08-20 | 2021-08-20 | 数据同步方法、装置、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656503A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114202365A (zh) * | 2021-12-15 | 2022-03-18 | 广东电力信息科技有限公司 | 一种基于电力行业营销系统实时数据的监控方法 |
CN114584574A (zh) * | 2022-04-28 | 2022-06-03 | 武汉四通信息服务有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN114756630A (zh) * | 2022-04-18 | 2022-07-15 | 焦点科技股份有限公司 | 一种基于Flink状态的实时数仓建设方法 |
CN115242787A (zh) * | 2022-07-22 | 2022-10-25 | 恒生电子股份有限公司 | 消息处理系统及方法 |
CN115442272A (zh) * | 2022-08-15 | 2022-12-06 | 中国银联股份有限公司 | 一种检测丢失数据的方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800272A (zh) * | 2019-02-25 | 2019-05-24 | 广州虎牙信息科技有限公司 | 缓存数据同步方法、服务器、应用系统及存储装置 |
CN111723160A (zh) * | 2020-08-24 | 2020-09-29 | 国网浙江省电力有限公司 | 一种多源异构增量数据同步方法及系统 |
CN112835862A (zh) * | 2019-11-22 | 2021-05-25 | 北京达佳互联信息技术有限公司 | 一种数据同步方法、装置、系统及存储介质 |
-
2021
- 2021-08-20 CN CN202110962016.0A patent/CN113656503A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800272A (zh) * | 2019-02-25 | 2019-05-24 | 广州虎牙信息科技有限公司 | 缓存数据同步方法、服务器、应用系统及存储装置 |
CN112835862A (zh) * | 2019-11-22 | 2021-05-25 | 北京达佳互联信息技术有限公司 | 一种数据同步方法、装置、系统及存储介质 |
CN111723160A (zh) * | 2020-08-24 | 2020-09-29 | 国网浙江省电力有限公司 | 一种多源异构增量数据同步方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114202365A (zh) * | 2021-12-15 | 2022-03-18 | 广东电力信息科技有限公司 | 一种基于电力行业营销系统实时数据的监控方法 |
CN114756630A (zh) * | 2022-04-18 | 2022-07-15 | 焦点科技股份有限公司 | 一种基于Flink状态的实时数仓建设方法 |
CN114756630B (zh) * | 2022-04-18 | 2024-04-19 | 焦点科技股份有限公司 | 一种基于Flink状态的实时数仓建设方法 |
CN114584574A (zh) * | 2022-04-28 | 2022-06-03 | 武汉四通信息服务有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN115242787A (zh) * | 2022-07-22 | 2022-10-25 | 恒生电子股份有限公司 | 消息处理系统及方法 |
CN115242787B (zh) * | 2022-07-22 | 2023-09-05 | 恒生电子股份有限公司 | 消息处理系统及方法 |
CN115442272A (zh) * | 2022-08-15 | 2022-12-06 | 中国银联股份有限公司 | 一种检测丢失数据的方法、装置、设备及存储介质 |
CN115442272B (zh) * | 2022-08-15 | 2024-05-14 | 中国银联股份有限公司 | 一种检测丢失数据的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113656503A (zh) | 数据同步方法、装置、系统及计算机可读存储介质 | |
CN110147411B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN108536761B (zh) | 报表数据查询方法及服务器 | |
US10042903B2 (en) | Automating extract, transform, and load job testing | |
WO2017080431A1 (zh) | 一种基于日志解析的数据库复制方法及装置 | |
WO2018126964A1 (zh) | 任务执行方法、装置和服务器 | |
US11188560B2 (en) | Synchronizing object in local object storage node | |
US9418241B2 (en) | Unified platform for big data processing | |
CN109669976B (zh) | 基于etl的数据服务方法及设备 | |
CN112559475B (zh) | 数据实时捕获和传输方法及系统 | |
CN110515795B (zh) | 一种大数据组件的监控方法、装置、电子设备 | |
US20150261766A1 (en) | Method and apparatus for determining a range of files to be migrated | |
CN106886535A (zh) | 一种适配多种数据源的数据抽取方法和装置 | |
CN108874825B (zh) | 一种异常数据的校验方法和装置 | |
CN103927314A (zh) | 一种数据批量处理的方法和装置 | |
CN110019116A (zh) | 数据追溯方法、装置、数据处理设备及计算机存储介质 | |
CN111124382A (zh) | Java中的属性赋值方法、装置及服务器 | |
CN114722119A (zh) | 数据同步方法及系统 | |
CN111193622B (zh) | 一种非对称配置的管理方法、装置、设备及可读存储介质 | |
CN113986241A (zh) | 一种基于知识图谱的业务规则的配置方法以及装置 | |
CN113886485A (zh) | 数据处理方法、装置、电子设备、系统和存储介质 | |
CN113468196A (zh) | 用于处理数据的方法、装置、系统、服务器和介质 | |
CN111210826B (zh) | 语音信息处理方法、装置、存储介质和智能终端 | |
CN114647548A (zh) | 一种日志生成方法及装置 | |
CN116737693A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant after: Beijing Shuidi Technology Group Co.,Ltd. Address before: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant before: Beijing Health Home Technology Co.,Ltd. |