使用KQL识别ADX表中JSON消息内FilingEntities数组单元素记录
解决方案
你不需要用mv-expand展开数组,直接通过array_length()函数获取FilingEntities数组的长度,再筛选长度为1的记录即可,完整查询如下:
EventReceivedRaw | extend DynamicJson = todynamic(JSONRaw) // 计算FilingEntities数组的长度,同时处理数组不存在的情况(默认设为0) | extend FilingEntitiesCount = array_length(DynamicJson.FilingEntities, 0) // 筛选数组长度恰好为1的记录 | where FilingEntitiesCount == 1 | project UniqueEventGuid, TimeStampInCST, DynamicJson, JSONRaw
关键说明:
array_length()函数用于获取动态数组的元素个数,第二个参数是数组不存在时的默认返回值(避免因字段缺失导致查询报错)- 不需要
mv-expand是因为我们不需要展开数组元素,只需要判断数组的整体长度
内容的提问来源于stack exchange,提问作者Frank Kearney
相关产品推荐
相关产品推荐

