使用canal实现MySQL 8 增量同步数据到 ElasticSearch 7.15.2中 linux

文章目录

          • 一、清空控制台
            • 1. 清空控制台
            • 2. 修改数据
            • 3. 监控数据
            • 4. 数据变化
            • 5. 索引查询
            • 6. 预期性能评估
            • 7. 增量同步分析
          • 二、验证方案
            • 2.1. 把shop索引删除
            • 2.2. 重建shop索引
            • 2.3. 修改id=取得数据
            • 2.4. 查看shop索引数据
            • 2.4. 修改分类表数据
            • 2.6. 监控
            • 2.7. 查看shop索引数据
            • 2.8. 总结
            • 2.9. 解决方案

一、清空控制台
1. 清空控制台

清空canal.adapter控制台

cd /app/canal/canal.adapter
tail -f logs/adapter/adapter.log

在这里插入图片描述

2. 修改数据

修改mysql的id=1的name的数据,将陕西22面馆(北京亦庄
改为gblfy陕西面馆(北京亦庄)在这里插入图片描述

3. 监控数据

监控canal.adapter控制台在这里插入图片描述

4. 数据变化
{"data": [{"id": 1,"created_at": 1637308432000,"updated_at": 1640159632000,"name": "gblfy陕西面馆(北京亦庄)","remark_score": 4.9,"price_per_man": 156,"latitude": 31.195341,"longitude": 120.915855,"category_id": 1,"tags": "新开业 人气爆棚","start_time": "10:00","end_time": "22:00","address": "船厂路36号","seller_id": 1,"icon_url": "/static/image/shopcover/xchg.jpg"}],"database": "dianpingdb","destination": "example","es": 1637644424000,"groupId": "g1","isDdl": false,"old": [{"name": "陕西22面馆(北京亦庄)"}],"pkNames": ["id"],"sql": "","table": "shop","ts": 1637644425043,"type": "UPDATE"
}
Affected indexes: shop 

从上面可以看出,canal.adapter监控到了我的数据变化,并进行增量的数据的同步到ES7中。

5. 索引查询
# 查询shop索引
GET /shop/_search
{"query": {"match": {"name": "gblfy"}}
}

在这里插入图片描述

6. 预期性能评估

我们要求最大性能(理论上):当用户修改id=1 中name的数据的值,其他索引的内容都不应该发生变化,仅仅对我对修改的id=1 中name的数据的值发生变化。
我们在配置canal.adapter的shop.xml中的sql时,是一个全量的sql。

SELECTa.id,a.NAME,a.tags,CONCAT( a.latitude, ',', a.longitude ) AS location,a.remark_score,a.price_per_man,a.category_id,b.`name` AS category_name,a.seller_id,c.remark_score AS seller_remark_score,c.disabled_flag AS seller_disabled_flag 
FROMshop aINNER JOIN category b ON a.category_id = b.idINNER JOIN seller c ON c.id = a.seller_id

在这里插入图片描述

7. 增量同步分析

sql中没有指定具体要求的数据的id,那canal.adapter怎么监控到我数据发生变化后,只同步我修改ID=1的这条数据呢?

  • 二种解释:

  • 第一种:
    canal.adapter内部做了一个这样的机制;
    当我修改ID=1的数据时,canal.adapter通过全量sql就可以把id=1的数据筛选出来,然后进行增量同步到es7的索引中。

  • 第二种:
    canal.adapter 内部武这样监控的机制,只要数据发生变化,就执行全量sql,做全量同步,只不过已经存在而索引让es7做更新操作而已。

二、验证方案
2.1. 把shop索引删除
# 删除shop索引
DELETE  /shop

在这里插入图片描述

2.2. 重建shop索引
PUT /shop
{"settings": {"number_of_shards": 1,"number_of_replicas": 1}, "mappings": {"properties": {"id":{"type": "integer"},"name":{"type": "text","analyzer": "ik_max_word","search_analyzer": "ik_smart"},"tags":{"type": "text","analyzer": "whitespace","fielddata": true},"location":{"type": "geo_point"},"remark_score":{"type": "double"},"price_per_man":{"type": "integer"},"category_id":{"type": "integer"},"category_name":{"type": "keyword"},"seller_id":{"type": "integer"},"seller_remark_score":{"type": "double"},"seller_disabled_flag":{"type": "integer"}}}
}

在这里插入图片描述

2.3. 修改id=取得数据

把id=1的name值由gblfy陕西面馆(北京亦庄)改成com.gblfy陕西面馆(北京亦庄)
在这里插入图片描述

2.4. 查看shop索引数据
# 查询shop索引
GET /shop/_search

在这里插入图片描述
从上面查询结果来看符合预期,对吧!

2.4. 修改分类表数据

把category表中id=1中的name值美食5修改成美食8
在这里插入图片描述

说明:

2.6. 监控

在这里插入图片描述
从截图中可以看出也监控到了,对吧,别急!

2.7. 查看shop索引数据

在这里插入图片描述
从上面截图中可以看到,数据canal.adapter 虽然监控到了,但是,es7中的数据没更新。

2.8. 总结

官网自带的canal.adapter 组件
canal.adapter 对单表增量同步,是支持的
一对一形式:mysql的一张表对应es的一个index
canal.adapter 对聚合sql(也就是多表查询),不支持

2.9. 解决方案

我们可以通过代码方式,可以自定义我们对于canal.adapter 的行为的能力。使用canal.deployer建立和mysql数据binlog之间的能力,摒弃掉canal.adapter,在点评搜索的应用当中,直接接入canal.deployer,以canal.deployer消费端的身份去消费我们对应的消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

30岁,真的是程序员迈不过去的坎吗?

经常听到有人在说:“现在技术迭代越来越快,程序员的压力更大了,30岁之后的程序员就不好找工作了......”,这不乏很多人在故意贩卖焦虑,但是也会引起我们对自己发展的思考。尤其刚入行的程序员会迷茫,会思考…

全球加速产品 方便更多学生获得申请名校的机会

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 青岛XX教育科技股份有限公司是英国爱德思考试局(Edexcel&#xff…

如何构建一个可持续的企业级数据赋能体系?

简介: 对于所有企业来说,数据决定了基于算力、算法等能做出哪些场景和应用。在本次首席技术官大数据专享会上,友盟首席产品官林鸣晖围绕业务数据化,数据资产化、资产应用化、应用价值化构建属于企业的可闭环、可沉淀、可持续的数据…

ElasticSearch 7.15.2 使用java canal 接入实现灵活化增量数据准实时同步

前言: ①canal.adapter-1.1.5 支持一对一单表的增量数据同步ElasticSearch 7; ②对于多表聚合场景的SQL满足不了我们的业务需求。 ③采用java canal 接入,可以实现灵活化增量数据准实时同步 文章目录一、java canal 接入1. 依赖导入2. 增加配…

2020 年最厉害的 10 门编程语言

作者 | 沉默王二来源 | 沉默王二对于很多初学编程的人来说,尤其是马上要入学的大一新生来说,选择哪门子编程语言实在是个痛苦的事。选择对了,毕业后顺利找到工作,完美走向职场;选择错了,毕业后受伤的才华无…

MaxCompute客户端在windows命令行下查询中文乱码怎么办?

MaxCompute客户端工具是阿里云大数据计算服务MaxCompue产品官方客户端工具,通过客户端工具可以连接MaxCompute项目,完成包括数据管理、数据上下传、作业执行、用户及授权管理等各项操作。 但有用户会碰到在Windows下的命令行中执行odpscmd后,…

SLS多云日志采集、处理及分析

场景描述 本文根据用户业务场景不同分别采用Logtail和Log producer写入阿里云日志服务,针对未使用其他日志采集服务的用户,推荐在第三方云平台或线下IDC服务器安装logtail采集并使用DCDN安全传输;针对已使用其他日志采集工具并且已有日志服务…

10分钟搭建完成人脸通行系统 百度『乘风』人脸智能化平台了解一下

目前人脸技术已在企业办公、智慧社区、金融保险等多领域多场景中落地应用,发展潜力巨大。8月21日,百度大脑开放日“乘风新基建,加速产业智能化升级”专场活动在乌镇召开。会上,基于百度大脑领先的人脸识别技术,百度智能…

聚焦数字化智慧安防的新型社区

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 引言 现如今,智慧城市建设已成为全球城市发展的必然趋势,全球仅…

Nexus 3.31.1-01搭建 maven 私服 windows

文章目录1. Nexus 3 下载2. 解压后目录3. 前台启动4. 浏览器访问5. 登录1. Nexus 3 下载 nexus3下载地址 2. 解压后目录 3. 前台启动 进行命令窗口,执行以下命令 nexus.exe /run等待出现这个信息 4. 浏览器访问 http://localhost:8081/ 点右上角登录 5. 登…

中邮智递通过数加和datav将系统和服务迁移到大数据平台

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 概述 中邮智递数据平台发展到现在经历了四个阶段: (1) 直接在业务生产系统开发生成报表…

百度大脑“乘风”新基建,“破浪”产业智能化落地

人脸识别技术在AI时代不仅可以带来便利,同时也提高了效率。8月21日,百度大脑开放日在乌镇举办“乘风新基建,加速产业智能化升级”专场,桐乡市经济和信息化局副局长陈再飞、乌镇镇科协秘书长钱永琪、桐乡市工业互联网企业联合会会长…

美柚上云 致力成为最懂女人的互联网企业

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 案例背景 美柚以让女人更美更健康为己任,致力成为最懂女人的互联网企业;美柚…

MaxCompute中如何使用OSS外部表读取JSON数据?

一、打开OSS,上传json文件 json文件内容展示: {"id":5644228109524316032,"sourceType":1} {"id":-736866360508848202,"sourceType":3} 二、登录DataWorks,建立外部表 建表语句: CRE…

阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

作者| 阿里文娱高级开发工程师 至德责编 | 王晓曼头图 | CSDN 下载自东方 IC用户在优酷或者其它互联网App上看到的文字、图片、视频等,都可以被称为内容,那么这些内容是如何被生产、管理和组织的?本文将简单介绍阿里文娱是如何利用网状关系组…

nexus3 作为maven 私服配置国内加速以及企业管理内部jar IDEA 实战

文章目录一、nexus3 配置1. 新建仓库概述2. 阿里云代理仓库3. 自己的仓库4. 自己的仓库组二、maven配置2.1. 私服配置2.2. 替换后的配置三、IntelliJ IDEA3.1. 创建项目3.2. 指定配置3.3. 下载依赖四、nexus3 监控4.1. 查看依赖版本4.2. 版本对比4.3. aliyun 仓库地址一、nexus…

大数据上云第一课:MaxCompute授权和外表操作躲坑指南

一、子账号创建、AK信息绑定 如果您是第一次使用子账号登录数加平台和使用DataWorks,需要确认以下信息: • 该子账号所属主账号的企业别名。 • 该子账号的用户名和密码。 • 该子账号的AccessKey ID和AccessKey Secret。 • 确认主账号已经允许子账号启…

程序员的年龄越大编程能力越弱???原来我们都理解错了

大多数人都说程序员是低调多金的代表,但是一旦年龄突破30岁,就容易陷入各种被嫌弃中,无法逃脱三十五岁定律。这让许多已到中年的程序员感觉忽然头上悬了几把剑。一位74岁的数据科学家Gene DAngelo则恰恰相反。他曾在社区提出话题:…

唱吧基于 MaxCompute 弥补自建体系的不足

本文作者:马星显 唱吧大数据负责人 使用 MaxCompute之前,唱吧使用自建体系来存储处理各端收集来的日志数据,包括请求访问记录、埋点数据、服务器业务数据等。初期这套基于开源组件的体系有力支撑了数据统计、业务报表、风控等业务需求。但随…

1.倒排索引 2.逻辑斯提回归算法

1.倒排索引 https://help.aliyun.com/zh/open-search/retrieval-engine-edition/introduction-to-inverted-indexes 倒排索引(Inverted Index)是一种数据结构,用于快速查找包含某个特定词或词语的文档。它主要用于全文搜索引擎等应用&#…