社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

使用logstash同步mysql数据库信息到ElasticSearch

SpringForAll社区 • 4 年前 • 287 次点击  

本文介绍如何使用logstash同步mysql数据库信息到ElasticSearch.

1.准备工作

1.1 安装JDK

网上文章比较多,可以参考:https://www.dalaoyang.cn/article/16。

1.2 安装Logstash

我使用了5.x版本和6.x版本,可以参考:https://www.dalaoyang.cn/article/80。

7.x版本未尝试!!!

1.3 安装ruby

安装过程可以参考:https://blog.csdn.net/qq_26440803/article/details/82717244,已经非常详细了。

1.4 安装gem

安装

1yum install gem

gem源修改

1gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

1.5 修改logstash中的Gemfile和Gemfile.jruby-1.9.lock文件

img

修改上图中Gemfile文件红框位置为

1source "https://gems.ruby-china.com/"


    

img

修改上图中Gemfile.jruby-1.9.lock文件(其他版本logstash可能不叫这个名字,但是名字类似)红框位置为

1remote: https://gems.ruby-china.com/

1.6 安装bundler

安装

1gem install bundler

1.7 安装logstash-input-jdbc插件

安装

1bin/logstash-plugin  install logstash-input-jdbc

1.8 准备mysql-connector-java-x.x.x.jar

需要准备一个mysql-connector-java-x.x.x.jar对应版本的jar,这里使用的是mysql-connector-java-5.1.6.jar。

这个可以去官网下载:https://dev.mysql.com/downloads/connector/j/5.1.html

2.配置logstash

创建mysql-es.conf配置文件,名称可以自定,这里数据表以我博客友情链接表为例,内容如下:

 1input {
2  jdbc {
3     # 驱动包位置
4    jdbc_driver_library => "/usr/local/logstash/logstash-5.6.16/mysql-connector-java-5.1.6.jar"
5    # 驱动
6    jdbc_driver_class => "com.mysql.jdbc.Driver"
7    # 数据库地址
8    jdbc_connection_string => "jdbc:mysql://ip:3306/dalaoyang"
9    # 数据库连接用户名
10    jdbc_user => "root"
11    # 数据库连接用户密码
12    jdbc_password => "password"
13    # 执行sql语句文件位置
14    # statement_filepath => "filename.sql"
15    # 执行sql
16    statement => "SELECT * from link_info"
17    # 是否分页
18    jdbc_paging_enabled => "true"
19    # 分页数量
20    jdbc_page_size => "50000"
21    type => "jdbc"
22    tracking_column => "update_date"
23    use_column_value => false
24    # 执行任务时间间隔,各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
25    schedule => "* * * * *"
26  }
27}
28
29
30output {
31  elasticsearch {
32        hosts => "ip:端口"
33        index => "test-mysql"
34        # 数据库中的id
35        document_id => "%{link_id}"
36  }
37}

3.启动logstash

执行命令启动




    
1bin/logstash  -f mysql-es.conf

启动后可以看到如图所示

img

4.查看ElasticSearch

在ElasticSearch-head中可以看到对应mysql中的数据,如图

img

5.总结

总的来说过程还是很简单的,没有遇到太大的问题,这只是mysql同步es的一种方式,还有很多方式可以使用。



限时扫码关注领取600页+Spring官方教程小书


  1. 限时3周免费下载

  2. 长按识别二维码关注SpringForAll社区公众号

  3. 在公众号回复“Spring”或者"spring"即可获取



推荐:人人都是 API 设计者:我对 RESTful API、GraphQL、RPC API 的思考

上一篇:注解学习

点击原文阅读更多



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34506
 
287 次点击