如何使用Kusto KQL移除动态数组中的连续重复项?
移除KQL动态数组中的连续重复项
要把动态数组里的连续重复项去掉(比如把[x,y,z,z,z]转成[x,y,z]),可以通过KQL的mv-apply结合scan操作实现,以下是适配你现有查询的改造方案:
| project ClusterName, NodeName, UserName, LoadError | summarize LoadErrorSequence = make_list(LoadError) by ClusterName, NodeName, UserName // 核心:移除连续重复项 | mv-apply LoadErrorSequence on ( scan declare(prev_error: string) with ( // 初始化第一个元素 step s1: prev_error == "" => prev_error = LoadErrorSequence, output LoadErrorSequence; // 仅保留与前一个元素不同的项 step s2: prev_error != LoadErrorSequence => prev_error = LoadErrorSequence, output LoadErrorSequence; ) | summarize DedupedSequence = make_list(LoadErrorSequence) ) | extend LoadErrorSequenceJson = dynamic_to_json(DedupedSequence) | summarize count() by LoadErrorSequenceJson
关键逻辑说明
mv-apply:把每个分组的LoadErrorSequence数组拆成单行元素,方便逐个处理scan:遍历元素时记录前一个保留的元素,只输出与前一个不同的元素,从而过滤掉连续重复项- 最后用
make_list重新组装出去重后的数组,再继续你原来的转JSON和统计操作
内容的提问来源于stack exchange,提问作者Node.JS
相关产品推荐
相关产品推荐

