elasticsearch 将带有logstash的csv上载到带有新映射的elasticsearch
我有一个csv文件,我正在尝试使用Logstash上传到ES。我的conf文件如下:elasticsearch 将带有logstash的csv上载到带有新映射的elasticsearch,elasticsearch,logstash,elasticsearch,Logstash,我有一个csv文件,我正在尝试使用Logstash上传到ES。我的conf文件如下: input { file { path => ["filename"] start_position => "beginning" } } filter { csv { columns => ["name1", "name2", "name3", ...] separator => "," } } filter { mutate {
input {
file {
path => ["filename"]
start_position => "beginning"
}
}
filter {
csv {
columns => ["name1", "name2", "name3", ...]
separator => ","
}
}
filter {
mutate {
remove_field => ["name31", "name32", "name33"]
}
}
output {
stdout{
codec => rubydebug
}
elasticsearch {
action => "index"
host => "localhost"
index => "newindex"
template_overwrite => true
document_type => "newdoc"
template => "template.json"
}
}
我的模板文件如下所示:
{
"mappings": {
"newdoc": {
"properties": {
"name1": {
"type": "integer"
},
"name2": {
"type": "float"
},
"name3": {
"format": "dateOptionalTime",
"type": "date"
},
"name4": {
"index": "not_analyzed",
"type": "string"
},
....
}
}
},
"settings": {
"number_of_replicas": 0,
"number_of_shards": 1
},
"template": "newindex"
}
当我尝试覆盖默认映射时,即使只尝试写入一行,也会出现400错误:
failed action with response of 400, dropping action: ["index", + ...
有什么问题吗?如果我不覆盖映射,一切都正常,但这不是我的解决方案。我在红帽上使用Logstash 1.5.1和Elasticsearch 1.5.0
谢谢在将数据加载到elasticsearch之前,您应该将您的请求“映射”到elasticsearch
在运行logstash之前,您不需要创建索引,如果您还没有创建索引,它会创建索引,但最好在使用logstash运行conf文件之前创建自己的映射。使您能够更好地控制字段类型等。。下面是一个关于如何使用logstash将csv导入elasticsearch的简单教程:在替换映射或为文档编制索引时会出现错误?也许完整的错误消息可以提供更多信息。Elasticsearch将删除与映射不兼容的邮件…@Alain您的评论让我思考,仔细查看后,我的一个日期字段格式不正确。我修改了ES日期格式,一切都按预期运行。