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

如何在Grafana中使用KQL提取子串特定内容生成对应列

KQL 按标识提取长字符串内指定片段生成独立列实现方案

核心使用KQL内置的extract()正则提取函数实现,无需逐位切割字符串,可直接忽略所有冗余内容匹配目标值,适配Azure导入数据表的场景。

匹配逻辑说明

原始字符串遵循「目标数字被单引号包裹 + 任意长度冗余内容 + 固定标识短语被单引号包裹」的结构,针对parent、successor两个标识分别写正则规则即可:

  • 提取parent对应值:匹配单引号包裹的连续数字,跳过后续任意非单引号的冗余字符,直到匹配到'parent'标识,捕获该数字即为目标值
  • 提取successor对应值:逻辑同上,将匹配的终点标识替换为'successor'即可

可直接复用的代码

假设存储原始超长字符串的列名为RawContent,替换为实际的表名、原始列名即可使用:

// 替换为从Azure导入的实际表名
YourImportedAzureTable
| extend
    // 提取parent列,转成数值类型,不需要数值格式可去掉外层tolong()
    parent = tolong(extract(@"'([0-9]+)'[^']*'parent'", 1, RawContent)),
    // 提取successor列
    successor = tolong(extract(@"'([0-9]+)'[^']*'successor'", 1, RawContent))
// 仅保留需要的两列输出,和预期表结构一致
| project parent, successor

代码参数说明

  • @前缀:标记KQL原义字符串,避免正则特殊字符重复转义,降低写错概率
  • extract()第二个参数1:表示取正则中第一个英文括号包裹的捕获分组内容,也就是需要的纯数字片段
  • [^']*:匹配任意长度的非单引号字符,刚好对应两个单引号片段之间的所有冗余内容,不管冗余内容是符号、字母、空格都能跳过

适配调整提示

如果实际数据里数字和标识的顺序反过来(即标识在前、目标数字在后),只需要把正则调整为'parent'[^']*'([0-9]+)'格式即可,逻辑为:先匹配固定标识,跳过中间冗余内容,捕获后面单引号包裹的数字。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:54:22