需求
随着线上业务数据的剧增,需要优化检索,选择ES做为搜索引擎,那么问题来了,线上已有的数据怎么处理
以下方案仅供参考:
前提条件准备
1、需要安装好Mysql,并准备好需要同步的数据
2、需要安装好Elasticsearch
3、需要安装好Logstash
4、需要下载相应的JDBC connector mysql-connector-java-8.0.20.jar
同步脚本配置
1、创建同步数据配置文件
对Logstash做如下的配置sync_data.conf:
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://192.168.1.6:3316/ry"
jdbc_user => "root"
jdbc_password => "123456"
jdbc_validate_connection => true
jdbc_driver_library => "/home/www/mysql-connector-java-8.0.20.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT * FROM user"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
stdout {
codec => json_lines
}
elasticsearch {
hosts => "192.168.1.6:9200"
# index名称
index => "es_ry"
# type名称
document_type => "_doc_user"
# 文档_id
document_id => "%{id}"
}
}
2、运行Logstash加载数据
./bin/logstash --debug -f ./config/sync_data.conf
这样就可以完成mysql到es的数据同步