
文章插图

文章插图
修改mytest_user.yml 文件
- 在 es7 文件夹

文章插图
dataSourceKey: defaultDS #源数据源的key, 对应上面配置的srcDataSources中的值destination: example # cannal的instance或者MQ的topicgroupId: g1 # 对应MQ模式下的groupId, 只会同步对应groupId的数据esMapping:_index: area_city# es 的索引名称_id: _id # es 的_id, 如果不配置该项必须配置下面的pk项_id则会由es自动分配upsert: truepk: id # 如果不需要_id, 则需要指定一个属性为主键属性# sql映射sql: "SELECT id AS _id, pid, deep, name, pinyin_prefix, pinyin, ext_id, ext_name FROM area_city"#objFields:#_labels: array:;etlCondition: "where a.c_time>={}" # etl 的条件参数commitBatch: 3000 # 提交批大小
sql 映射中的 sql语句,为 id 其别名为 _id 不然在同步时为出错sql 字段不要写`` 不然会有问题,这个折磨我好久 ,
编写完成重启容器:
BASH$ docker restart canal-adapter
测试同步全量数据postman 或者 xshellcurl http://localhost:8081/etl/es7/mytest_user.yml -X POST
创建表CREATE TABLE `area_city` (`id` bigint(20) NOT NULL COMMENT '城市编号',`pid` int(11) NOT NULL COMMENT '上级ID',`deep` int(11) NOT NULL COMMENT '层级深度;0:?。?:市,2:区 , 3:镇',`name` varchar(255) NOT NULL COMMENT '城市',`pinyin_prefix` varchar(255) NOT NULL COMMENT 'name的拼音前缀',`pinyin` varchar(255) NOT NULL COMMENT 'name的完整拼音',`ext_id` varchar(50) NOT NULL COMMENT '数据源原始的编号;如果是添加的数据,此编号为0\r\n',`ext_name` varchar(255) NOT NULL COMMENT '数据源原始的名称 , 为未精简的名称\r\n') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
表要创建在 application.yml 所设置的数据库中创建 es 索引
PUT /index{"mappings": {"properties": {"id":{"type": "long"},"pid":{"type": "integer"},"deep":{"type": "integer"},"name":{"type": "text"},"pinyin_prefix":{"type": "text"},"pinyin":{"type": "text"},"ext_id":{"type": "text"},"ext_name":{"type": "text"}}} }

文章插图
推荐阅读
- MySQL的日志文件
- 通过netty把百度地图API获取的地理位置从Android端发送到Java服务器端
- Flink WordCount入门
- 01-MySQL8主从详解
- 如何实现通过Leaflet加载dwg格式的CAD图
- 通过QQ抓IP查询地址
- mysql安装教程-window操作系统
- 通过openlayers加载dwg格式的CAD图并与互联网地图叠加
- ubuntu-22.04 树莓派Zero 2 W通过.NET6和libusb操作USB读写
- Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化