如题,有开源解决方案更好,希望知道的朋友推荐一下,谢谢。
已找到导入工具:abc
只需要执行一条命令:abc import --src_type=mysql --src_uri="USER:PASS@tcp(HOST:PORT)/DBNAME" "https://USER:PASS@ES_HOST:PORT/INDEX_NAME"
abc import --src_type=mysql --src_uri="USER:PASS@tcp(HOST:PORT)/DBNAME" "https://USER:PASS@ES_HOST:PORT/INDEX_NAME"
即可导入,速度非常快,1000 万条数据导入用了不到 10 分钟。
es 可以 batch update 啊 再开多进程不就完了
谢谢回复,你说的似乎是要自己写代码来导入,请问有没有现成的工具?配置一下就可以进行导入。
我是用 searchkick 这个 gem 操作 ES 的。可以 异步 地把任务放 sidekiq 里执行来 reindex
https://github.com/ankane/searchkick#parallel-reindexing
用这个 gem 还需要建立 model,创建项目,挺重的。我只是想把数据全量导入 es
你好,软件可以考虑使用 https://www.elastic.co/cn/logstash
但是其实写个 rb 脚本,开多任务跑一下也花不了多长时间吧。。。
目前的同步方案是用的 logstash
有 es bulk inser,写个脚本就可以搞。
每秒 2000,一个多小时就能写完一千万的数据。
数据库也还好,都是连续性的读。
要想稳妥点,开始可以慢点。