记录一次使用logstash将MySQL的数据同步至ElasticSearch

起因前几天了解到阿里出的canal可以将MySQL的数据通过伪装成从节点读取binlog的形式将数据进行增量更新,但是我今天在试验的时候失败了,也不知道是为什么,可能是版本的问题

本次操作logstash与es的版本为7.15.1,操作平台为window10,mysql装在虚拟机里

首先来看mysql的表设计,id为唯一主键,剩下的cname和sex均为varchar

记录一次使用logstash将MySQL的数据同步至ElasticSearch_第1张图片

然后在es中创建索引

PUT /mytest_user
{
  "settings": {
		"number_of_shards": 1,
		"number_of_replicas": 1
	},
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "sex": {
        "type": "text"
      }
    }
  }
}

然后打开logstash的目录

记录一次使用logstash将MySQL的数据同步至ElasticSearch_第2张图片

 将mysql的驱动放在该目录下,虚拟机里的mysql是5.7所以这里就用5.7的驱动了

记录一次使用logstash将MySQL的数据同步至ElasticSearch_第3张图片

 然后在bin目录下创建jdbc.conf,名字随便取,只是我参考的教程里用的是这个名字

input {
       stdin {
        }
       jdbc {
            jdbc_connection_string => "jdbc:mysql://192.168.10.130:3306/test?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
            jdbc_user => "root"
            jdbc_password => "123456"
#指定刚刚放置的mysql的驱动位置
            jdbc_driver_library => "E:\logstash-7.15.1\logstash-core\lib\jars\mysql-connector-java-5.1.47.jar"
            jdbc_driver_class => "com.mysql.jdbc.Driver"
            jdbc_paging_enabled => "true"
            jdbc_page_size => "50000"
            codec => plain { charset => "UTF-8"}
            record_last_run => true
            jdbc_default_timezone => "Asia/Shanghai"  
#sql自己写,字段与es中一一对应
            statement =>  "SELECT id,cname as name,sex FROM test2"
            clean_run => false
            schedule => "* * * * *"
            
    } 
}

filter {
   json {
       source => "message"
       remove_field => ["message"]
   }
}

output {

   elasticsearch {
#es地址与端口
       hosts => "127.0.0.1:9200"
#索引名
       index => "mytest_user"

       document_type => "_doc"
#表中可以作为id的字段
       document_id => "%{id}"
   }

   stdout {

       codec => json_lines

   }
}

然后启动logstash就可以了,命令为

logstash.bat -f jdbc.conf

在bin目录下执行,千万不要忘记这个-f,然后在配置文件里该加引号的地方千万不要忘记,我自己配置的时候就是忘记了

然后你就会看到logstash一直在运行了,反正我是一直在运行

参考:

https://www.cnblogs.com/wang-yaz/p/10232417.html

你可能感兴趣的:(elasticsearch,mysql)