gpt4 book ai didi

elasticsearch - Logstash/Elasticsearch CSV字段类型,日期格式和多字段(.raw)

转载 作者:行者123 更新时间:2023-12-02 22:41:11 25 4
gpt4 key购买 nike

我一直在尝试使用Logstash中的CSV过滤器将制表符分隔的文件导入Elasticsearch。实际上获取数据非常容易,但是当我在Kibana中查看数据时,我很难使字段类型正确。日期和整数继续以字符串形式出现,因此我无法按日期进行绘制或对整数(求和,均值等)执行任何分析函数。

我也很难获取要填充的字段的.raw版本。例如,在设备中,我有类似“HTC One”的数据,但是,如果我在Kibana中制作饼图,它将显示为两个单独的分组“HTC”和“One”。当我尝试绘制device.raw图表时,它显示为缺少的字段。从我阅读的内容来看,Logstash似乎应该自动为每个字符串字段创建一个原始版本,但这似乎没有发生。

我一直在筛选文档,谷歌和堆栈,但没有找到解决方案。任何想法表示赞赏!谢谢。

配置文件:

#logstash.conf
input {
file {
path => "file.txt"
type => "event"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}

filter {
csv {
columns => ["userid","date","distance","device"]
separator => " "
}
}

output {
elasticsearch {
action => "index"
host => "localhost"
port => "9200"
protocol => "http"
index => "userid"
workers => 2
template => template.json

}
#stdout {
# codec => rubydebug
#}
}

这是模板文件:
#template.json:
{
"template": "event",
"settings" : {
"number_of_shards" : 1,
"number_of_replicas" : 0,
"index" : {
"query" : { "default_field" : "userid" }
}
},
"mappings": {
"_default_": {
"_all": { "enabled": false },
"_source": { "compress": true },
"dynamic_templates": [
{
"string_template" : {
"match" : "*",
"mapping": { "type": "string", "index": "not_analyzed" },
"match_mapping_type" : "string"
}
}
],
"properties" : {
"date" : { "type" : "date", "format": "yyyy-MM-dd HH:mm:ss"},
"device" : { "type" : "string", "fields": {"raw": {"type": "string","index": "not_analyzed"}}},
"distance" : { "type" : "integer"}
}
}
}

最佳答案

弄清楚了-模板名称就是索引。因此,“template”:“event”行应为“template”:“userid”

关于elasticsearch - Logstash/Elasticsearch CSV字段类型,日期格式和多字段(.raw),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28803004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com