初めに
この記事はFIXER 2nd Advent Calendar 2020 (https://adventar.org/calendars/5752) 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クエリを上から順に見ていくと、
StormEvents
という名前のテーブルのStartTime
というカラムの中の、年月日が2007/11/01〜2007/12/01の間且つState
というカラムの中で"FLORIDA"
の- 数を数える
そして出力する(今回の場合23回)という流れです。どうでしょうか。とてもわかりやすく、シンプルに書かれていることがわかったと思います。ここまで見た感じ、Kustoクエリって簡単じゃん!と思って頂けましたでしょうか?少しでもそう思って頂けたのであれば幸いです。
この調子で説明を続けたいところですが、今回はここまでにしたいと思います。
終わりに
今回の記事で、「KQLって名前からして取っ付きづらそうだな」というイメージは何となく払拭できたのではないかと思います。後編では、先ほど利用したデモ画面を使って、「KQLでよく使われる、where,summarize,sort by,project,render
などの演算子を使って自分の欲しいデータを自分の欲しい形で出力する」みたいなことを説明していきたいと思います。応用編では、前編と後編で学んだことを活かして、Azure Log Analyticsでの診断ログに関して書く予定です。よろしければそちらもご覧ください。
最後までお読み頂きありがとうございました。次回の更新をお待ちください!