我想用默认值获取它们的字段在MYSQL中可能为NULL。 这是我对logstash插件的配置。
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/elements"
jdbc_user => "user"
jdbc_password => "admin"
jdbc_validate_connection => true
jdbc_driver_library => "C:/work/Wildfly/wildfly-9.0.2.Final/modules/com/mysql/main/mysql-connector-java-5.1.36.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement_filepath => "query.sql"
use_column_value => true
tracking_column => id
#schedule => "*/3 * * * *"
clean_run => true
}
}
output {
elasticsearch {
index => "emptytest"
document_type => "history"
document_id => "%{id}"
hosts => "localhost"
}
}
我尝试使用过滤器来测试空值,但它没有检测到它们。
if [sourcecell_id] == "NULL" {
mutate {
}
}
我做的最远的事情是通过ruby脚本删除该字段,但我不想删除我想用默认值替换它,例如0。
这是ruby脚本:
filter {
ruby {
code => "
hash = event.to_hash
hash.each do |k,v|
if v == nil
event.remove(k)
end
end
"
}
}
答案 0 :(得分:2)
我发现解决方案是一个ruby脚本。我希望它能帮助其他人。
filter {
ruby {
code => "
hash = event.to_hash
hash.each do |k,v|
if v == nil
event[k] = 0
end
end
"
}
}