有关如何在csv中弹性搜索中导出整个数据库的任何想法?我只需要导出一个索引。
我尝试了以下python插件,但弹性搜索作为服务提供商抱怨根证书:
https://github.com/taraslayshchuk/es2csv/blob/master/README.rst
es2csv -i lead -a user:password -u https://host.us-east-1.aws.found.io:9243 -q'' -o database.csv
但是我得到:elasticsearch.exceptions.ImproperlyConfigured:证书验证缺少根证书。使用ca_certs参数传递它们或安装certifi以自动使用它。
帮助?我使用Elasticsearch.co作为弹性搜索服务
答案 0 :(得分:2)
您可以使用Logstash将索引导出为CSV:
input {
elasticsearch {
hosts => "localhost:9200"
index => "some-index"
query => '{"query": {
"match_all": {}
}}'
}
output {
file {
codec => line { format => "%{field1},%{field2}"}
path => "some-index.csv"
}
}
警告:有一个csv输出插件,但它有一个已知的版本Logstash 5.x的错误。上面的配置应该没问题。
答案 1 :(得分:1)
正如taraslayshchuk已经说过的,es2csv已经更新以支持SSL。对于elastic.co托管的ES,我一直在使用这样的东西:
es2csv.py -u https://myserverurl -i myindex-* -r -q '
{
"query": {
"range": {
"@timestamp": {
"gte": "2017-04-16T00:00",
"lt": "2017-04-23T23:59",
"time_zone": "-06:00"
}
}
}
}
' -o outputfile.csv --auth user:password --use-ssl --verify-certs
答案 2 :(得分:0)
es2csv的最新更新有一个SSL补丁,可以解决您的问题。