返回技能市场
数据分析 安全 需要 API Key

azure-kusto

@admin/azure-kusto

Query and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection.

admin 热度 276v0.0.1

Azure Data Explorer(Kusto)查询与分析

执行 KQL 查询并管理 Azure Data Explorer 资源,以便针对日志、遥测和时间序列数据开展快速且可扩展的大数据分析。

Skill 激活触发条件

当用户提出以下要求时,立即使用此 skill:

  • "查询我的 Kusto 数据库中符合 [数据模式] 的数据"
  • "显示 Azure Data Explorer 中过去一小时内的事件"
  • "分析我的 ADX 集群中的日志"
  • "在 [数据库] 中运行 KQL 查询"
  • "我的 Kusto 数据库中有哪些表?"
  • "显示 [表] 的架构"
  • "列出我的 Azure Data Explorer 集群"
  • "按 [维度] 聚合遥测数据"
  • "基于我的日志创建时间序列图表"

关键指标:

  • 提及 "Kusto"、"Azure Data Explorer"、"ADX" 或 "KQL"
  • 日志分析或遥测分析请求
  • 时间序列数据探索
  • IoT 数据分析查询
  • SIEM 或安全分析任务
  • 针对大型数据集的数据聚合请求
  • 性能监控或 APM 查询

概述

此 skill 支持查询和管理 Azure Data Explorer(Kusto)。这是一项针对日志和遥测数据进行优化的快速、高度可扩展的数据探索服务。Azure Data Explorer 使用 Kusto 查询语言(KQL),可对数十亿条记录实现亚秒级查询性能。

核心能力:

  • 查询执行:针对海量数据集运行 KQL 查询
  • 架构探索:发现表、列和数据类型
  • 资源管理:列出集群和数据库
  • 分析:聚合、时间序列、异常检测、机器学习

核心工作流

  1. 发现资源:列出订阅中可用的集群和数据库
  2. 探索架构:检索表结构以了解数据模型
  3. 查询数据:执行 KQL 查询以进行分析、筛选和聚合
  4. 分析结果:处理查询输出,以获得洞察并生成报告

查询模式

模式 1:基础数据检索

使用简单筛选从表中获取最近的记录。

KQL 示例

Events
| where Timestamp > ago(1h)
| take 100

适用于:快速数据检查、最近事件检索

模式 2:聚合分析

按维度汇总数据,以获得洞察并生成报告。

KQL 示例

Events
| summarize count() by EventType, bin(Timestamp, 1h)
| order by count_ desc

适用于:事件计数、分布分析、前 N 项查询

模式 3:时间序列分析

分析不同时间窗口内的数据,以识别趋势和模式。

KQL 示例

Telemetry
| where Timestamp > ago(24h)
| summarize avg(ResponseTime), percentiles(ResponseTime, 50, 95, 99) by bin(Timestamp, 5m)
| render timechart

适用于:性能监控、趋势分析、异常检测

模式 4:联接与关联

合并多个表以进行跨数据集分析。

KQL 示例

Events
| where EventType == "Error"
| join kind=inner (
    Logs
    | where Severity == "Critical"
) on CorrelationId
| project Timestamp, EventType, LogMessage, Severity

适用于:根因分析、关联事件跟踪

模式 5:架构发现

在查询前探索表结构。

Tools: kusto_table_schema_get

适用于:了解数据模型、规划查询

关键数据字段

执行查询时,常见字段模式如下:

  • 时间戳:事件时间(日期时间)- 使用 ago()between()bin() 进行时间筛选
  • EventType/Category:用于分组的分类字段
  • CorrelationId/SessionId:用于跟踪相关事件
  • Severity/Level:用于按重要性筛选
  • Dimensions:用于分组和筛选的自定义属性

结果格式

查询结果包括:

  • :字段名称和数据类型
  • :与查询匹配的数据记录
  • 统计信息:行数、执行时间、资源利用率
  • 可视化:图表渲染提示(时间图、条形图等)

KQL 最佳实践

🟢 性能优化:

  • 尽早筛选:在联接和聚合之前使用 where
  • 限制结果大小:使用 takelimit 减少数据传输
  • 时间筛选:对于时序数据,始终按时间范围进行筛选
  • 索引列:优先筛选索引列

🔵 查询模式:

  • 使用 summarize 进行聚合,而不是单独使用 count()
  • 使用 bin() 对时序数据进行时间分桶
  • 使用 project 仅选择所需列
  • 使用 extend 添加计算字段

🟡 常用函数:

  • ago(timespan):相对时间(ago(1h)、ago(7d))
  • between(start .. end):范围筛选
  • startswith()contains()matches regex:字符串筛选
  • parseextract:从字符串中提取值
  • percentiles(), avg(), sum(), max(), min(): Aggregations

最佳实践

  • 始终包含时间范围筛选条件,以优化查询性能
  • 对探索性查询使用 takelimit,以避免产生大型结果集
  • 使用 summarize 进行聚合,而不是在客户端处理
  • 将常用查询作为函数存储在数据库中
  • 使用物化视图处理重复聚合
  • 监控查询性能和资源消耗
  • 应用数据保留策略以管理存储成本
  • 使用流式引入进行实时分析(延迟低于 1 秒)
  • 与 Azure Monitor 集成以获取运维洞察

使用的 MCP 工具

| 工具 | 用途 | |------|---------| | kusto_cluster_list | 列出订阅中的所有 Azure Data Explorer 群集 | | kusto_database_list | 列出指定 Kusto 群集中的所有数据库 | | kusto_query | 对 Kusto 数据库执行 KQL 查询 | | kusto_table_schema_get | 获取指定表的架构信息 |

必填参数

  • subscription:Azure 订阅 ID 或显示名称
  • cluster:Kusto 群集名称(例如,"mycluster")
  • database:数据库名称
  • query:KQL 查询字符串(用于查询操作)
  • table:表名(用于架构操作)

可选参数

  • resource-group:资源组名称(用于列出操作)
  • tenant:Azure AD 租户 ID

回退策略:Azure CLI 命令

如果 Azure MCP Kusto 工具失败、超时或不可用,则使用 Azure CLI 命令作为回退方案。

CLI 命令参考

| 操作 | Azure CLI 命令 | |-----------|-------------------| | 列出群集 | az kusto cluster list --resource-group <rg-name> | | 列出数据库 | az kusto database list --cluster-name <cluster> --resource-group <rg-name> | | 显示群集 | az kusto cluster show --name <cluster> --resource-group <rg-name> | | 显示数据库 | az kusto database show --cluster-name <cluster> --database-name <db> --resource-group <rg-name> |

通过 Azure CLI 执行 KQL 查询

对于查询,请使用 Kusto REST API 或直接使用群集 URL:

az rest --method post \
  --url "https://<cluster>.<region>.kusto.windows.net/v1/rest/query" \
  --body "{ \"db\": \"<database>\", \"csl\": \"<kql-query>\" }"

何时回退

在以下情况下切换到 Azure CLI:

  • MCP 工具返回超时错误(查询时间 > 60 秒)
  • MCP 工具返回 "service unavailable" 或连接错误
  • 使用 MCP 工具时身份验证失败
  • 已知数据库中有数据,但响应为空

常见问题

  • 访问被拒绝:验证数据库权限(查询至少需要查看者角色)
  • 查询超时:使用时间筛选条件优化查询、缩小结果集或延长超时时间
  • 语法错误:验证 KQL 语法——常见问题:缺少管道符、运算符不正确
  • 结果为空:检查时间范围筛选条件(可能过于严格),并验证表名
  • 未找到群集:检查群集名称格式(不含 ".kusto.windows.net" 后缀)
  • CPU 使用率过高:查询范围过大——添加筛选条件、缩短时间范围并限制聚合操作
  • 摄取延迟:流式数据可能会有 1-30 秒的延迟,具体取决于摄取方式

用例

  • 日志分析:应用日志、系统日志、审计日志
  • IoT 分析:传感器数据、设备遥测数据、实时监控
  • 安全分析:SIEM 数据、威胁检测、安全事件关联
  • APM:应用性能指标、用户行为、错误跟踪
  • 商业智能:点击流分析、用户分析、运营 KPI
qianwen skills install @admin/azure-kusto