需求的由来

在做一个项目的时候,需要一个搜索的功能,刚开始想到的是用数据库的模糊查询,但是考虑到效率的问题,于是就用了ElasticSearch(ES),但是MySQL中的数据怎么样到ES中呢,我们可能会想到,MySQL可以实现主从复制,通过binary log文件实现的,搜集了一波资料发现,LogStash可以实现这个数据同步的功能,有增量和全量,如果数据只同步一次的话,可以使用全量同步,如果数据会有更新的话,可以使用增量同步,真是nice。

安装LogStash
要用人家的功能,第一步当然是安装此利器了,直接去官网下载即可LogStash下载

下载完之后解压,由于是要跟MySQL打交道的,当然必须要有MySQL的相关配置了,第一步在bin的同级目录下创建一个mysql目录,然后将MySQL驱动放里面即可,下载MySQL驱动

下载完毕之后,解压,将里面的jar包拷贝到刚刚创建的mysql目录下即可。

然后是在bin目录下创建一个logstash.conf的文件,内容如下:

input {# 多张表的同步只需要设置多个jdbc的模块就行了jdbc {# mysql 数据库链接jdbc_connection_string => "jdbc:mysql://localhost:3306/newsblog?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"# 驱动jdbc_driver_library => "D:/elasticsearch/logstash-7.8.0/mysql/mysql-connector-java-8.0.22.jar"# 驱动类名jdbc_driver_class => "com.mysql.cj.jdbc.Driver"      # 用户名和密码jdbc_user => "root"jdbc_password => "root"#设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新schedule => "*/2 * * * *"#直接执行sql语句statement => "select * from blog where blogId > :sql_last_value"# 用其他字段追踪use_column_value => truetracking_column => "blogid"# 记录最新的同步的offset信息,会自动创建该文件last_run_metadata_path => "D:/elasticsearch/syncpoint_table.txt"# 是否清空文件clean_run => false}}output {elasticsearch {#es的ip和端口hosts => ["http://localhost:9200"]#ES索引名称(自己定义的)index => "blog"#文档类型document_type => "_doc"#设置数据的id为数据库中的字段,这里都是小写document_id => "%{blogid}"}stdout {codec => json_lines}
}

启动
在启动ES的前提下,启动LogStash,在bin目录下执行命令
logstash -f logstash.conf
然后就会根据配置来进行同步数据了,会生成一个记录offset文件。

然后通过Kibana可以进行查询到数据。

LogStash实现MySQL数据增量同步到ElasticSearch相关推荐

  1. 通过Logstash实现mysql数据定时增量同步到ES

    文章目录 前言 一.系统配置 二.同步步骤整体概览 三.logstash数据同步实战 1.新建mysql表 2.ES中新建索引 3.Logstash 管道配置 4.启动Logstash 5.测试 6. ...

  2. elasticsearch date_MySQL数据实时增量同步到Elasticsearch

    Mysql到Elasticsearch的数据同步,一般用ETL来实现,但性能并不理想,目前大部分的ETL是定时查询Mysql数据库有没有新增数据或者修改数据,如果数据量小影响不大,但如果几百万上千万的 ...

  3. mysql增量同步_在两个MySQL数据库之间实现数据增量同步

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 在两个数据库中实现数据增量同步,令数据库之间的数据能够同步更新. Oracle数据库IP:192.168.0.1(源 ...

  4. binlog流程 mysql_小米 MySQL 数据实时同步到大数据数仓的架构与实践

    背景MySQL由于自身简单.高效.可靠的特点,成为小米内部使用最广泛的数据库,但是当数据量达到千万/亿级别的时候,MySQL的相关操作会变的非常迟缓:如果这时还有实时BI展示的需求,对于mysql来说 ...

  5. 实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!

    数据同步一直是一个令人头疼的问题.在业务量小,场景不多,数据量不大的情况下我们可能会选择在项目中直接写一些定时任务手动处理数据,例如从多个表将数据查出来,再汇总处理,再插入到相应的地方. 但是随着业务 ...

  6. SpringBoot + xxl-job 多数据源异构数据增量同步

    SpringBoot + xxl-job 多数据源异构数据增量同步 文章目录 SpringBoot + xxl-job 多数据源异构数据增量同步 一.概述 二.实现步骤 2.1 项目搭建 2.2 接口 ...

  7. Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!

    数据同步一直是一个令人头疼的问题.在业务量小,场景不多,数据量不大的情况下我们可能会选择在项目中直接写一些定时任务手动处理数据,例如从多个表将数据查出来,再汇总处理,再插入到相应的地方. 但是随着业务 ...

  8. Canal 实现数据增量同步

    数据同步一直是一个令人头疼的问题.在业务量小,场景不多,数据量不大的情况下我们可能会选择在项目中直接写一些定时任务手动处理数据,例如从多个表将数据查出来,再汇总处理,再插入到相应的地方. 但是随着业务 ...

  9. MySQL 数据增量备份

    目录 MySQL 数据增量备份 binlog日志 日志概述 启用日志 自定义日志存储目录和日志文件名 手动生成新的日志文件 清理日志(删除已有的日志文件) 查看日志文件内容 使用binlog日志恢复数 ...

最新文章

  1. 国防科技大学发布最新「3D点云深度学习」综述论文
  2. 多元统计分析-判别分析
  3. 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结...
  4. Python学习-将list列表写入文件并读取方法汇总
  5. nucleo STM32F072 PWM 测试
  6. SpringSecurity实战(一)-认证鉴权流程
  7. flask url_for()和redirect的区别
  8. 是否应该选择虚拟主机?
  9. 怎么修改windows10在cmd下的用户名为英文名
  10. 目前微型计算机主要采用电子原件是,目前,个人计算机使用的电子元器件主要是()。...
  11. PostgreSQL 分区表教程
  12. stlink-opencd-gdb调试程序
  13. android获取ro._Android 简单的设备信息获取
  14. PEM文件和private.key文件生成Tomcat服务器所需的jks文件(配置SSL用)
  15. 新氧“自律破圈” 医美新生态而立时
  16. 关于global_step参数
  17. 参数服务器——分布式机器学习的新杀器
  18. 人力资源三支柱是什么?人力资源管理如何运用HR三支柱模型
  19. 【AD】Altium Designer PCB文件的绘制(下篇:PCB布线和后续)
  20. 解决JDBC-ODBC驱动桥导致JVM crash.

热门文章

  1. iptables 小提升
  2. string与wstring互转
  3. Vijos CoVH之再破难关(搜索+hash)
  4. SQL语句(二)创建带主键和约束的数据表
  5. Selenium+PhantomJS自动化登录爬取博客文章
  6. 移动端web开发——视口
  7. USACO SEC.1.3 No.3 Calf Flac
  8. [转]80后偷偷“老了”的八大表现
  9. string 类的常用方法 substring indexof length
  10. springcloud的中文文档地址和中国社区