このページの本文へ

FIXER cloud.config Tech Blog

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

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

文● 山下 隼司/FIXER

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

この記事はFIXER 2nd Advent Calendar 2020  20日目の記事です。

初めに

 こんにちは。最近、「むつごい/むつこい」という言葉が方言であることを知り、驚愕した入社1年目の山下です。方言って面白いですよね(ちなみにむつごいとは、胸焼けがするような、味が濃い、脂っこいといった意味です)。

 早速ですが、本題に入っていこうと思います。本テーマでは、KQLを使って簡単にデータ検索ができるということを前編、後編、応用編に分けて説明していこうと思います。

KQLとは

 KQL(Kusto Query Language)とは、公式ドキュメントによると、

Kusto クエリは、データを処理して結果を返すための、読み取り専用の要求です。 要求は、構文を読みやすく、作りやすく、自動化しやすくするように設計されたデータフロー モデルを利用してプレーンテキストで述べられます。

https://docs.microsoft.com/ja-jp/azure/data-explorer/kusto/query/


 とのことです。正直、この文章だけ見ても「???」となりますよね。なので、手っ取り早く手を動かしてどのようなものか見ていきましょう。

 その前に、弊社の先輩である松枝さんのASCIIさんにも取り上げられている以下の「診断ログは怖くない! 欲しいログを探すコツ」という記事を読んでいると更に理解が深まるかと思います(ちなみに私もこの記事を見て勉強しました)。

ASCII :https://ascii.jp/elem/000/004/031/4031739/
元記事:https://tech-blog.cloud-config.jp/2020-08-12-tips-for-finding-the-diagnostic-log-you-want/

 では、準備が整ったと思うので、先ほど引用した公式ドキュメントページの下部に、

このクエリを実行するには、ここをクリックしてください。 この場合、結果は次のようになります。


 とありますので、実際に開いてみましょう。以下のようなAzure Data Explorerのデモページが開かれるかと思います。

 なんと! 既にKustoクエリが書かれていますね。なので、とりあえずこのKustoクエリの説明をしていきたいと思います。

 このKustoクエリを上から順に見ていくと、

1. StormEventsという名前のテーブルの
2. StartTimeというカラムの中の、年月日が2007/11/01〜2007/12/01の間且つ
3. Stateというカラムの中で"FLORIDA"の
4. 数を数える

 そして出力する(今回の場合23回)という流れです。どうでしょうか。とてもわかりやすく、シンプルに書かれていることがわかったと思います。ここまで見た感じ、Kustoクエリって簡単じゃん! と思って頂けましたでしょうか? 少しでもそう思って頂けたのであれば幸いです。

 この調子で説明を続けたいところですが、今回はここまでにしたいと思います。

終わりに

 今回の記事で、「KQLって名前からして取っ付きづらそうだな」というイメージは何となく払拭できたのではないかと思います。

 後編では、先ほど利用したデモ画面を使って、「KQLでよく使われる、where、summarize、sort by、project、renderなどの演算子を使って自分の欲しいデータを自分の欲しい形で出力する」みたいなことを説明していきたいと思います。応用編では、前編と後編で学んだことを活かして、Azure Log Analyticsでの診断ログに関して書く予定です。よろしければそちらもご覧ください。

 最後までお読み頂きありがとうございました。次回の更新をお待ちください!

 山下 隼司/FIXER

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

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

カテゴリートップへ