es连接mysql,并且配置中文分词

es连接mysql导入数据


下载 logstash

logstash的版本需要与es的版本一致,安装完成后添加两个文件:mysql.conf(存放sql查询结果导入es的配置)和mysql.sql(存放sql语句);

mysql.sql:这儿有根据修改的时间来判断最后一条数据,避免重复导入

select * FROM commodity where update_time > :sql_last_value

mysql:conf

input {
    jdbc {
      jdbc_connection_string => "jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&lower_case_table_names=1&allowMultiQueries=true&autoReconnect=true"
      jdbc_user => "root"
      jdbc_password => "数据库的密码"
      jdbc_driver_library => "/home/mysql-connector-java-8.0.21.jar"
      jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      jdbc_default_timezone => "UTC"
      record_last_run => true
      use_column_value => true
      tracking_column => "update_time"
      tracking_column_type => "timestamp"
      clean_run => false
      lowercase_column_names => false
      statement_filepath => "/home/logstash-7.8.0/mysql/mysql.sql"#mysql.sql的存放路径
      schedule => "*/3 * * * *" #多长时间执行一次
    }
}

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

output {
    elasticsearch {
        hosts => ["localhost:9200"] #es的路径
        user => "elastic" #如果es设置了密码,那么有user和password,没有就不设置
	password => "@13980053017qq"
        index => "good" #这儿是索引,如果想要数据库中的某个字段设置中文分词器,可以先建好索引,这儿填写建好的索引即可
	document_id => "%{id}" 
	template_overwrite => true
	template => "/home/logstash-7.8.0/templete/logstash.json"
        manage_template => false
    }
    stdout {
        codec => json_lines
    }
}

然后执行.\logstash -f mysql.conf即可

posted @ 2020-10-23 11:30  张含韵好可爱  阅读(601)  评论(0编辑  收藏  举报