Mysql增量数据实时同步方法、计算机可读存储介质技术

技术编号:39314569 阅读:8 留言:0更新日期:2023-11-12 15:58
本发明专利技术实施例公开了Mysql增量数据实时同步方法、计算机可读存储介质;方法包括步骤:S1、利用Canal监听数据库变更,获取增量数据,将增量数据发送到kafka;S2、利用Structured Streaming读取kafka的数据流,进行实时处理分析,并写入外部系统,实现增量数据的同步。Mysql增量数据实时同步方法,基于Canal、Kafka和Structured Streaming的数据采集和分析流程包括安装配置Canal、连接并同步数据到Kafka、使用Structured Streaming读取Kafka数据、定义数据结构和转换操作、执行流数据处理逻辑以及输出结果或存储数据到外部系统等步骤。Mysql增量数据实时同步方法可以实现实时的数据采集、流数据处理和分析,具有高可靠性、低延迟和强大的数据处理能力。低延迟和强大的数据处理能力。低延迟和强大的数据处理能力。

【技术实现步骤摘要】
Mysql增量数据实时同步方法、计算机可读存储介质


[0001]本专利技术属于数据处理
,具体涉及Mysql增量数据实时同步方法、计算机可读存储介质。

技术介绍

[0002]随着互联网技术的飞速发展,大数据时代已经到来,数据实时采集、同步、计算并及时响应和反馈结果成为根据业务的实时变化及时调整策略并快速响应执行解决方案中至关重要的环节。
[0003]数据同步环节是其中重要的内容。通常数据同步是指在不影响业务方正常业务的情况下从业务数据库同步实时数据和历史数据到大数据仓库,为后续的变量计算等操作提供有效实时的数据。
[0004]Canal是基于Java开发、基于数据库增量日志解析、提供增量数据订阅和消费、目前主要支持mysql数据库的同步系统。
[0005]kafka是一个分布式、支持分区、多副本、基于zookeeper协调的分布式消息系统,其最大的特性是可以实时处理大量数据以满足各种需求场景,比如基于hadoop的批处理系统、低延迟的实时系统、storm/spark流式处理引擎,web/nginx日志、访问日志,消息服务等。目前宜信也有过类似系统,借鉴了linkedin的思想通过canal和kafka来实现数据同步操作。但是,其维度单一,添加、减少所对接的业务线不方便,无法根据对接业务线控制并发量,不同集群之间的kafka、hbase、elasticsearch无法写入。

技术实现思路

[0006]有鉴于此,一方面,一些实施例公开了Mysql增量数据实时同步方法,其特征在于,包括步骤:
[0007]S1、利用Canal监听数据库变更,获取增量数据,将增量数据发送到kafka;
[0008]S2、利用Structured Streaming读取kafka的数据流,进行实时处理分析,并写入外部系统,实现增量数据的同步。
[0009]进一步,一些实施例公开的Mysql增量数据实时同步方法,步骤S2还包括对异常数据采取报警机制。
[0010]一些实施例公开的Mysql增量数据实时同步方法,步骤S2还包括在实时数据仪表盘上可视化展示数据处理结果。
[0011]一些实施例公开的Mysql增量数据实时同步方法,步骤S1、利用canal监听数据库变更具体包括:
[0012]S11、读取mysql BinalyLog日志;
[0013]S12、EventParser向mysql发送dump命令,mysql接受到dump命令后,由EventParser从mysql上拉取binlog数据进行解析,并传递给EventSink,更新Log Position;
[0014]S13、EventSink对数据进行过滤、分发、归并和加工;
[0015]S14、EventStore利用三个指针Put、Get和Ack标识数据的存储和读取位置。
[0016]一些实施例公开的Mysql增量数据实时同步方法,骤S12中,EventParser在向mysql发送dump命令之前,先从Log Position中获取上次解析成功的位置,如果是第一次启动,则获取初始指定位置或者当前数据段binlog位点。
[0017]一些实施例公开的Mysql增量数据实时同步方法,步骤S1包括在源数据库上安装和配置canal,配置相应的数据库连接信息、监听的数据表、过滤条件。
[0018]一些实施例公开的Mysql增量数据实时同步方法,步骤S1包括:Canal Server订阅源数据库的binlog,解析出增量数据,将增量数据转换为消息格式,并将其发送到kafka消息队列中。
[0019]一些实施例公开的Mysql增量数据实时同步方法,步骤S2还包括在Structured Streaming中定义数据结构和模式的步骤。
[0020]一些实施例公开的Mysql增量数据实时同步方法,步骤S2中外部系统包括外部控制台、关系型数据库、NoSQL数据库、分布式文件系统。
[0021]另一方面,一些实施例公开了计算机可读存储介质,存储介质存储有计算机指令,当计算机读取计算机指令时,执行Mysql增量数据实时同步方法。
[0022]本专利技术实施例公开的Mysql增量数据实时同步方法,Canal可以监听数据库的binlog,将增量数据实时传输到Kafka消息队列中,Structured Streaming可以实时读取Kafka中的数据流,并进行实时处理和计算,这种架构使得数据的采集和分析过程近乎实时,能够及时响应业务变化。Canal、Kafka和Structured Streaming都是高度可扩展的组件,可以通过简单地增加节点或分区来提高系统的吞吐量和容量,能够处理大规模的数据并满足不断增长的业务需求;Canal、Kafka和Structured Streaming都具备弹性容错的特性,当出现故障或部分组件失效时,能够自动适应并继续正常运行,这种弹性容错机制保证了数据采集和分析的稳定性和可靠性;Structured Streaming提供丰富的数据处理功能,包括数据转换、聚合、联接、窗口操作等,可以对流数据进行灵活的处理和分析,满足不同场景下的需求。Canal、Kafka和Structured Streaming都经过大规模应用验证,具有稳定和可靠的特点,它们提供了一系列的容错机制,如数据备份、故障恢复等,以确保数据不丢失和系统持续稳定运行;Canal、Kafka和Structured Streaming都属于成熟的开源项目,拥有庞大的用户和开发社区,可以获得广泛的技术支持和丰富的生态系统,包括文档、案例、工具和第三方集成等;基于Canal、Kafka和Structured Streaming的数据采集和分析能够实现高实时性、可扩展性、弹性容错和多样化的数据处理能力,提供高可靠性和丰富的生态系统支持,从而带来良好的效果和价值。
附图说明
[0023]图1一些实施例公开的Mysql增量数据实时同步方法流程示意图;
[0024]图2实施例1公开的Mysql增量数据实时同步方法流程示意图。
具体实施方式
[0025]在这里专用的词“实施例”,作为“示例性”所说明的任何实施例不必解释为优于或
好于其它实施例。本专利技术实施例中性能指标测试,除非特别说明,采用本领域常规试验方法。应理解,本专利技术实施例中所述的术语仅仅是为描述特别的实施方式,并非用于限制本专利技术实施例公开的内容。
[0026]除非另有说明,否则本文使用的技术和科学术语具有本专利技术实施例所属
的普通技术人员通常理解的相同含义;作为本专利技术实施例中其它未特别注明的试验方法和技术手段均指本领域内普通技术人员通常采用的实验方法和技术手段。
[0027]在本文中,包括权利要求书中,连接词,如“包含”、“包括”、“带有”、“具有”、“含有”、“涉及”、“容纳”等被理解为是开放性的,即是指“包括但不限于”。只有连接词“由
……
构成”和“由
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.Mysql增量数据实时同步方法,其特征在于,包括步骤:S1、利用Canal监听数据库变更,获取增量数据,将增量数据发送到kafka;S2、利用Structured Streaming读取kafka的数据流,进行实时处理分析,并写入外部系统,实现增量数据的同步。2.根据权利要求1所述的Mysql增量数据实时同步方法,其特征在于,步骤S2还包括对异常数据采取报警机制。3.根据权利要求1所述的Mysql增量数据实时同步方法,其特征在于,步骤S2还包括在实时数据仪表盘上可视化展示数据处理结果。4.根据权利要求1~3任一项所述的Mysql增量数据实时同步方法,其特征在于,步骤S1、利用canal监听数据库变更具体包括:S11、读取mysql BinalyLog日志;S12、EventParser向mysql发送dump命令,mysql接受到dump命令后,由EventParser从mysql上拉取binlog数据进行解析,并传递给EventSink,更新Log Position;S13、EventSink对数据进行过滤、分发、归并和加工;S14、EventStore利用三个指针Put、Get和Ack标识数据的存储和读取位置。5.根据权利要求4所述的Mysql增量数据...

【专利技术属性】
技术研发人员:杨斌于洋张宝庆张立斌庄力
申请(专利权)人:中远海运科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1