windows同步mysql数据到elasticsearch

环境:

win10

mysql:8.0.16

elasticsearch:7.3.0

参考:

mysql到elasticsearch数据迁移踩坑实践-Ali0th(涉及go-mysql-elasticsearch)

Elasticsearch最佳实践从Mysql到Elasticsearch(涉及go-mysql-elasticsearch)

Elasticsearch - Logstash实现mysql同步数据到elasticsearch(linux环境的,jdbc.conf配置文件部分介绍较多)

Windows环境安装Logstash和Logstash-input-jdbc(主要参考,推荐)

logstash安装与logstash-input-jdbc插件使用(linux环境,不推荐)

logstash-input-jdbc同步mysql数据到elasticsearch(linux环境,可参考)

心路历程

刚开始看到mysql数据实时同步到Elasticsearch这篇文章,于是打算采用go-mysql-elasticsearch工具进行同步。可是安装GitHub上的导读下载工具都下载不下来。手动下载了zip压缩包,可跟文档上介绍的文件路径都不一样。搜索了一下好像还需要编译,也需要一些依赖,而且不一定能对新版本的elasticsearch支持,所以最后放弃使用了。

最终选择了elastic官方的工具logstash。

1、官网下载logstash

选择了跟elasticsearch版本一致的7.3.0

安装

解压即安装

解压后logstash的目录结构

windows同步mysql数据到elasticsearch_第1张图片

cmd命令进入bin目录下执行

logstash -e "input { stdin { } } output { stdout {} }"

结果为下图,说明安装成功。

windows同步mysql数据到elasticsearch_第2张图片

2、安装logstash-input-jdbc插件

cmd命令在bin目录下执行

logstash-plugin install logstash-input-jdbc

安装插件,成功后会有提示信息。

3、新建目录存放配置文件和mysql驱动jar包

windows同步mysql数据到elasticsearch_第3张图片

配置文件

input {
    stdin {
    }
    jdbc {
      # mysql相关jdbc配置
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/Demo2"
      jdbc_user => "root"
      jdbc_password => "142536"
 
      # jdbc连接mysql驱动的文件目录,可去官网下载:https://dev.mysql.com/downloads/connector/j/
      jdbc_driver_library => "E:/program/logstash-7.3.0/mysql/mysql-connector-java-5.1.17.jar"
      # the name of the driver class for mysql
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"

      # mysql文件, 也可以直接写SQL语句在此处,如下:
      statement => "SELECT * from geometry"
      #statement_filepath => "/opt/logstash/conf/jdbc.sql"

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

    }
}

# 此处我不做过滤处理
filter {}

output {
    #输出到elasticsearch的配置
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "jdbc_c"

        #将"_id"的值设为mysql的autoid字段
        document_id => "%{id}"
        template_overwrite => true
    }

    #这里输出调试,正式运行时可以注释掉
    stdout {
        codec => json_lines
    }
}

关于配置文件配置的内容,可查找官方文档。

4、同步

cmd在bin目录下执行

logstash -f ../mysql/jdbc.conf

也可以执行多个配置文件,-f 后制定存放配置文件的文件夹即可。

 

 

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