添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

测试同学反馈,某业务商品数据查询不到,但数据库里面存在。
我们商品数据,从es中查询的。通过logstash,将mysql里面的数据同步到es中。
查看了下es中,该数据确实不存在。

重新构建index 然后做了一次全量数据同步,发现es中的数据总量低于mysql中数据源的数据总量。

原因:
sql有问题。数据查询sql,未指定排序。使用的默认排序,库表使用的InnoDB引擎。
当数据发生delete、update时,排序会发生变化。
后来指定根据主键排序,数据同步正常。es中数据和mysql数据量一样

查看 es 中的 数据 数据 从identifi es 这个对象中获取,该对象中 数据 为空。这条 数据 上有tag (_jdbcstreamingfailure),这个有点奇怪 查看对应的说明,是 同步 过程中出现错误添加的默认标签(http... MYSQL logstash 同步 增量 数据 ES 最近一段时间,在使用 mysql 通过 logstash -jdbc 同步 数据 es ,但是总是会有一定程度 数据 丢失 logstash -jdbc无非是通过sql遍历 数据 表的所有 数据 ,然后 同步 es 。对于表里面的所有字段都需要查出来然后 同步 es 中去。本地测试 数据 表结构如下: CREATETABLE`user`(`id`bigint(20)NOTNU... 1.点击 Tapdata Cloud 操作后台左侧菜单栏的【连接管理】,然后点击右侧区域【连接列表】右上角的【创建连接】按钮,打开连接类型选择页面,然后选择 MySQL 。1.同第一步操作,点击左侧菜单栏的【连接管理】,然后点击右侧区域【连接列表】右上角的【创建连接】按钮,打开连接类型选择页面,然后选择 Elasticsearch 。Tapdata Cloud 有三种校验模式,我常用最快的快速count校验 ,只需要选择到要校验的表,不用设置其他复杂的参数和条件,简单方便。若指定时区,则使用指定后的时区设置。 问题:通过 logstash 同步 mysql 数据 ES mysql 数据 删除后, ES 里面的 数据 不会删掉 这时候会导致 ES mysql 数据 不一致,如果对 数据 一致性要求不是那么强,可以用MQ消息队列做,如果对 数据 一致性要求很高,比如电商项目,这样会出现很大的问题,也可以在 Mysql 删除成功后,再删除 ES 里面的 数据 下面是具体解决方案 参考链接:https://www.zhihu.com/qu es tion/351802336/answer/868380109 很多时候,在项目初期都是仅采用 mysql 数据 库作为业务 数据 库,但是随着 数据 的增长,当单表的 数据 超过千万级后,在怎么对查询SQL语句进行优化性能都不理想。这种情况下,我们就可以考虑通过 ES 来实现项目的读写分离:写操作对 Mysql 库进行操作,读操作采用 ES 。那么我们应该如何保证 ES Mysql 数据 同步 呢?本文给大家介绍通过 Logstash 实现 mysql 数据 定时增量 同步 ES 。... #elk# # ElasticSearch #1 概述 ElasticSearch 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于R ES Tful web接口。 Elasticsearch 是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。 ElasticSearch 用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。... logstash 就是一个具备实时 数据 传输能力的管道,负责将 数据 信息从管道的输入端传输到管道的输出端;在容器里面的/usr/share/ logstash /路径下的隐藏文件. logstash _jdbc_last_run中记录了全量 同步 的UTC时间。这样就导致我们自己定义的映射无法使用,而有 数据 的是 es 自动生成的那个小写。 logstash _jdbc_last_run默认是没有的,执行增量后创建。全量 同步 是指全部将 数据 同步 es ,通常是刚建立 es ,第一次 同步 时使用。 数据 库插入一条 数据 之后,会自动 同步 es 。 下载版本一定要和 Elasticsearch 版本一致(如 Elasticsearch 版本为7.10.2,那么对应下载的 Logstash 版本也要选择7.10.2!⚠️原因: 数据 库表中的sex字段,字段类型为tinyint, Logstash 会转成boolean,但是 ES 中设置的也是int类型,所以你懂的。恭喜你🎉🎉🎉,到这你已经成功3/4啦,接下来进入到最重要,同时99%会报错的最后一步,加油⛽️。恭喜你🎉🎉🎉,到这你已经成功1/4啦,接下来我们要去创建 ES 索引以及 MySQL 表啦,加油⛽️。ps:创建过程略过… 2. 在 /usr/local/ logstash -7.6.2/ 下创建文件夹 sync/,将 数据 库驱动 mysql -connector-java-5.1.41.jar 包上传到 /usr/local/ logstash -7.6.2/sync/ 下,将其 放入 /usr/local/ logstash -7.6.2/sync/didiok-items.sql 文件中。先上传到服务器 /home/software/ 下,然后解压,并将解压后的文件夹移动到 /usr/local/ 下。5. 启动 logstash