Kusto クエリの概要

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

このクエリは、セミコロン () で区切られた一連のクエリステートメントで構成されてい ; ます。1つ以上のステートメントがテーブル ; であり、これは、列と行のテーブル形式のメッシュに配置されたデータを生成するステートメントです。 クエリの表形式ステートメントからクエリの結果が生成されます。

表形式ステートメントの構文には、ある表形式クエリ演算子から別の表形式クエリ演算子への表形式のデータ フローがあり、データ ソース (データベース内のテーブルや、データを生成する演算子など) から始まり、パイプ (|) 区切り記号を使用して結合された一連のデータ変換演算子を通過します。

たとえば、次の Kusto クエリにはステートメントが 1 つありますが、それは表形式ステートメントです。 このステートメントは StormEvents という名前のテーブルの参照から始まっています (このテーブルをホストするデータベースはここでは接続情報の一部として暗に示されるだけです)。 そのテーブルのデータ (行) が StartTime 列の値でフィルター処理され、さらに State 列の値でフィルター処理されます。 "最後まで残った" 行の数がクエリにより返されます。

StormEvents 
| where StartTime >= datetime(2007-11-01) and StartTime < datetime(2007-12-01)
| where State == "FLORIDA"  
| count 

クエリを実行し、結果を確認します

Count
23

管理コマンド

Kusto クエリとは対照的に、制御コマンドは、データまたはメタデータを処理し、おそらくは変更することを求める Kusto への要求です。 たとえば、次の管理コマンドでは、2 つの列 LevelText を持つ新しい Kusto テーブルが作成されます。

.create table Logs (Level:string, Text:string)

管理コマンドには独自の構文があり、これは Kusto クエリ言語構文に含まれていませんが、この 2 つは多くの概念を共有しています。 特に、コマンドのテキストの最初の文字をドット (.) 文字 (クエリの先頭にすることができない) にすることで、管理コマンドはクエリと区別されます。 この区別により、クエリ内での管理コマンドの埋め込みが防止されるため、さまざまな種類のセキュリティ攻撃を防ぐことができます。

すべての管理コマンドでデータまたはメタデータが変更されるわけではありません。 .show で始まる大きなクラスのコマンドは、メタデータまたはデータを表示するために使用されます。 たとえば、.show tables コマンドからは、現在のデータベース内のすべてのテーブルの一覧が返されます。

次の手順