Canal同步Elasticsearch
一、配置MySQL
因为我们需要用到主从库的功能,因此需要对mysql的配置文件做出相应的设置。来到MySQL的安装目录打开my.ini文件,在[mysqld]下增加如下信息后重启MySQL即可
server-id=1
log-bin=mysql-bin
binlog-format=ROW
二、配置Elasticsearch
打开Elasticsearch安装目录下的conf文件夹中的elasticserach.yml文件,将下图的字段按照自己实际情况填写即可。
三、创建用于测试的表和索引
1.创建数据库estest
在MySQL中执行如下命令创建数据库estest
create database estest;
2.创建表book
在MySQL中执行如下命令创建表book
use estest;
DROP TABLE IF EXISTS book
;
CREATE TABLE book
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
author
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (id
) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
3.创建索引estest_book
使用postman工具,向Elasticsearch发送PUT请求,请求地址为http://localhost:9200/estest_book/,以实现创建索引estest_book(注意:es中的索引命名需要是MySQL中的“数据库名_表明”,如数据库名为estest,表名book,则索引名应为estest_book)
{
“mappings”: {
“properties”: {
“name”: {
“type”: “text”
},
“author”: {
“type”: “text”
}
}
}
}
四、配置canal.deployer1.1.5
Github下载地址:https://github.com/alibaba/canal/releases/tag/canal-1.1.4
将canal.deployer下载下来后,我们需要对canal的连接配置做修改:进入安装目录后依次进入->confi->example,并打开instance.properties文件,对文件中的数据库配置信息进行修改,修改完成后保存退出即可
五、配置canal.adapter1.1.5
1.下载
Github下载地址:https://github.com/alibaba/canal/releases/tag/canal-1.1.5
2.配置文件
按照如下路径打开adapter的配置文件:根目录->conf->application.yml(配置可参考如下:cluster.name需要与Elasticsearch的配置的一致,hosts需要带上http://前缀)
server:
port: 8081
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
default-property-inclusion: non_null
canal.conf:
mode: tcp #tcp kafka rocketMQ rabbitMQ
flatMessage: true
zookeeperHosts:
syncBatchSize: 1000
retries: 0
timeout:
accessKey:
secretKey:
consumerProperties:
# canal tcp consumer
canal.tcp.server.host: 127.0.0.1:11111
canal.tcp.zookeeper.hosts:
canal.tcp.batch.size: 500
canal.tcp.username:
canal.tcp.password:
srcDataSources:
defaultDS:
url: jdbc:mysql://127.0.0.1:3306/estest?useUnicode=true
username: root
password: 123456
canalAdapters:
- instance: example # canal instance Name or mq topic name
groups:
- groupId: g1
outerAdapters:
- name: logger
- name: es7
key: exampleKey
hosts: http://127.0.0.1:9200 # 127.0.0.1:9200 for rest mode
properties:
mode: rest # or rest
cluster.name: elasticsearch
3.索引映射文件
按照如下路径打开:根目录->conf->es7->mytest_user.yml
表的映射文件名需要与索引名一致,因此我们需要将mytest_user.yml重命名为estest_book。
重命名后对该文件信息进行修改,具体配置参考如下:(其中,outerAdapterKey的信息需要与上面application.yml文件中outerAdapters.key的值保持一致)
dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: exampleKey
esMapping:
_index: estest_book
_id: _id
upsert: true
pk: id
sql: “select id as _id, name, author from book”
objFields:
_labels: array:;
etlCondition: “where a.c_time>={}”
commitBatch: 3000
测试
完成上面几个步骤后,我们就可以开始正式的测试环节了。依次启动MySQL->Elasticsearch->canal.deployer->canal.adapter。
当程序启动完毕后,开始向MySQL数据库中插入数据,观察Elasticsearch中数据的变化
MySQL中插入数据
canal.adapter日志信息(当MySQL中数据发生改变时,adapter对已经更新的从库的新信息推送给Elasticsearch,推送成功后将会返回Affected indexes: estest_book等关键信息)
此时使用postman向Elasticsearch发送GET请求,查看该索引下的数据变化情况
Get请求:http://localhost:9200/estest_book/_search
Canal同步Elasticsearch相关推荐
- Elasticsearch7.9集群部署,head插件,canal同步mysql数据到es,亲自测试,无坑
Elasticsearch集群部署 1.服务器规划 10.4.7.11 node1 10.4.7.12 node2 10.4.7.13 node3 1. 集群相关 一个运行中的 Elastics ...
- 使用Canal同步数据到ES
一.Canal概述 1.Canal是什么? Canal是阿里巴巴开源的一个组件,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费.canal的介绍,在github 上的官方文档介 ...
- 使用canal同步MySQL数据到Elasticsearch(ES)
目录 1.功能及使用场景 1.1.功能介绍 1.2.使用场景 2.需求引入 3.canal文件下载及准备 3.1 下载文件 3.2 准备文件 4.deployer安装及效果测试 4.1.deploye ...
- canal实现mysql同步Elasticsearch数据linux中安装ELK
linux中ELK数据同步 前言 ElasticSearch安装 下载安装包&&添加es用户 启动 ElasticSearch HEAD安装 下载&&安装 配置 设置跨 ...
- docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中
文章目录 1.docker安装 1.1 基于ubuntu 1.2 基于centos7 2.数据卷统一管理 3.安装mysql 4.安装elasticsearch 5.es安装ik中文分词器 5.1 在 ...
- 记一次中台数据传输同步Elasticsearch失败的车祸现场
目录 一.背景 二.题外话 三.开始排查 四.为什么索引处于只读状态呢? 五.如何解决 一.背景 前几天小哈在钉钉群里收到重庆业务线反馈,说是中台数据传输中间件在同步 Mysql 增量数据到 Elas ...
- canal同步mysql到es
canal 主要用途 是基于 **MySQL 数据库增量日志解析**,提供**增量数据订阅和消费**. 可以简单地把canal理解为一个用来**同步增量数据的一个工具**. 工作原理 canal的工作 ...
- 一键同步Elasticsearch,DataWorks数据集成同步解决方案上线!
简介:企业的实时数据除了存储在大数据引擎中,还有很多非结构化的日志数据,通过阿里云的Elasticsearch,用全托管的方式提供低成本的冷热存储方案,轻松助力企业搭建统一的云上全观测运维监控平台,实 ...
- kafka数据同步Elasticsearch深入详解
1.kafka同步到Elasticsearch方式? 目前已知常用的方式有四种: 1)logstash_input_kafka插件: 缺点:不稳定(ES中文社区讨论) 2)spark stream同步 ...
最新文章
- AMD–7nm “Rome”芯片SOC体系结构,支持64核
- 避坑指南:数据科学家新手常犯的13个错误(附工具、学习资源链接)
- mathcal 对应于什么库_如何快速构建React组件库
- 在腾讯云轻量云服务器上搭建mysql数据库
- mdm.Dialogs.promptModal()使用
- git提取和拉取区别_每天一Git之起步 - 关于版本控制
- OpenShift 之 用CodeReady Workspaces开发Quarkus云原生应用
- 软件测试面试题-接口测试
- 性能测试学习01_理解性能测试基础知识
- 【NLP】之 结巴分词
- TestStand顺序过程模型中的模型回调序列列表
- java 支付宝对账文件处理,支付宝账单下载读文件解析
- 怎样修复计算机系统软件,重装系统后软件如何恢复呢?
- 未支付订单超时处理分析
- 计算机手工绘图,你知道做毕业设计的时候为什么一定要有手工绘图呢?
- 婚恋相亲源码-视频相亲app将会是直播的下一个风口吗?
- 写给产品经理的12封信(第07封:学习能力)
- ViewFlipper 的简单使用
- raspberry pi到手,折腾成web服务器,加小小鄙视下网通
- PHP里把括号变成英文的方法,php怎么去除括号