このページの本文へ

FIXER cloud.config Tech Blog

超簡単!KQL(Kusto Query Language)の書き方【後編】

2021年01月07日 11時00分更新

文● 山下 隼司/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

初めに

 こんにちは。久しぶりの積雪にちょっとテンションが上がっていた入社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を使って、実用的なログ収集をしています。こちらもぜひお読みください。

 最後までお読み頂きありがとうございました!

 山下 隼司/FIXER

 20年新卒入社。
 クエリを華麗に書けるように勉強中です。

[転載元]
 超簡単!KQLの書き方(後編)

カテゴリートップへ