splunk

Splunkコマンド 「dedup」で重複を削除

投稿日:

「dedup」は、イベントの重複を削除するコマンドです。
フィールドを指定して並び替えて1件目のデータだけを残すなど、利用ケースは多いです。

元データ

| makeresults
| eval "A" = "A1" ,"B" = "100","C" = "100"
| append 
[makeresults | eval "A" = "A1","B" = "300","C" = "200"]
| append 
[makeresults | eval "A" = "A1","B" = "300","C" = "250"]
| append 
[makeresults | eval "A" = "A1","B" = "200","C" = "300"]
| append 
[makeresults | eval "A" = "A2","B" = "200","C" = "200"]
| fields - _time
結果

サンプルコード

単フィールドをキーに重複排除

元データのコードの後ろに「dedup」コマンドを追加します。

| dedup A
結果

Aフィールドがユニークになりました。Aフィールドが同じデータが複数ある場合は、サーチ結果の昇順の1件目が設定されます。

複数フィールドをキーに重複排除

| dedup A B
結果

A,Bフィールドでユニークになりました。

重複行数の指定

フィールド名の前に数字を設定すると重複行数を指定できます。
サンプルは2行を指定しているのでA1が2行になっています。

| dedup 2 A
結果

キーフィールド以外の設定データ

「sortby」で並び替えして、残すデータを指定します。
+(昇順)-(降順)で、サンプルはCフィールドの降順で並び替えて1件目を残しています。

| dedup A sortby -C
結果

複数フィールドをソートキーに指定

複数フィールドをソートキーに指定でき、左が上位キーになります。

| dedup A sortby -B +C
結果

まとめ

複数フィールドをキーに重複データを除きたいケースは結構あるので、良く使っています。







-splunk
-

Copyright© Tech Log , 2020 All Rights Reserved Powered by STINGER.