Kusto中如何直接索引extract_all()返回的字符串数组的数组?
Kusto extract_all() 结果索引的最优方案
核心结论
直接使用多维索引(如 match[0][0]、match[0][1])就是处理 extract_all() 返回的数组数组最简洁、最优的方案,完全不需要 mvexpand 或临时列。
细节说明
- 类型本质:
extract_all()返回的是dynamic类型的数组数组,Kusto 原生支持对这种类型直接进行多维索引操作,不需要额外的parse_json()转换(除非你处理的是字符串形式的数组文本,但extract_all()的返回值本身就是动态类型)。 - UI 语法错误的原因:Kusto.Explorer 的语法检查器存在假阳性局限,会误判合法的多维索引表达式,但实际执行时引擎是完全支持并能正确返回结果的,这个报错可以忽略。
示例查询
datatable(input_str:string) [ "id:123 name:Alice", "id:456 name:Bob" ] | extend matches = extract_all(@"(\w+):(\w+|\d+)", input_str) | extend first_field = matches[0][0], first_value = matches[0][1]
上述查询中,matches[0][0] 直接提取第一组匹配的字段名,matches[0][1] 提取对应值,无需额外转换或展开操作。
内容的提问来源于stack exchange,提问作者redgiant
相关产品推荐
相关产品推荐

