チュートリアル: 一般的な演算子について学習する
Kusto 照会言語 (KQL) は、Azure Data Explorer、Azure Monitor Log Analytics、Azure Sentinel などのクエリを記述するために使用されます。 このチュートリアルでは、データへのアクセスと分析に使用される重要な KQL 演算子の概要について説明します。
Azure Monitor でログのクエリを実行する方法の詳細については、「 ログ クエリの概要」を参照してください。
注意
お探しの情報がない場合、 この記事は、次のように最近分割されました。
- 一般的な演算子について説明します (この記事)
- 集計関数を使用する
- 複数のテーブルからのデータを結合する
- 地理空間の視覚化を作成する
このチュートリアルで学習する内容は次のとおりです。
このチュートリアルの例では、ヘルプ クラスターで公開されているテーブルを使用StormEvents
します。 独自のデータを使用して探索するには、 独自の無料クラスターを作成します。
前提条件
- ヘルプ クラスターにサインインするための Microsoft アカウントまたはMicrosoft Entraユーザー ID
行数のカウント
まず 、count 演算子を使用して、テーブル内の Storm レコードの数を StormEvents
検索します。
StormEvents
| count
出力
Count |
---|
59066 |
データのサンプルを見る
データを理解するには、 take 演算子を使用してレコードのサンプルを表示します。 この演算子は、テーブルから指定された数の任意の行を返します。これは、一般的なデータ構造と内容をプレビューする場合に役立ちます。
StormEvents
| take 5
次の表は、返される 22 個の列のうち 6 つだけを示しています。 完全な出力を表示するには、クエリを実行します。
StartTime | EndTime | EpisodeId | EventId | 状態 | EventType | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDA | Tornado | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12554 | 68796 | MISSISSIPPI | 雷雨風 | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIA | 雷雨風 | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTIC SOUTH | Waterspout | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Heavy Rain | ... |
列のサブセットを選択する
プロジェクト演算子を使用してビューを簡略化し、列の特定のサブセットを選択します。 多くの場合、 を使用すると project
、すべての列を表示するよりも効率的で読みやすくなります。
StormEvents
| take 5
| project State, EventType, DamageProperty
出力
州 | EventType | DamageProperty |
---|---|---|
ATLANTIC SOUTH | Waterspout | 0 |
FLORIDA | Heavy Rain | 0 |
FLORIDA | Tornado | 6200000 |
GEORGIA | 雷雨風 | 2000 |
MISSISSIPPI | 雷雨風 | 20000 |
一意の値を一覧表示する
前のクエリの結果に基づいて、複数の種類の嵐があるようです。 一意の嵐の種類をすべて一覧表示するには、distinct 演算子を使用します。
StormEvents
| distinct EventType
テーブルには 46 種類の嵐があります。 そのうちの 10 個のサンプルを次に示します。
EventType |
---|
雷雨風 |
ひょう |
鉄砲水 |
干ばつ |
冬の天気 |
Winter Storm |
大雪 |
High Wind |
フロスト/フリーズ |
洪水 |
... |
条件でフィルター処理
where 演算子は、特定の条件に基づいてデータの行をフィルター処理します。
次のクエリでは、特定EventType
の で Storm イベントをState
検索します。
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
これらの条件に一致するイベントは 146 個あります。 そのうちの 5 つのサンプルを次に示します。
StartTime | EndTime | 状態 | EventType | DamageProperty |
---|---|---|---|---|
2007-01-13T08:45:00Z | 2007-01-13T10:30:00Z | テキサス州 | 洪水 | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | テキサス州 | 洪水 | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | テキサス州 | 洪水 | 0 |
2007-01-15T22:00:00Z | 2007-01-16T22:00:00Z | テキサス州 | 洪水 | 20000 |
2007-03-12T02:30:00Z | 2007-03-12T06:45:00Z | テキサス州 | 洪水 | 0 |
... | ... | ... | ... | ... |
結果の並べ替え
損害が最も多いテキサス州の洪水の上位を表示するには、 並べ替え 演算子を使用して、列に基づいて行を降順に DamageProperty
配置します。 既定の並べ替え順序は降順です。 昇順で並べ替えるには、 を指定します asc
。
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
出力
StartTime | EndTime | 状態 | EventType | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | テキサス州 | 洪水 | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | テキサス州 | 洪水 | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | テキサス州 | 洪水 | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | テキサス州 | 洪水 | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | テキサス州 | 洪水 | 750000 |
... | ... | ... | ... | ... |
上位 n 行を取得する
top 演算子は、指定した列で並べ替えられた最初の n 行を返します。
次のクエリでは、最も損傷を受けたプロパティの原因となった 5 つのテキサス洪水が返されます。
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
出力
StartTime | EndTime | 状態 | EventType | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | テキサス州 | 洪水 | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | テキサス州 | 洪水 | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | テキサス州 | 洪水 | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | テキサス州 | 洪水 | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | テキサス州 | 洪水 | 750000 |
注意
演算子の順序は重要です。 ここで前にwhere
入力top
すると、異なる結果が得られます。 これは、データが各演算子によって順番に変換されるためです。 詳細については、「 表形式の式ステートメント」を参照してください。
計算列の作成
プロジェクト演算子と拡張演算子の両方で、計算列を作成できます。
を使用して project
表示する列のみを指定し、 を使用 extend
して計算列をテーブルの末尾に追加します。
次のクエリでは、 と EndTime
の差を持つ計算列がStartTime
作成されますDuration
。 いくつかの選択列のみを表示する必要があるため、この場合は を使用 project
することをお勧めします。
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty
出力
StartTime | EndTime | Duration | DamageProperty |
---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | 1.01:30:00 | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | 12:00:00 | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | 05:00:00 | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | 08:00:00 | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | 03:00:00 | 750000 |
計算 Duration
列を見ると、最も大きな被害を引き起こした洪水も最も長い洪水であることに気付くかもしれません。
計算列Duration
と他のすべての列を表示するには、 を使用extend
します。 Duration
列が最後の列として追加されます。
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime
出力
StartTime | EndTime | ... | Duration |
---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | ... | 1.01:30:00 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | ... | 12:00:00 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | ... | 05:00:00 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | ... | 08:00:00 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | ... | 03:00:00 |
あるセットから別のセットに値をマップする
静的マッピングは、結果の表示を変更するための便利な手法です。 KQL では、静的マッピングを実行する方法の 1 つは、動的ディクショナリとアクセサーを使用して、あるセットから別のセットに値をマップすることです。
let sourceMapping = dynamic(
{
"Emergency Manager" : "Public",
"Utility Company" : "Private"
});
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]
出力
EventId | source | FriendlyName |
---|---|---|
68796 | 非常事態担当マネージャー | パブリック |
... | ... | ... |
72609 | ユーティリティカンパニー | プライベート |
... | ... | ... |
次のステップ
Kusto クエリの作成の基本事項を理解したら、次のチュートリアルに進み、集計関数を使用してデータに関するより深い洞察を得る方法について説明します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示