我有制表符分隔的数据,我想输入到logstash
中。这是我的配置文件:
input {
file {
path => "/*.csv"
type => "testSet"
start_position => "beginning"
}
}
filter {
csv {
separator => "t"
}
}
output {
stdout {
codec => rubydebug
}
}
它只是查找所有.csv
文件并使用选项卡将它们分开。对于这样的输入:
col1 col2
data1 data2
logstash
输出为(对于两行):
column1 => "col1tcol2"
column1 => "data1tdata2"
显然,它没有正确解析它。我看到这个问题不久前在这里提出,但没有解决方案。有谁知道这个问题是否已解决,或者有另一种方法可以解决?谢谢!
不要使用 "\t" 作为分隔符,而是输入一个实际的制表符。喜欢这个:
filter {
csv {
separator => " "
}
}
https://www.elastic.co/guide/en/logstash/6.2/plugins-filters-csv.html#plugins-filters-csv-separator
定义列分隔符值。如果未指定,则默认值为逗号 ,。如果要将制表定义为分隔符,则需要将值设置为实际制表符而不是 \t。