使用 logstash 输入 jdbc 插件将从 Mysql 拉取到 Elasticsearch 的空值设置为默认值
Set Null values pulled from Mysql to Elasticsearch to a default value using logstash input jdbc plugin
我想用默认值获取它们的字段在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
"
}
}
我发现解决方案是 ruby 脚本。希望对其他人有帮助。
filter {
ruby {
code => "
hash = event.to_hash
hash.each do |k,v|
if v == nil
event[k] = 0
end
end
"
}
}
我想用默认值获取它们的字段在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
"
}
}
我发现解决方案是 ruby 脚本。希望对其他人有帮助。
filter {
ruby {
code => "
hash = event.to_hash
hash.each do |k,v|
if v == nil
event[k] = 0
end
end
"
}
}