【Splunk】whereはフィールドでフィルタリングできる
whereコマンドの説明を書きます。
以下の記事の派生記事です。
canada-lemon.hatenablog.com
whereは条件で結果を絞り込むマンドです。
構文例
| where <絞り込みたいフィールド> = (条件)
使用例1:テストで一定以上の点数を取った生徒に絞り込む
whereを使って生徒の点数と平均点を比較してみます。
以下のSPLを実行してダミーデータを用意します。
4人の生徒の英数国の点数です。
makeresults
ってなんぞや?という方は以下の記事をご参照ください。
canada-lemon.hatenablog.com
| makeresults format=csv data="Class,Name,English,Math,Japanese 2年1組,Alfred,90,60,70 2年1組,Gascoigne,80,80,80 2年2組,Gehrman,60,100,50 2年2組,Ludwig,70,70,90" | table Class Name English Math Japanese
Class | Name | English | Math | Japanese |
---|---|---|---|---|
2年1組 | Alfred | 90 | 60 | 70 |
2年1組 | Gascoigne | 80 | 80 | 80 |
2年2組 | Gehrman | 60 | 100 | 50 |
2年2組 | Ludwig | 70 | 70 | 90 |
このデータに対し、英語が70点より高い生徒を絞り込みたいときは、以下のように書きます。
| makeresults format=csv data="Class,Name,English,Math,Japanese 2年1組,Alfred,90,60,70 2年1組,Gascoigne,80,80,80 2年2組,Gehrman,60,100,50 2年2組,Ludwig,70,70,90" | table Class Name English Math Japanese | where English > 70
Class | Name | English | Math | Japanese |
---|---|---|---|---|
2年1組 | Alfred | 90 | 60 | 70 |
2年1組 | Gascoigne | 80 | 80 | 80 |
備考1:searchとの違い
whereではisnull()
やisnotnull()
のような関数が使えます。例えば、| where isnotnull(Name)
と書けば、Name列が欠損していないレコードを検索できます。
一方、ワイルドカードを使う場合はsearchのほうが気軽に書けます。これは次の記事で紹介します。
本記事ではwhereコマンドの説明をしました。
ここまで読んでいただき、ありがとうございました。
Splunk頻出SPLシリーズ