【问题标题】:Adding a constraint to a Splunk search yields more result rows向 Splunk 搜索添加约束会产生更多结果行
【发布时间】:2012-10-16 17:47:51
【问题描述】:

考虑以下两个 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 命令将表连接到自身。

这个 sn-p 与 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 字段在任一表/索引中都没有重复项
  • 我已验证 Splunk 索引中的原始事件与 MyVal 的事件计数和值中的原始源数据相匹配
  • props.conf 中的相关源类型配置的唯一搜索时间操作是 report,用于根据 transforms.conf 中的节提取字段(源数据采用 CSV 方言)

谁能在这里给我一些线索?就我而言,这种行为是荒谬的。

【问题讨论】:

    标签: nosql splunk


    【解决方案1】:

    我建议您在 Splunk 官方论坛 (splunk-base.splunk.com) 上重新发布此问题。那里有一些非常有用和经验丰富的“Splunker”(员工、客户、合作伙伴等),它可能是您提问的更好地方。

    干杯,

    Mhibbin

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多