Elasticsearch学习之JDBC插件

有时我们的关系型数据库当达到一定的数据量时,做数据查询操作会非常的缓慢,这时我们就可以把MySQL关系型数据库中的数据导入到Elasticsearch中存储进行查询,因为Elasticsearch是全文索引支持实时搜索所以做数据查询操作会比在数据库中进行查询操作快很多,下面我们开始做这么一个数据导入的实验,以下是实验架构图:
  在这里插入图片描述
  由于我们这里是从MySQL同步数据到Elasticsearch中,所以需要先安装Logstash以及JDBC的输入插件和Elasticsearch的输出插件:logstash-input-jdbc和logstash-output-elasticsearch

[root@node1 ~]# cd /usr/local/logstash/bin/
[root@node1 bin]# ./logstash-plugin install logstash-input-jdbc 
	Validating logstash-input-jdbc
   	Installing logstash-input-jdbc
Installation successful
[root@node1 bin]# ./logstash-plugin install logstash-output-elasticsearch
	Validating logstash-output-elasticsearch
	Installing logstash-output-elasticsearch
	Installation successful
[root@node1 bin]#

由于Logstash是基于JRuby所开发的,所以我们这里要去下载MySQL的连接库jar包,从官网中下载,此处我下载的是mysql-connector-java-5.1.48.jar版本,将此文件放在Logstash的config目录下。

[root@node1 config]# ls mysql-connector-java-5.1.48.zip -l
-rw-r--r-- 1 root root 4814134 Dec 28 20:33 mysql-connector-java-5.1.48.zip

## 创建配置文件 ##
[root@node1 config]# mkdir mysql
[root@node1 config]# mv mysql-connector-java-5.1.48.zip mysql
[root@node1 config]# cd mysql/
[root@node1 mysql]# vim logstash-mysql-es.conf
input {
   
      jdbc {
   
      	# 连接mysql数据库参数,需要指明数据库地址、端口、库名、用户名以及密码;
        jdbc_connection_string => "jdbc:mysql://192.168.146.130:3306/herosdb?character_set_server=utf8mb4"
        jdbc_user => "root"
        jdbc_password => "redhat"
        
		# jdbc连接mysql的驱动文件目录地址
        jdbc_driver_library => "/usr/local/logstash/mysql/mysql-connector-java-5.1.48.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        jdbc_paging_enabled => true
        jdbc_page_size => "1"
	
		# 指明时区
        jdbc_default_timezone =>"Asia/Shanghai"

		# 指明要插入的数据,sql语句的结果集即为插入的数据集
        statement => "select * from heros"

		# 类似于crontab,可以定制定时操作,比如每分钟执行一次同步(分 时 天 月 年)
        schedule => "* * * * *"

		# 是否需要记录某个column 的值,如果record_last_run为真,可以自定义我们需要 track
			 的 column 名称,此时该参数就要为 true. 否则默认 track 的是 timestamp 的值.
        use_column_value => true

		# 如果 use_column_value 为真,需配置此参数. track 的数据库 column 名,
			该 column 必须是递增的. 一般是mysql主键
        tracking_column => "id"
        tracking_column_type => "numeric"

		# 上次运行的数据文件保存文件位置
        last_run_metadata_p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值