【Splunk】フィールド名はなるべく英数字にする

こんにちは。
初歩的なことですが、自分が20分くらいハマったので備忘録として書きます。
端的に書くと、フィールド名はなるべく英数字で扱い、もし日本語にする必要があるなら最後にrenameしようという話です。

以下のSPLを実行します。
使用しているSPLコマンドがわからない場合は、以下の記事をご参照ください。
canada-lemon.hatenablog.com

| makeresults 
| eval prefix = "制約と"
| eval suffix = "誓約"
| eval sum = prefix + suffix
| table prefix suffix sum

出力結果

prefix suffix sum
制約と 誓約 制約と誓約

何の変哲もないフィールド結合です。

では、以下のSPLではどうでしょうか。

| makeresults 
| eval "前半" = "制約と"
| eval "後半" = "誓約"
| eval "結合" = 前半 + 後半
| table "前半" "後半" "結合"


エラーが出ました。

どうやら4行目に問題がありそうです。
フィールド名をダブルクオーテーションで囲ってみます。

| makeresults 
| eval "前半" = "制約と"
| eval "後半" = "誓約"
| eval "結合" = "前半" + "後半"
| table "前半" "後半" "結合"

出力結果

前半 後半 結合
制約と 誓約 前半後半

なんと、フィールド名ではなく文字列として認識されてしまいました。
このように、フィールド名が日本語の場合、eval等で操作するときに不都合が生じます。

Splunkに取り込んだログのフィールド名が日本語になっていることは基本的に無いと思いますが、自分でフィールド名を定義するときは気をつけましょう。
フィールドを操作する予定がなくても、後から操作したくなったときに困ります。
日本語にしたいときは最後にrenameするのが鉄則です。

| makeresults 
| eval prefix = "制約と"
| eval suffix = "誓約"
| eval sum = prefix + suffix
| table prefix suffix sum
| rename prefix as "前半" suffix as "後半" sum as "結合"

出力結果

前半 後半 結合
制約と 誓約 制約と誓約

ここまで読んでいただき、ありがとうございました。