将MySQL数据库同步到Elasticsearch的方法技术

技术编号:26170998 阅读:36 留言:0更新日期:2020-10-31 13:41
本发明专利技术涉及数据库领域,具体涉及一种能够降低资源占用率、缩短查询时间、提高实时性的将MySQL数据库同步到Elasticsearch的方法。本发明专利技术的将MySQL数据库同步到Elasticsearch的方法,首先Canal组件实时拉取MySQL的binary log文件;然后Canal组件解析binary log文件;Canal组件将binary log文件解析后形成的数据发送至消息队列kafka;应用程序消费kafka的数据,并将数据转换成行数据row data;应用程序将行数据row data写入到Elasticsearch,这样就大大降低了数据同步延迟,使得业务系统响应更快,性能更高,新写入到MySQL的数据在很短的时间内就能被用户查询到。

【技术实现步骤摘要】
将MySQL数据库同步到Elasticsearch的方法
本专利技术涉及数据库领域,具体涉及一种能够降低资源占用率、缩短查询时间、提高实时性的将MySQL数据库同步到Elasticsearch的方法。
技术介绍
关系型数据库MySQL内的数据在查询大数据量和频繁查询的时候往往会出现性能瓶颈,造成系统响应变慢,而ElasticSearch(简称:ES)刚好能解决关系型数据库的查询缺陷,支持分布式部署、查询,性能较关系型数据库有非常大的提升,因此,系统设计往往采用的方案就是将数据写入MySQL,而后异步的方式同步到ES,从ES进行查询。目前往往采用定时任务扫描MySQL表的变化,将变化同步到ES。其缺点主要有:(1)实时性较低,定时任务是在固定时间间隔定时的去扫描,比如1分钟扫描一次,那么ES就存在0至1分钟的延时才能更新到MySQL的数据。(2)由于定时任务需要读取数据库数据,定时任务本身就会对数据库性能造成损耗,会占用其他用户访问数据库的资源。
技术实现思路
针对现有技术中的缺陷,本专利技术提供一种将本文档来自技高网...

【技术保护点】
1.将MySQL数据库同步到Elasticsearch的方法,其特征在于包括以下步骤:/na、通过Canal组件实时拉取MySQL的binary log文件;/nb、Canal组件解析binary log文件;/nc、Canal组件将binary log文件解析后形成的数据发送至消息队列kafka;/nd、应用程序消费kafka的数据,并将数据转换成行数据row data;/ne、应用程序将行数据row data写入到Elasticsearch。/n

【技术特征摘要】
1.将MySQL数据库同步到Elasticsearch的方法,其特征在于包括以下步骤:
a、通过Canal组件实时拉取MySQL的binarylog文件;
b、Canal组件解析binarylog文件;
c、Canal组件将binarylog文件解析后形成的数据发送至消息队列kafka;
d、应用程序消费kafka的数据,并将数据转换成行数据rowdata;
e、应用程序将行数据rowdata写入到Elasticsearch。


2.根据权利要求1所述的将MySQL数据库同步到Elasticsearch的方法,其特征在于:所述的步骤a中,Canal组件实时拉取MySQL的binarylog文件时,模拟mysqlslave交互协议,将自己伪装成mysqlslave,向mysqlmaster发送dump请求,mysqlmaster收到dump请求则开始推送binarylog给canal组件。


3.根据权利要求2所述的将MySQL数据库同步到Elasticsearch的方法,其特征在于:所述的步骤b中,Canal组件拉取binarylog文件后,进行解析,并翻译成protobuf格式的数据,再将该数据通过CanalMessageDeserializer进行解码。

【专利技术属性】
技术研发人员:王德海
申请(专利权)人:大数金科网络技术有限公司
类型:发明
国别省市:四川;51

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

1