Elasticsearch增量同步Mysql数据

首先安装Elasticsearch,参考https://blog.csdn.net/letterss/article/details/91361205

同步我们需要用到logstash工具,下载logstash

将下载的logstash-7.2.0.tar解压

tar -zxvf logstash-7.2.0.tar

将mysql的连接库jar包放到logstash-7.2.0/config目录下,我这里用的是mysql-connector-java-5.1.22-bin.jar

在logstash-7.2.0目录下面创建mysql.conf文件

cd logstash-7.2.0

vim mysql.conf

编写增量同步配置文件

-----------------------------------------------------------------------------------------------------------------------------------------------------------

input {
  jdbc {
  jdbc_driver_library => "../config/mysql-connector-java-5.1.22-bin.jar"
  jdbc_driver_class => "com.mysql.jdbc.Driver"
  jdbc_connection_string => "jdbc:mysql://localhost:3306/itv_basic_v077"
  jdbc_user => "root"    
  jdbc_password => "admin" 

  record_last_run => true
  use_column_value => true
  tracking_column => "semi_id" #主键ID
  last_run_metadata_path => "/ES/log/dtv_semi" #存储记录位置
  clean_run => "false"


  schedule => "* * * * *"   #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
  statement => "select * from dtv_semi where semi_id>:sql_last_value" #sql语句,注意有冒号 这里的id就是上面的id
  type => "con_vod"
  }


  jdbc {
  jdbc_driver_library => "./config/mysql-connector-java-5.1.22-bin.jar"
  jdbc_driver_class => "com.mysql.jdbc.Driver"
  jdbc_connection_string => "jdbc:mysql://localhost:3306/itv_basic_v077"
  jdbc_user => "root"    
  jdbc_password => "admin" 

  record_last_run => true
  use_column_value => true
  tracking_column => "id" #主键ID
  last_run_metadata_path => "/ES/log/dtv_semi_con"
  clean_run => "false"


  schedule => "* * * * *"   #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
  statement => "select * from dtv_semi_con where id>:sql_last_value" #sql语句,注意有冒号 这里的id就是上面的id
  type => "semi_con"
  }

}


output {

stdout {
        codec => json_lines
    }
   elasticsearch {
        index => "house" ##索引名称
        document_type => "%{type}"   #这里是动态的引用上面配置的type
        hosts => "localhost:9200"  #Elasticsearch访问地址
         document_id => "%{id}"  #主键字段
    }
}

 

----------------------------------------------------------------------------------------------------------------------------------------------


 

然后我们在logstash-7.2.0目录启动

bin/logstash -f mysql.conf 

如遇错误

Sending Logstash logs to /usr/local/logstash/logstash-6.5.0/logs which is now configured via log4j2.properties
[2018-11-20T12:23:45,931][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-11-20T12:23:46,088][FATAL][logstash.runner          ] Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting.
[2018-11-20T12:23:46,130][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

在data目录下面删除.lock文件

rm -rf data/.lock

然后重新启动

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今朝花落悲颜色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值