我使用logstash jdbc语句"select utl_raw.cast_to_varchar2(dbms_lob.substr(field,length( field )) from table;“来获取blob字段。logstash中的输出是像"\v\u0004\u0000\u0000\u0000\u0001\u0005\u0001\u0004\u0019\u0000c\u0000o\u0000m\u0000.\u0000w\u0000m\u0000.\u0000d\u0000a\u0000t\u0000a\u0000.\u0000I\u0000S\u0000M\u0000e\u0000m"‘这样的unicode字符,它的实际值是"com.wm.data.ISMem“,我需要替换所有unicode字符并解析我的数据。任何人都可以建议如何重新解析它,以及在这里可以使用哪个logstash过滤器来解析SQL输出
发布于 2019-07-18 21:11:53
您可以从mutate
过滤器中使用gsub
。
mutate {
gsub ["field-name","\v\u0004\u0001\u0005\u0001\u0004\u0019",""]
gsub ["field=name","\u0000",""]
}
第一个将删除\v\u0004\u0001\u0005\u0001\u0004\u0019
,它似乎是某种标头。
第二个将从字符串中删除剩余的\u0000
。
发布于 2019-07-18 21:26:26
您可以使用以下命令对其进行变异
mutate {
gsub => [
"message", "[\\]u0000", "",
"message", "[\\]v[\\]u0004[\\]u0001[\\]u0005[\\]u0001[\\]u0004[\\]u0019", ""]
}
我希望有一种方法可以修复ruby过滤器中的编码,但我不知道它是什么。
https://stackoverflow.com/questions/57089731
复制相似问题