この記事は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の書き方(前編)