自动将 MySQL 中的数据转入到 Elasticsearch 中 (logstash)

自动将 MySQL 中的数据转入到 Elasticsearch 中

1. 安装 logstash

下载链接:
https://www.elastic.co/cn/downloads/logstash

在这里插入图片描述

解压到路径.

2. 测试 logstash

安装路径下 bin, 进入 cmd

在这里插入图片描述

测试: 输入下面的内容.

logstash -e ""

在这里插入图片描述

3. 设置文件

进入 logstash 路径, 建立一个 mysql 文件. (文件名随便起)

在这里插入图片描述

向文件中添加两个文件:
mysql.conf: MySQL 向 Elasticsearch 中导数据的配置文件.
mysql-connector-java-8.0.18.jar: MySQL 驱动.

在这里插入图片描述

mysql.conf 文件内容.

input {
	jdbc {
		# mysq1 jdbc connection string to our backup databse
		jdbc_connection_string => "jdbc:mysql://localhost:3306/database?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true"
		# the user we wish to excute our statement as
		jdbc_user => "root"
		jdbc_password =>  "root"
		# the path to our downloaded jdbc driver
		jdbc_driver_library => "D:\install\ElasticSearch\logstash-7.6.2\mysql\mysql-connector-java-8.0.18.jar"
		# the name of the driver class for mysq1
		jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
		jdbc_paging_enabled => "true"
		jdbc_page_size => "50"
		#以下对应着要执行的 SQL 的绝对路径.
		#statement_filepath => ""
		statement => "SELECT col1, col2, col3 FROM table"
		#定时字段各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测
		schedule => "* * * * *"
	}
}

output {
	elasticsearch {
		# ESIP 地址与端口
		hosts => "127.0.0.1:9200"
		# ES 索引名称 (自定义的)
		index => "index"
		# 自增 ID 编号
		document_id => "%{id}"
		document_type => "type"
	}
	stdout {
		# 以 JSON 格式输出
		codec => json_lines
	}
}


4. 执行代码

1. logstash -e 命令: 在控制台直接执行命令.
2. logstash -f 文件路径: 在控制台执行指定文件内的命令.

启动 Elasticsearch. 执行下面的命令.

logstash -e ../mysql/mysql.conf

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值