es 数据同步到mysql

190 阅读1分钟

pom导入依赖 只配这个data-elasticsearch就可以了,那个client可以不用,那个有什么用目前我还不会

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

java 编写相关配置类

用logstash将Elastic Search和mysql连接起来

在logstash的bin目录下新建logstash-mysql.conf配置文件,感觉logstash本身就是面向各种数据源进行配置的

input {
    stdin {
    }
    jdbc {
      # 数据库  数据库名称为elk,表名为table
      jdbc_connection_string => "jdbc:mysql://localhost:3306/elk"
      # 用户名密码
      jdbc_user => "admin"
      jdbc_password => "password"
      # jar包的位置
      jdbc_driver_library => /地址/mysql-connector-java-8.0.13.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      statement => "select * from table"
      schedule => "* * * * *"
	  #索引的类型
      type => "personinfo"
    }
}

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

output {
    elasticsearch {
        hosts => "127.0.0.1:9200"
        # elasticsearch当中你要用的那个index名,对应数据库的数据表
		index => "recipe"
		# 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
}

数据库配置的命令(不过记得要先启动elasticsearch)

logstash -f logstash-mysql.conf