是否有KQL查询来限制我在特定类别中获得的子结果的数量



我正在尝试生成一个查询,在这个查询中,我限制了每个特定类别得到的子结果的数量,如果有一个好的函数可以帮助我。

快速示例:

|     ID    |     Category    |     Value    |     A bunch of other important columns    |  
|-----------|-----------------|--------------|-------------------------------------------|
|     1     |     A           |     GUID     |                                           |   
|     2     |     A           |     GUID     |                                           |   
|     3     |     A           |     GUID     |                                           |   
|     4     |     A           |     GUID     |                                           |   
|     5     |     B           |     GUID     |                                           |   
|     6     |     B           |     GUID     |                                           |   

我希望每个类别只返回N个GUID。(主要是因为我已经达到了某些类别的64MB Kusto查询限制,这些类别无论如何都不会有用(

Top嵌套运算符一开始看起来不错,但我不想做任何聚合,它会过滤掉其他重要的列。根据页面上的注释,我可以使用Ignore=max(1(来删除聚合,然后将我的所有其他列序列化为某个值,然后在过滤器之后解压缩。但那感觉就像我做错了什么。

我也尝试过类似的东西:

| partition by Category ( top 3 by Value)

但它被限制为64个分区,我需要接近500个分区。

有什么好的模式吗?

开始:

let NumItemsPerCategory = 3;
datatable(ID:long, Category:string, Value:guid)
[
1, "A", guid(40b73f8f-78d2-4eae-bd5b-b3e00f38ac33), 
2, "A", guid(043ee507-aadf-4453-bcc6-d8f4f541b043), 
3, "A", guid(f71d3cc0-ce46-474f-9dcd-f3883fa08859), 
4, "A", guid(bf259fc8-e9fe-4a99-a296-ca81e1fa250a), 
5, "B", guid(d8ee3ac7-da76-4e87-a9ed-e5a37c943ad2), 
6, "B", guid(282e74ff-3b71-407c-a2a7-92bb1cb17b27), 
]
| summarize PackedItems = make_list(pack_all(), NumItemsPerCategory) by Category
| project-away Category
| mv-expand PackedItem = PackedItems
| evaluate bag_unpack(PackedItem)
| project-away PackedItems

结果:

| ID | Category | Value                                |
|----|----------|--------------------------------------|
| 1  | A        | 40b73f8f-78d2-4eae-bd5b-b3e00f38ac33 |
| 2  | A        | 043ee507-aadf-4453-bcc6-d8f4f541b043 |
| 3  | A        | f71d3cc0-ce46-474f-9dcd-f3883fa08859 |
| 5  | B        | d8ee3ac7-da76-4e87-a9ed-e5a37c943ad2 |
| 6  | B        | 282e74ff-3b71-407c-a2a7-92bb1cb17b27 |

最新更新