最後の関数を使用して、受信した最新のレコードを識別するフラグを作成しています (これにより、Power BI で最新の値のみをダッシュボードに表示できます)。
SELECT
events.deviceId
,events.[timestamp]
,events.externaltemp
,LAST(events.[timestamp]) OVER (PARTITION BY events.DeviceId LIMIT DURATION(day, 1) ) as latest
,case when LAST(events.[timestamp]) OVER (PARTITION BY events.DeviceId LIMIT DURATION(day, 1) ) = [timestamp] then 1 else 0 end as LastestFlag
INTO
[powerBI]
FROM
[EventHub] as events timestamp by [timestamp]
ただし、最後の関数が常にタイムスタンプと同じ日時を返すことがわかっているため、クエリ内のすべての行は、受信した最後の行のように見えます。私のデータには毎秒の記録があります。
(別の方法として、row_number 関数を使用して、最新のレコードを特定するためにフィルター処理するものを提供したいと考えていましたが、これはストリーム分析にはまだ存在していないようです)