Kusto クエリ言語ステートメントの構造を理解する

完了

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

クエリは、一連のクエリ ステートメントで構成されます。 少なくとも 1 つのステートメントは、テーブルのように列と行の格子状に配置されたデータを生成する表形式の式ステートメントです。 クエリの表形式ステートメントからクエリの結果が生成されます。

表形式の式ステートメントの構文には、表形式クエリ演算子間の表形式のデータ フローがあります。 データ ソースから始まり、その後、パイプ (|) 区切り記号を使用してバインドされた一連のデータ変換演算子を通過します。

たとえば、次のクエリにはステートメントが 1 つありますが、それは表形式ステートメントです。 そのステートメントは、SecurityEvent というテーブルで始まります。 EventID 列の値によって、データ (行) がフィルター処理され、その後、アカウント別の件数 () を示す新しい列が作成されて結果が要約されます。 次に、準備フェーズで、結果は 10 行に制限されます。

Diagram of K Q L Statement showing data, condition and evidence.

重要

パイプ "|" を介して結果がどのように渡されていくかを理解することが重要です。 パイプの左側にあるすべてが処理され、パイプの右側に渡されます。

Log Analytics デモ環境にアクセスする

KQL ステートメントの作成を練習するための環境へのアクセスが Microsoft によって提供されています。 唯一の要件は、Azure にログインするためのアカウントを持っていることです。 この環境にアクセスするために Azure アカウントに料金は発生しません。 このモジュールの KQL ステートメントは、デモ環境で実行できます。

デモ環境には https://aka.ms/lademo からアクセスできます。

重要

ログ分析デモ データベースは動的な環境です。 その環境のテーブルに記録されたイベントは、さまざまなセキュリティ イベントで継続的に更新されます。 これは実際のセキュリティ運用の設定で、ユーザーが経験するものに似ています。 このため、このトレーニングの有限のクエリでは、クエリの実行時のデモ データベースの状態によっては結果が何も表示されない場合があります。 たとえば、SecurityEvent テーブルに対する過去 1 日の "discardEventID = 4688" についてのクエリでは、その特定のイベントが最後に発生したのが 3 日前だった場合、結果が表示されません。 そのため、クエリで結果を表示するには、スクリプトの実行時にデモ データベースに含まれるデータに応じて、このトレーニングに記載されているスクリプトの変数を特別に調整することが必要な場合もあります。 これらのスクリプトの調整は、実際の環境で実行するものと似ており、スクリプトの特定の部分がどのように機能するかを学習するのに役立ちます。

Screenshot of the Log Analytics Demo Environment.

クエリ ウィンドウには 3 つの主要セクションがあります。

  • 左側の領域は、環境内のテーブルの参照リストです。

  • 中央上部の領域はクエリ エディターです。

  • 下部領域はクエリの結果です。

クエリを実行する前に、時間の範囲を調整してデータのスコープを指定します。 表示される結果列を変更するには、[列] ボックスを選択し、必要な列を選択します。