
初めに
こんにちは。久しぶりの積雪にちょっとテンションが上がっていた入社1年目の山下です。翌朝、ベランダに雪が積もってて掃除が大変で、雪はもういいやとなりました。
早速ですが、本題に入っていこうと思います。本テーマは、KQLを使って簡単にデータ検索ができるということを前編、後編、応用編に分けた記事の後編になります。前編はこちらをご覧ください。
KQLでよく使われる演算子
ここでは、「KQLでよく使われる演算子を使い、実際のAzure Data Explorerのデモ画面で、自分の欲しいデータを自分の欲しい形で出力する」ということを行なっていきます。デモ画面のURLはこちらからお開きください。
①where
特定の述語でのフィルター
https://docs.microsoft.com/ja-jp/azure/data-explorer/kql-quick-reference
とドキュメントにありますが、実際に見ていった方が早いので見てみましょう。

こちらの画面は前編で説明しているので説明は省かせて頂きます。このKustoクエリを以下の画像のように編集してみてください。

そして実行ボタンを押し、結果が出てくるのを待つと、以下のような画面が出てくるかと思います。

これは、StormEvents
テーブルの全てのデータを表示しています。
では、ここからwhereを追加して、自分が欲しいデータを表示させてみましょう。欲しいデータは自分で決めて試してみて頂ければと思いますが、本記事では非常にシンプルではありますが、下記データを表示させてみようと思います。
StartTime
が2007-01-01 00:00:00 ~ 2008-01-01 00:00:00
の期間State
がMINNESOTA
EventType
がFlood
では実際にwhereを使って表示させてみましょう。以下の画像のように入力してみてください。

そしてこのKustoクエリを実行すると・・・

レコード数が29件まで絞り込めましたね!これが「自分の欲しいデータを自分の欲しい形で出力する」の「自分の欲しいデータ」になります。
②project
先ほどの結果を見て思ったことはありませんか?私は不要な列まで混ざっていて見づらいと感じました。そこで、必要な列だけを表示させてみましょう。そのための演算子がproject
です。以下のようにproject
の行を追加します。

そして実行を押すと・・・

必要なStartTime,State,EventType
の列だけ表示させることができました!だいぶ見やすくなったと思います。
③summarize
summarize
は入力テーブルの内容を集計したテーブルを生成します。こちらも以下のようにsummarize
の行を追加します。

これで実行ボタンを押すと・・・

2~4行目のwhere
文で絞り込んだ数を出力することができました!やっぱりシンプルですよね。summarize
はこのように、データの数を出力することができるので、ユーザ登録数のようなものも簡単に取得することができます。(実際はそう上手くいかないかもしれません。あくまで一例ですのでご了承ください。)
④sort
sort
は名前からピンとくるかもしれませんが、並べ替えです。以下のようにクエリを書き換えてみましょう。sort
は並べ替えのため、わかりやすい数字で出力するために、EpisodeId
のデータを表示するようにしています。

実行すると・・・

EpisodeId
が順番に表示されました!ちゃんと順番に並んでいますね。因みに、asc
は昇順という意味です。降順にしたい場合は、desc
に書き換えて実行してみてください。
⑤render
最後にrender
について説明していきます。render
は簡単にいうとグラフを生成する演算子です。実際にクエリを見ていきます。

これで実行すると・・・

横軸がStartTime
,縦軸がEpisodeId
のグラフが表示されました!たった1行でグラフが表示されることがわかりました。すごいですよね。今回、クエリでは5,6
行目を追加しています。5行目で、StartTime
とEpisode
の2列だけ出力し、6行目で、StartTime
(横軸)とEpisode
(縦軸)として、棒グラフで表示しています。
終わりに
今回、Azure Data Explorerのデモ画面で、よく使われる演算子を使ってKQLの説明をしていきました。見る前よりも理解を深めることができましたでしょうか?少しでも理解度が上がっていれば幸いです。前編と後編ではAzure Data Explorerで行なってきましたが、次の応用編では、Log AnalyticsでKQLを使って、実用的なログ収集をしていこうと思います。次回の更新をお待ち頂ければと思います。最後までお読み頂きありがとうございました!次回の更新もお楽しみに。