Azure ADX,在创建物化视图时使用argmax后不添加时间戳

问题描述 投票:0回答:1

当尝试使用 KQL 在 ADX 中创建物化视图时,您有一些限制,其中之一是使用汇总作为创建查询中的最后一个语句。我在多个参数上使用 argmax() 函数,并将它们放入最后一个可用的参数中(非空)值。我这样做:

table_name 
| summarize   
arg_max( parametername1 = iif(isnotempty(parametername1), ts, unixtime_nanoseconds_todatetime(0)), parametername1 = parametername1 ), 
arg_max( parametername2 = iif(isnotempty(parametername2 ), ts, unixtime_nanoseconds_todatetime(0)), parametername2 =parametername2 ),
 ... 
by origin, bin(ts,1m)
 

现在的问题是,argmax 总是返回参数和参数值的时间戳,因此是两个不同的列。但因为我已经从我的垃圾箱中获得了时间戳,所以我不需要为每个参数提供单独的时间戳。使用项目或项目离开不是一个选项,因为您不能将其用作上面提到的最后一个语句。

那么没有选择吗?

我尝试在每个聚合语句末尾选择带有 .parametername1 的特定字段,但这不起作用。我尝试使用项目,总结后不允许。

azure kql azure-data-explorer materialized-views adx
1个回答
0
投票

这不能作为物化视图语句的一部分来完成。您可以在视图上创建一个存储函数,该函数将

project-away
不必要的时间戳列,并让所有用户查询存储函数而不是直接查询视图。

© www.soinside.com 2019 - 2024. All rights reserved.