You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana中Azure Data Explorer数据源与静态源的数值映射

数字列映射为文本的实现方案

这里有几种可行的方式,根据你的映射维护需求和技术场景选择:

1. 在KQL查询中直接嵌入静态映射(最便捷)

如果映射关系固定且不需要单独维护,直接在Kusto查询里用字典映射是最快的方式:

// 定义静态映射字典
let itemMapping = dynamic({
    "7000": "Apple",
    "7001": "Banana",
    "7002": "Orange"
});
// 原查询关联映射
YourADXTable
| project 
    ItemId,
    // 将数字转字符串后匹配字典键,未匹配则显示"Unknown"
    ItemName = coalesce(itemMapping[tostring(ItemId)], "Unknown"),
    OtherColumnsYouNeed

2. 用Grafana的可视化层值映射

不想修改KQL的话,直接在Grafana面板里配置值映射:

  • 编辑面板,切换到字段选项标签页
  • 找到目标数字字段,点击值映射按钮
  • 选择添加映射,手动输入键值对(如7000→Apple),或者点击导入粘贴你的JSON映射内容(格式:{"7000":"Apple", "7001":"Banana"})
  • 保存配置后,面板会自动替换数字为对应文本

3. 加载外部静态JSON文件(映射需单独维护)

如果映射关系存在外部静态JSON文件(比如放在内部静态服务上),用KQL的externaldata函数加载:

// 加载外部JSON映射
let itemMapping = externaldata(ItemId:string, ItemName:string)
[h'http://your-static-host/mappings.json']
with(format = "json");
// 关联原表数据
YourADXTable
| lookup itemMapping on $left.ItemId == $right.ItemId
| project ItemId, ItemName, OtherColumnsYouNeed

外部JSON格式要求:

[{"ItemId": "7000", "ItemName": "Apple"}, {"ItemId": "7001", "ItemName": "Banana"}]

注意:ADX集群需要能访问该JSON文件的地址。

4. 调用外部API获取映射(动态更新场景)

如果映射来自API接口,用KQL的external_http函数调用并解析:

// 调用API获取映射数据
let apiResult = external_http(
    request_uri = "http://your-api-host/item-mappings",
    request_headers = dynamic({"Content-Type": "application/json"})
);
// 解析API返回的JSON为映射表
let itemMapping = apiResult.ResponseBody
| parse_json
| mv-expand mappings = ResponseBody // 根据API返回结构调整
| project ItemId = tostring(mappings.ItemId), ItemName = mappings.ItemName;
// 关联原表数据
YourADXTable
| lookup itemMapping on $left.ItemId == $right.ItemId
| project ItemId, ItemName, OtherColumnsYouNeed

注意:需要确保ADX集群有调用外部API的权限,且API返回的JSON结构能被正确解析。

内容的提问来源于stack exchange,提问作者ADUCJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:22:45