🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install microsoft/azure-skills/azure-kusto

💡 提示:需要 Node.js 和 NPM

Azure 数据资源管理器 (Kusto) 查询与分析

执行 KQL 查询并管理 Azure 数据资源管理器资源,用于对日志、遥测和时间序列数据进行快速、可扩展的大数据分析。

技能激活触发条件

当用户请求执行以下操作时,立即使用此技能:

  • “查询我的 Kusto 数据库中的 [数据模式]”
  • “显示我过去一小时来自 Azure 数据资源管理器的事件”
  • “分析我的 ADX 集群中的日志”
  • “在 [数据库] 上运行 KQL 查询”
  • “我的 Kusto 数据库中有哪些表?”
  • “显示 [表] 的架构”
  • “列出我的 Azure 数据资源管理器集群”
  • “按 [维度] 聚合遥测数据”
  • “从我的日志创建时间序列图表”

关键指标:

  • 提及“Kusto”、“Azure 数据资源管理器”、“ADX”或“KQL”
  • 日志分析或遥测分析请求
  • 时间序列数据探索
  • 物联网数据分析查询
  • SIEM 或安全分析任务
  • 对大数据集的数据聚合请求
  • 性能监控或 APM 查询

概述

此技能支持查询和管理 Azure 数据资源管理器 (Kusto),这是一种快速且高度可扩展的数据探索服务,专为日志和遥测数据优化。Azure 数据资源管理器使用 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

用于:事件计数、分布分析、Top-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:架构发现

在查询前探索表结构。

工具kusto_table_schema_get

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

关键数据字段

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

  • Timestamp:事件时间 (datetime) – 使用 ago()between()bin() 进行时间过滤
  • EventType/Category:用于分组的分类字段
  • CorrelationId/SessionId:用于跟踪相关事件
  • Severity/Level:用于按重要性过滤
  • Dimensions:用于分组和过滤的自定义属性

结果格式

查询结果包括:

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

KQL 最佳实践

🟢 性能优化:

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

🔵 查询模式:

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

🟡 常用函数:

  • ago(时间跨度):相对时间(ago(1h), ago(7d))
  • between(开始 .. 结束):范围过滤
  • startswith()contains()matches regex:字符串过滤
  • parseextract:从字符串中提取值
  • percentiles()avg()sum()max()min():聚合

最佳实践

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

使用的 MCP 工具

工具 用途
kusto_cluster_list 列出订阅中的所有 Azure 数据资源管理器集群
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 <资源组名>
列出数据库 az kusto database list --cluster-name <集群名> --resource-group <资源组名>
显示集群 az kusto cluster show --name <集群名> --resource-group <资源组名>
显示数据库 az kusto database show --cluster-name <集群名> --database-name <数据库名> --resource-group <资源组名>

通过 Azure CLI 执行 KQL 查询

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

az rest --method post \
  --url "https://<集群名>.<区域>.kusto.windows.net/v1/rest/query" \
  --body "{ \"db\": \"<数据库名>\", \"csl\": \"<kql查询>\" }"

何时使用备用方案

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

  • MCP 工具返回超时错误(查询 > 60 秒)
  • MCP 工具返回“服务不可用”或连接错误
  • 使用 MCP 工具时身份验证失败
  • 当已知数据库中有数据时,返回空响应

常见问题

  • 访问被拒绝:验证数据库权限(查询至少需要“查看者”角色)
  • 查询超时:使用时间过滤器优化查询、减少结果集或增加超时时间
  • 语法错误:验证 KQL 语法 – 常见问题:缺少管道符、错误的运算符
  • 结果为空:检查时间范围过滤器(可能限制过严),验证表名
  • 集群未找到:检查集群名称格式(排除 “.kusto.windows.net” 后缀)
  • CPU 使用率高:查询范围太广 – 添加过滤器、缩小时间范围、限制聚合
  • 引入延迟:根据引入方法,流数据可能有 1-30 秒的延迟

用例

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

📄 原始文档

完整文档(英文):

https://skills.sh/microsoft/azure-skills/azure-kusto

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。