チュートリアル: 一般的な演算子について学習する
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
Kusto 照会言語 (KQL) は、Azure Data Explorer、Azure Monitor Log Analytics、Azure Sentinel などのクエリを記述するために使用されます。 このチュートリアルでは、データへのアクセスと分析に使用される重要な KQL 演算子の概要について説明します。
Azure Monitor でログを照会する方法の詳細なガイダンスについては、「 ログ クエリの概要を参照してください。
Note
お探しの情報がない場合、 この記事は、次のように最近分割されました。
- 一般的な演算子について説明します (この記事)
- 集計関数を使用する
- 複数のテーブルのデータを結合する
- 地理空間視覚エフェクトを作成する
このチュートリアルで学習する内容は次のとおりです。
このチュートリアルの例では、 StormEvents
テーブルを使用します。このテーブルは、 help クラスターで一般公開されています。 独自のデータを使用して探索するには、独自の無料クラスターを作成。
このチュートリアルの例では、 StormEvents
テーブルを使用します。このテーブルは、 Weather analytics サンプル データで一般公開されています。
前提条件
次のクエリを実行するには、サンプル データにアクセスできるクエリ環境が必要です。 次のいずれかを使用します。
- Microsoft アカウントまたは Microsoft Entra ユーザー ID
- Fabric ワークスペース Microsoft Fabric 対応の capacity
行数のカウント
まず、 count 演算子を使用して、 StormEvents
テーブル内の storm レコードの数を検索します。
StormEvents
| count
出力
カウント |
---|
59066 |
データのサンプルを見る
データを把握するには、 take 演算子を使用してレコードのサンプルを表示します。 この演算子は、テーブルから指定された数の任意の行を返します。これは、一般的なデータ構造と内容をプレビューするのに役立ちます。
StormEvents
| take 5
次の表は、返される 22 個の列のうち 5 つだけを示しています。 完全な出力を表示するには、クエリを実行します。
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 | 12,554 | 68796 | MISSISSIPPI | 雷雨風 | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | ジョージア | 雷雨風 | ... |
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 演算子を使用して、ビューを簡略化し、列の特定のサブセットを選択します。 project
の使用は、多くの場合、すべての列を表示するよりも効率的で読みやすいです。
StormEvents
| take 5
| project State, EventType, DamageProperty
出力
都道府県 | EventType | DamageProperty |
---|---|---|
ATLANTIC SOUTH | Waterspout | 0 |
FLORIDA | Heavy Rain | 0 |
FLORIDA | Tornado | 6200000 |
ジョージア | 雷雨風 | 2000 |
MISSISSIPPI | 雷雨風 | 20000 |
一意の値を一覧表示する
前のクエリの結果に基づいて、複数の種類の Storm があるようです。 distinct 演算子を使用して、すべての一意の Storm の種類を一覧表示します。
StormEvents
| distinct EventType
テーブルには 46 種類の嵐があります。 10 個のサンプルを次に示します。
EventType |
---|
雷雨風 |
ひょう |
鉄砲水 |
干ばつ |
冬の天気 |
Winter Storm |
大雪 |
High Wind |
Frost/Freeze |
洪水 |
... |
条件でフィルター処理する
場所演算子は、特定の条件に基づいてデータ行をフィルター処理します。
次のクエリでは、特定のEventType
の特定のState
で Storm イベントを検索します。
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 |
... | ... | ... | ... | ... |
結果の並べ替え
最も大きな被害を引き起こしたテキサス州の洪水の上位を表示するには、 ort 演算子を使用して、 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 |
Note
演算子の順序は重要です。 ここでwhere
する前にtop
を配置すると、さまざまな結果が得られます。 これは、データが各演算子によって順番に変換されるためです。 詳細については、表形式の式ステートメント 参照してください。
計算列の作成
project 演算子と extend 演算子の両方で計算列を作成できます。
project
を使用して表示する列のみを指定し、extend
を使用して計算列をテーブルの末尾に追加します。
次のクエリでは、StartTime
とEndTime
の差を持つ計算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
列を見ると、最も大きな被害を引き起こした洪水も最も長い洪水であることに気付くかもしれません。
extend
を使用して、計算されたDuration
列とその他のすべての列を表示します。 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 | ソース | FriendlyName |
---|---|---|
68796 | 非常事態担当マネージャー | パブリック |
... | ... | ... |
72609 | 公益事業会社 | プライベート |
... | ... | ... |
次のステップ
これで、Kusto クエリの記述に関する基本事項を理解しました。次のチュートリアルに進み、集計関数を使用してデータに関するより深い洞察を得る方法について説明します。