考虑以下两个Splunk搜索:
index=a | join type=inner MyKey [search index=b]
和
index=a | join type=inner MyKey [search index=b | where MyVal > 0]
值得注意的是,后者的搜索 - 其子搜索具有约束的搜索 - 的结果行数是前者的三倍。
join
命令的Splunk documentation page建议语法足够接近SQL join
的参数:
如果指定的字段对每个字段都是通用的,则使用连接来组合搜索和子搜索的结果。您还可以使用selfjoin命令将表连接到自身。
此代码段与type=inner
参数相关:
如果指定的字段对每个字段都是通用的,则使用连接来组合搜索和子搜索的结果。您还可以使用selfjoin命令将表连接到自身。
根据这些信息,我假设上面的两个Splunk搜索应该分别等同于以下SQL:
SELECT *
FROM a
INNER JOIN b ON a.MyKey = b.MyKey
和
SELECT *
FROM a
INNER JOIN b ON a.MyKey = b.MyKey
WHERE b.MyVal > 0
添加约束如何增加结果行数?
有趣的是,以下Splunk搜索会产生第三个结果 - 与我在SQL数据库中放入相同数据时的结果相匹配:
index=a | join type=outer MyKey [search index=b | eval hasmatch=1]
| where hasmatch=1
更多说明:
MyVal
字段在表/索引MyVal
props.conf
中的相关来源类型配置的唯一搜索时操作是report
,以根据transforms.conf
中的节提取字段(源数据采用CSV方言) )有人能在这里给我一些线索吗?就我而言,这种行为是荒谬的。
答案 0 :(得分:0)
我建议您在官方Splunk论坛(splunk-base.splunk.com)上重新发布此问题。那里有一些非常有用和经验丰富的“Splunkers”(员工,客户,合作伙伴等),它可能是您提问的最好地方。
干杯,
MHibbin