目录

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%";

es中的Completion类型对应mysql什么类型_数据


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

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

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

3 BeeDI同步操作

3.1 创建同步作业

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

MySQL接口设置:

es中的Completion类型对应mysql什么类型_MySQL_02

ElasticSearch接口设置:

es中的Completion类型对应mysql什么类型_MySQL_03

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

es中的Completion类型对应mysql什么类型_数据_04

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

es中的Completion类型对应mysql什么类型_创建用户_05

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

es中的Completion类型对应mysql什么类型_创建用户_06

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

es中的Completion类型对应mysql什么类型_elasticsearch_07

es中的Completion类型对应mysql什么类型_mysql_08

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

es中的Completion类型对应mysql什么类型_创建用户_09

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

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;

   

es中的Completion类型对应mysql什么类型_创建用户_10

3.3 预览MySQL变化数据

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

 

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

es中的Completion类型对应mysql什么类型_mysql_11

es中的Completion类型对应mysql什么类型_MySQL_12

es中的Completion类型对应mysql什么类型_elasticsearch_13

3.4 同步数据到ES

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

es中的Completion类型对应mysql什么类型_elasticsearch_14

 

es中的Completion类型对应mysql什么类型_mysql_11

浏览验证同步的LOB数据

es中的Completion类型对应mysql什么类型_数据_16