问题:我正在使用默认的Splunk UI搜索屏幕,在该屏幕中,我进行了搜索,其中包含要转换为数字的分类值(例如主机名)字段。到目前为止,我发现的唯一解决方案是使用eval-case组合来标识和转换每个名称。如果您的名称列表很有限,那么效果很好。我的字段名称数量不确定,我想避免使用Splunk的内置热编码,例如eval {field} =1。这会产生一组列,根据字段的基数,这些列可能会出现非常高的数字。
下面是使用eval和case的示例。同样,这对于一些已知值也可以正常工作。我正在寻求一种更动态的方法来处理大量值。
| eval src_zone_num = case(src_zone == "zone1", 1, src_zone == "zone2", 2, src_zone == "zone3", 3, src_zone == "zone4", 4, src_zone == "zone5", 5)
尝试| streamstats count as src_zone_num by src_zone
。
您可以使用哈希,eval h = md5(主机名)
也许您解释此用例的原因(主机名为数字,我们可能还有其他选择。