我正在尝试使用logstash加载一组CSV文件。 CSV文件包含两个表,其中只有第二个表是我感兴趣的。有关如何跳过第一个表中的条目的任何建议? (说出CSV文件的前50行)
我当前的conf文件如下所示:
input{
file{
path => "/home/username/pathtoData/*"
start_position => beginning
}
}
filter{
csv{
columns => ["col_name_a", "col_name_b", ...]
separator => ","
}
}
output{
elasticsearch{
hosts => ["localhost:portnum"]
}
}
答案 0 :(得分:0)
您没有指定两个数据集的结构,但我们假设您有一些方法可以区分它们。例如,您可以使用regular expression that counts the number of commas。
假设任何包含5个逗号的列都是您不想要的。您可以有条件地将这些行发送到drop
过滤器:
filter {
if [message] =~ /^([^,]*,){5}[^,]*$/ {
drop {}
}
}
或者,您可以删除任何没有正好7个逗号的列:
filter {
if [message] !~ /^([^,]*,){7}[^,]*$/ {
drop {}
}
}
如果您需要更精细的过滤,可以使用grok
过滤器更仔细地检查每一行。只要您有一些可以过滤的条件,就可以使用条件来drop
您不想要的行。