Kusto 查询语言 (KQL) 用于在 Azure 数据资源管理器 Azure Monitor Log Analytics Azure Sentinel 等中编写查询。 本教程介绍用于访问和分析数据的基本 KQL 运算符。

本教程介绍以下操作:

  • 查看数据示例
  • 选择列的子集
  • 列出唯一值
  • 按条件筛选
  • 对结果进行排序
  • 获取前 n
  • 创建计算列
  • 将值从一个集映射到另一个集
  • 本教程中的示例使用 StormEvents 帮助 群集 中公开提供的表。 若要使用自己的数据进行浏览, 请创建自己的免费群集

  • 用于登录到 帮助群集 的 Microsoft 帐户或 Azure Active Directory 用户标识
  • 首先,使用 count 运算符查找表中的 storm 记录 StormEvents 数。

    StormEvents 
    | count
    
    StormEvents
    | where State == 'TEXAS' and EventType == 'Flood'
    | project StartTime, EndTime, State, EventType, DamageProperty
    

    有 146 个事件与这些条件匹配。 下面是其中 5 个示例。

    StartTime EndTime EventType DamageProperty

    对结果进行排序

    若要查看德克萨斯州造成最大破坏的顶级洪水,请使用 排序 运算符根据 DamageProperty 列按降序排列行。 默认排序顺序为降序。 若要按升序排序,请指定 asc

    StormEvents
    | where State == 'TEXAS' and EventType == 'Flood'
    | sort by DamageProperty
    | project StartTime, EndTime, State, EventType, DamageProperty
    StartTime
    EndTime
    EventType
    DamageProperty
    | where State == 'TEXAS' and EventType == 'Flood'
    | top 5 by DamageProperty
    | project StartTime, EndTime, State, EventType, DamageProperty
    StartTime
    EndTime
    EventType
    DamageProperty
    

    projectextend 运算符都可以创建计算列。

    使用 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
    DamageProperty
    

    如果查看计算 Duration 列,可能会注意到造成最大破坏的洪水也是最长的洪水。

    使用 extend 查看计算 Duration 列以及所有其他列。 该 Duration 列将添加为最后一列。

    StormEvents
    | where State == 'TEXAS' and EventType == 'Flood'
    | top 5 by DamageProperty desc
    | extend Duration = EndTime - StartTime
    StartTime
    EndTime
    StormEvents
    | where Source == "Emergency Manager" or Source == "Utility Company"
    | project EventId, Source, FriendlyName = sourceMapping[Source]
    EpisodeId
    FriendlyName