如何在 Kusto 表中获取持续时间(假设 1 分钟)的最新值



我想从Kusto表中查找特定持续时间(在我的情况下为1分钟(的列的最新值。我在PostgreSQL表中有时间序列数据,我正在使用last()函数(https://docs.timescale.com/api/latest/hyperfunctions/last/)为了找到PostgreSQL的1 minute time bucketscaled_value的最新值,我想在Kusto表中使用相同的函数来获得scaled_value的最新数值。与Postgresql中的last()函数相对应,Kusto中使用的正确函数是什么

我在PostgreSQL中使用的代码:

SELECT CAST(EXTRACT(EPOCH FROM time_bucket('1 minutes', timestamp) AT TIME ZONE 'UTC') * 1000 AS BIGINT) as timestamp_epoch,
vessel_telemetry.timeSeries, 
last(vessel_telemetry.scaled_value, vessel_telemetry.timestamp) as scaled_value, 
FROM shipping.vessel_telemetry 
WHERE vessel_telemetry.ingested_timestamp >= '2022-07-20T10:10:58.71Z' AND vessel_telemetry.ingested_timestamp < '2022-07-20T10:15:33.703985Z' 
GROUP BY time_bucket('1 minutes', vessel_telemetry.timestamp), vessel_telemetry.vessel_timeSeries

我在ADX中使用的相应代码

VesselTelemetry_DS 
| where ingested_timestamp >= datetime(2022-07-20T10:10:58.71Z) and ingested_timestamp < datetime(2022-07-20T10:15:33.703985Z) 
| summarize max_scaled_value = max(scaled_value) by bin(timestamp, 1m), timeSeries 
| project timestamp_epoch =(datetime_diff('second', timestamp, datetime(1970-01-01)))*1000, timeSeries, max_scaled_value

我使用PostgreSQL得到的数据与我从ADXQuery得到的数据不匹配。我认为Postgre的last()函数的功能与ADX的max()函数不同。ADX中有什么函数可以用来执行与PSQL 的last()相同的功能吗

arg_max((

arg_max (ExprToMaximize, * | ExprToReturn [, ...])

请注意参数的顺序,它与Timescale的last((相反-
首先是要最大化的表达式(在您的情况下为timestamp(,然后是要返回的表达式(如果您的情况为scaled_value(

最新更新