一、配置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相关推荐

  1. 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 ...

  2. 使用Canal同步数据到ES

    一.Canal概述 1.Canal是什么? Canal是阿里巴巴开源的一个组件,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费.canal的介绍,在github 上的官方文档介 ...

  3. 使用canal同步MySQL数据到Elasticsearch(ES)

    目录 1.功能及使用场景 1.1.功能介绍 1.2.使用场景 2.需求引入 3.canal文件下载及准备 3.1 下载文件 3.2 准备文件 4.deployer安装及效果测试 4.1.deploye ...

  4. canal实现mysql同步Elasticsearch数据linux中安装ELK

    linux中ELK数据同步 前言 ElasticSearch安装 下载安装包&&添加es用户 启动 ElasticSearch HEAD安装 下载&&安装 配置 设置跨 ...

  5. 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 在 ...

  6. 记一次中台数据传输同步Elasticsearch失败的车祸现场

    目录 一.背景 二.题外话 三.开始排查 四.为什么索引处于只读状态呢? 五.如何解决 一.背景 前几天小哈在钉钉群里收到重庆业务线反馈,说是中台数据传输中间件在同步 Mysql 增量数据到 Elas ...

  7. canal同步mysql到es

    canal 主要用途 是基于 **MySQL 数据库增量日志解析**,提供**增量数据订阅和消费**. 可以简单地把canal理解为一个用来**同步增量数据的一个工具**. 工作原理 canal的工作 ...

  8. 一键同步Elasticsearch,DataWorks数据集成同步解决方案上线!

    简介:企业的实时数据除了存储在大数据引擎中,还有很多非结构化的日志数据,通过阿里云的Elasticsearch,用全托管的方式提供低成本的冷热存储方案,轻松助力企业搭建统一的云上全观测运维监控平台,实 ...

  9. kafka数据同步Elasticsearch深入详解

    1.kafka同步到Elasticsearch方式? 目前已知常用的方式有四种: 1)logstash_input_kafka插件: 缺点:不稳定(ES中文社区讨论) 2)spark stream同步 ...

最新文章

  1. AMD–7nm “Rome”芯片SOC体系结构,支持64核
  2. 避坑指南:数据科学家新手常犯的13个错误(附工具、学习资源链接)
  3. mathcal 对应于什么库_如何快速构建React组件库
  4. 在腾讯云轻量云服务器上搭建mysql数据库
  5. mdm.Dialogs.promptModal()使用
  6. git提取和拉取区别_每天一Git之起步 - 关于版本控制
  7. OpenShift 之 用CodeReady Workspaces开发Quarkus云原生应用
  8. 软件测试面试题-接口测试
  9. 性能测试学习01_理解性能测试基础知识
  10. 【NLP】之 结巴分词
  11. TestStand顺序过程模型中的模型回调序列列表
  12. java 支付宝对账文件处理,支付宝账单下载读文件解析
  13. 怎样修复计算机系统软件,重装系统后软件如何恢复呢?
  14. 未支付订单超时处理分析
  15. 计算机手工绘图,你知道做毕业设计的时候为什么一定要有手工绘图呢?
  16. 婚恋相亲源码-视频相亲app将会是直播的下一个风口吗?
  17. 写给产品经理的12封信(第07封:学习能力)
  18. ViewFlipper 的简单使用
  19. raspberry pi到手,折腾成web服务器,加小小鄙视下网通
  20. PHP里把括号变成英文的方法,php怎么去除括号

热门文章

  1. GGS-DDU 【HDU - 4966】【最小树形图】
  2. NETDMIS5.0手动测量2023
  3. 2020年小程序互联网发展白皮书.PDF
  4. 一张大尺度美女图,竟然推进了AI算法的进步。。。
  5. 新零售场景下数美手把手教你 怎么样抵御网络黑产
  6. 你们是不是很缺大数据?
  7. pyinstaller 打包py文件 以及字体、图片等资源的引用
  8. window到linux文件名乱码和文件内容乱码解决总结
  9. 三维设计软件Autodesk 123D Design(附安装包下载)
  10. 电子价签折腾笔记1 拆解分类(不断更新)