日本語版SPL Example用
cf. fillnull
説明
null値を指定された値に置き換えます。
null値は、特定の結果では欠落しているが別の結果では存在するフィールド値です。
fillnullを使用して、nullフィールド値を文字列で置き換えます。
フィールドリストを指定しない場合、fillnullはすべてのnull値を0(デフォルト)またはユーザー指定の文字列に置き換えます。
特定の結果では欠落しているが別の結果では存在するフィールド値
| eval baz=coalesce(foo,bar)
を使う時ですね。
fillnull.spl
index=_internal
| fillnull component value="NA"
component
のフィールドを確認するとcomponent
フィールドがなかったイベントにもフィールドが作成されて、この場合_NA_が入力される。
記述
fillnull [value=string] [<field-list>]
オプション引数
value | field-list |
---|---|
文字列 デフォルトは0 |
値を入れるフィールド |
例1
fillnull1.spl
| makeresults
| eval a=""
| table a,b,c,d
| fillnull a b c d
結果
a | b | c | d |
---|---|---|---|
0 | 0 | 0 | |
null と値がない を表してみた。 |
例2
fillnull2.spl
| makeresults
| eval a=""
| eval b=null(), c=""
| fillnull a b c d
結果
a | b | c | d |
---|---|---|---|
0 | 0 | ||
明示的にnull にしてあげなきゃいけないと言う例 |
null除外.spl
| makeresults
| eval a=""
| eval b=null(), c=""
| fillnull a b c d
| foreach * [ eval <<FIELD>> = nullif(<<FIELD>>,"")]
| fillnull
全部nullにしてしまえばこの通りしっかり動きます。
例3
fillnull3.spl
| makeresults
| fillnull a b c d
結果
a | b | c | d |
---|---|---|---|
0 | 0 | 0 | 0 |
何はともあれフィールドを作りたい時はfillnull が一番早い |
まとめ
nullはSplunkにおいて非常にわかりづらい。
where isnull()
が期待通りの動きをしなかったりする場合| fillnull
で確認してみるとただの値がない
だけかもしれません。
fillnull
の話で終わっていない。