我想将NULL的值替换为其他值。该字段是通过使用数据库中的Logstash JDBC插件获得的。这是我的配置文件。
input {
jdbc {
jdbc_connection_string => "url"
jdbc_user => "user"
jdbc_password => "pswd"
jdbc_driver_library => "./ifxjdbc-3-50-JC7.jar"
jdbc_driver_class => "com.informix.jdbc.IfxDriver"
statement => ["SELECT st1.name as s_name, st1.typ, st2.name as comp_name, zen.s_id, zen.comp_id, zen.conc_1, zen.conc_2 FROM sub_zen zen join sub st1 on st1.id = zen.s_id join sub st2 on st2.id = zen.comp_id"]}}
我想在这里做的是将零值(默认情况下,典型值为nil)替换为P.我到目前为止尝试了这个。
filter{
mutate {
gsub => [
"typ", "nil", "P"
]
}
}
不起作用。
我也试过这个,但它会抛出错误
filter{
ruby {
code => "
if event.get('typ') == nil
event.set('typ') == P
end
"
}
}
有人可以帮忙吗?我怎么解决这个问题。
答案 0 :(得分:0)
如果该字段为null / nil,则可能是JDBC输入不是在您的事件中放置该字段。在这种情况下(或者即使它仍然可以尝试以下)你可以尝试这样的事情:
if !("" in [typ]) {
mutate {
add_field => { typ => "P" }
}
}