MySQL 实时同步到 ES 轻松配置

目录

1 基本概述

2 环境配置

2.1 创建用户

2.2 启用BinLog

3 BeeDI同步操作

3.1 创建同步作业

3.2 创建测试数据

3.3 预览MySQL变化数据

3.4 同步数据到ES

 


1 基本概述

本文介绍采用灵蜂数据集成软件BeeDI将MySQL数据实时同步到ElasticSearch的配置操作过程。BeeDI支持时间戳、触发器、日志解析、差异比对等多种同步模式,对于实时同步需要采用日志解析模式

2 环境配置

2.1 创建用户

在主库创建同步用户,以用户sync为例,创建用户及权限分配语句如下:

CREATE USER 'sync'@'%' IDENTIFIED BY 'xxxxx';

GRANT SELECT,PROCESS,SUPER, REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'sync'@'%';

2.2 启用BinLog

查询主库日志开启状态及日志记录格式:

show variables like 'log_bin';

show variables like "%binlog_format%";

MySQL 实时同步到 ES 轻松配置_第1张图片

如果日志状态为OFF或日志记录格式不为ROW,则编辑my.ini文件,设置以下项目内容:

log-bin="xxxxxx"  --开启日志

binlog_format="ROW" --日志记录格式

3 BeeDI同步操作

3.1 创建同步作业

在BeeDI新建ETL作业,作业名称指定mysql_es,类型指定ETL模板,然后在模板中依次设置MySQL和ES连接,操作如下:

MySQL接口设置:

MySQL 实时同步到 ES 轻松配置_第2张图片

ElasticSearch接口设置:

MySQL 实时同步到 ES 轻松配置_第3张图片

从MySQL资源窗口拖拽要同步的表节点到ElasticSearch窗口释放,弹出新建表对话框,如下图:

MySQL 实时同步到 ES 轻松配置_第4张图片

调整新建表列定义,对于ElasticSearch,保留_id列为主键,源表对应的id列删除,选择【确定】按钮。

MySQL 实时同步到 ES 轻松配置_第5张图片

拖拽抽取组件窗口的ID列到装载组件窗口的_id列

MySQL 实时同步到 ES 轻松配置_第6张图片

点击抽取组件窗口的【选项】按钮,在弹出的【选项】对话框中勾选【增量抽取】,弹出【增量抽取设置】对话框

MySQL 实时同步到 ES 轻松配置_第7张图片

MySQL 实时同步到 ES 轻松配置_第8张图片

选择【日志】选项,拖拽标识列ID_到逻辑主键窗口

MySQL 实时同步到 ES 轻松配置_第9张图片

依次选择【返回】、【确定】按钮关闭对话框。

3.2 创建测试数据

insert into act_ge_bytearray(

ID_,REV_,NAME_,DEPLOYMENT_ID_,BYTES_,GENERATED_

) select 17510,REV_,NAME_,DEPLOYMENT_ID_,BYTES_,GENERATED_

from act_ge_bytearray where ID_ = 17503;

   

MySQL 实时同步到 ES 轻松配置_第10张图片

3.3 预览MySQL变化数据

选择装载组件的预览按钮,可以预览查看源表新产生的数据

 

对于LOB数据,可以进一步浏览

MySQL 实时同步到 ES 轻松配置_第11张图片

MySQL 实时同步到 ES 轻松配置_第12张图片

MySQL 实时同步到 ES 轻松配置_第13张图片

3.4 同步数据到ES

选择工具栏的【启动】按钮,执行当前任务,将MySQL数据变化同步到EllasticSearch,任务运行结束后,右键选择ElasticSearch资源窗口的目标表,在快捷菜单中选择【预览数据】,检查目标表数据,验证同步过程。

MySQL 实时同步到 ES 轻松配置_第14张图片

 

MySQL 实时同步到 ES 轻松配置_第15张图片

浏览验证同步的LOB数据

MySQL 实时同步到 ES 轻松配置_第16张图片

你可能感兴趣的:(实时同步,数据集成,mysql,elasticsearch)