用了 logstash ,每次都是全量同步。
所以有几个问题:
1.全量同步,磁盘空间要 double 才能存的下,因为要确保数据导进来才能把原有的删除掉
2.很慢,据说 4 个小时,看了查询语句,是直接 limit m offset n
所以想问下,有啥改进方法麽。能不能做到直接覆盖更新。
附上 logstash 配置
input {
jdbc {
jdbc_connection_string => "jdbc:xxx"
jdbc_user => "xxx"
jdbc_password => "xxx"
jdbc_driver_library => "mysql-connector-java-8.0.24.jar"
jdbc_driver_class => "xxx"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
lowercase_column_names => "false"
statement_filepath => "xxx"
# schedule => "* * * * *"
type => "type1"
}
}
output {
if[type] == "type1" {
elasticsearch {
hosts => ["localhost:9200"]
index => "t_jrb_corp_df_ce"
document_id => "%{regNo}"
doc_as_upsert => true
}
}
}
sql 就是 select * from table 。
或者又没有其他方式,可以快速的从 mysql 导出数据到 es ,