小ネタ
はじめに
random()
で数字を作ると重複がでるので、例えば1ー20の間でバラバラな数字を作りたいなってときにどうしよう
やってみました
SPL
| makeresults count=20
| streamstats count
| eval _time=_time - random() % 20
| sort _time
_time | count |
---|---|
2019/12/21 15:08:19 | 3 |
2019/12/21 15:08:20 | 19 |
2019/12/21 15:08:22 | 11 |
2019/12/21 15:08:24 | 16 |
2019/12/21 15:08:26 | 13 |
2019/12/21 15:08:27 | 6 |
2019/12/21 15:08:27 | 9 |
2019/12/21 15:08:27 | 18 |
2019/12/21 15:08:31 | 4 |
2019/12/21 15:08:31 | 7 |
2019/12/21 15:08:34 | 2 |
2019/12/21 15:08:34 | 8 |
2019/12/21 15:08:35 | 15 |
2019/12/21 15:08:35 | 20 |
2019/12/21 15:08:36 | 10 |
2019/12/21 15:08:37 | 5 |
2019/12/21 15:08:37 | 12 |
2019/12/21 15:08:37 | 14 |
2019/12/21 15:08:38 | 1 |
2019/12/21 15:08:38 | 17 |
あとはappendcols
とかでくっつけてあげる。
windbag
なんかいろいろな言葉がでてくるコマンド
SPL
|windbag
|head 20
|eval _time=_time-random()
|sort _time
|table position
これまた20個のばらばらの数字
どのみちrandom()
にはお世話になります。
まとめ
splunkのrandom()
って精度がよくて、そこまでバラバラにならない。
This function takes no arguments and returns a pseudo-random integer ranging from zero to 2^31 -1.
0...2147483647
ということらしい。
これらを使えば、以外と実データを模擬するときには使えます。
結構バラバラなデータを作るのってほんと大変です。