Splunk の結果をバケットに分割するクエリを実行しています。ディスク上のサイズに基づいてファイルを分割してカウントしたい。これは、rangemap
またはを使用して実現できますeval case
。
ここで読んだように、usingeval
は よりも高速ですrangemap
。しかし、両方を使用すると異なる結果が得られます。
これは私が実行しているクエリです-
<source>
| eval size_group = case(SizeInMB < 150, "0-150 MB", SizeInMB < 200 AND SizeInMB >= 150, "150-200 MB", SizeInMB < 300 AND SizeInMB >= 200, "200-300 MB", SizeInMB < 500 AND SizeInMB >= 300, "300-500 MB", SizeInMB < 1000 AND SizeInMB >= 500, "500-1000 MB", SizeInMB > 1000, ">1000 MB")
| stats count by size_group
そして、これは私が得ている結果です -
これを使用rangemap
するのはクエリですが-
<source>
| rangemap field=SizeInMB "0-150MB"=0-150 "151-200MB"=150-200 "201-300MB"=200-300 "301-500MB"=300-500 "501-999MB"=500-1000 default="1000MB+"
| stats count by range
私もこの範囲を試しました-rangemap field=SizeInMB "0-150MB"=0-150 "150-200MB"=150-200 "200-300MB"=200-300 "300-500MB"=300-500 "500-1000MB"=500-1000 default="1000MB+"
そして、同じ結果が得られました-
両方の画像の結果に大きな違いはなく、おそらくそれを受け入れることができます-しかし、150-200MBの範囲では. 445958 vs 445961
、200-300 MB3676 vs 3677
では3346 vs 3348
. その違いの理由と、どちらをより信頼すべきかを理解したいと思います。Speedwiseeval
の方が良さそうに見えますが、datawise はそれほど正しくないのでしょうか?