Canal mysql数据库同步到es
Canal与Elasticsearch集成指南
[可视化工具](https://knife.blog.csdn.net/article/details/126348055)
下载Canal 1.1.5版本 (alpha-2)
请从GitHub Releases下载Canal 1.1.5版本中间版本alpha-2。仅需下载canal.deployer
和canal.adapter
组件。
安装Elasticsearch
确保已安装Elasticsearch 7.10.0 Windows x86_64版本。
配置Canal Deployer
编辑文件路径为F:\cxes\canal.deployer-1.1.5-SNAPSHOT\conf\example
的配置文件:
canal.instance.master.address=127.0.0.1:3306 # 数据库地址
canal.instance.dbUsername=root # 数据库账号
canal.instance.dbPassword=root # 数据库密码
配置Canal Adapter
修改bootstrap.yml
编辑文件路径为F:\cxes\canal.adapter-1.1.5-SNAPSHOT\conf\bootstrap.yml的配置文件如下:
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 # kafka rocketMQ
canalServerHost: 127.0.0.1:11111
batchSize: 500
syncBatchSize: 1000
retries: 0
srcDataSources:
defaultDS: # 数据源名称
url: jdbc:mysql://127.0.0.1:3306/newdata?useUnicode=true
username: root
password: root
canalAdapters:
- instance: example # canal instance Name or mq topic name
groups:
- groupId: g1
outerAdapters:
- name: logger
- name: es7 # es7文件目录
hosts: 127.0.0.1:9200 # ES的访问地址
properties:
mode: rest # 配置es7
cluster.name: elasticsearch # ES的名称
修改ES7配置
编辑文件路径为F:\cxes\canal.adapter-1.1.5-SNAPSHOT\conf\es7的配置文件如下:
dataSourceKey: defaultDS # 源数据源的key, 对应上面配置的srcDataSources中的值
destination: example # canal的instance或者MQ的topic
groupId: g1 # 对应MQ模式下的groupId, 只会同步对应groupId的数据
esMapping:
_index: order_20241129 # es 的索引名称
_id: _id # es 的_id, 如果不配置该项必须配置下面的pk项_id则会由es自动分配
sql: "SELECT id as _id,NAMES AS frame_order_code,
phton AS buyer_id,
msg AS buyer_name
FROM jiedao" # sql映射
commitBatch: 3000 # 提交批大小