如何在KQL中拆分聚合列allVM为前100个与剩余元素的两个列表?
拆分Kusto聚合列表为前100项与剩余项的实现方案
可以通过在原查询的summarize阶段后添加extend语句,结合Kusto的数组操作函数来实现需求。以下是修改后的完整查询:
Table | where type == "TYPE" | summarize lastEventTime = arg_max(lastEvent, *), vmCount = count(), onboardedCount = countif(onboarded), failVM = make_list_if(entity, onboarded == false and isnotempty(entity)), allVM = make_set(entity) by environmentType, osType, id , type | extend allVM1 = take(allVM, 100), allVM2 = iif(array_length(allVM) > 100, skip(allVM, 100), dynamic([]))
关键逻辑说明:
take(allVM, 100):直接提取allVM数组的前100个元素,如果数组元素总数不足100,会返回全部现有元素。iif(array_length(allVM) > 100, skip(allVM, 100), dynamic([])):先判断allVM的元素数量是否超过100:- 超过时,用
skip(allVM, 100)跳过前100个元素,返回剩余部分; - 未超过时,返回空动态数组
dynamic([])。
- 超过时,用
内容的提问来源于stack exchange,提问作者Sukhmeet Singh
相关产品推荐
相关产品推荐

