现状,mysql 存了大概 1000 万条企业的数据,由于查询条件很多,所以就打算把数据迁移到 es 里面。 用了 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 ,
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.