有 10+亿条数据有检索需求,现在是每条一行存在文件里(不是 json ,字段\t 间隔),请问有什么好的方法批量的导入到 Elasticsearch ?
1
Suclogger 2016-07-29 10:51:58 +08:00
solr 可以导入文件, solr 和 elasticserch 底层实现都是 lucense ,用 solr 导入后将索引迁移到 elasticsearch
(没实践过,瞎猜的) |
2
shoumu 2016-07-29 11:12:24 +08:00
写个脚本,把文件中的数据读出来,然后建索引
|
4
defunct9 2016-07-29 11:23:08 +08:00
|
5
defunct9 2016-07-29 11:24:04 +08:00
有批量的。格式有变化
/posts/post/_bulk {"index":{"_index":"posts","_type":"post","_id":634}} {"title":"","content":"","slug"......} {"index":{"_index":"posts","_type":"post","_id":635}} {"title":"","content":"","slug"......} |
6
knightdf 2016-07-29 11:27:44 +08:00
多进程 bulk 最快了,我做的时候速度可以达到 2500doc/s , 不过在数据量大后频繁的做 merge 就会慢很多
|
7
gejigeji OP |
8
jaymiao 2016-07-29 16:44:48 +08:00
用 logstash, 可以配置进程数量,只要你的 ES 足够强就行。
|
10
gqlxj1987 2016-07-31 08:43:35 +08:00
用 logstash 。。 bulk 部分,感觉后期不可控。
|
11
jahan 2018-02-09 12:30:41 +08:00
借楼询问。
同样是很多带有分隔符的数据库导出文件,想导入 elasticsearch,有没有现成的工具或者 python 脚本? 有没有可视化配置的工具呢? logstash ? |