使用 Azure 流分析进行资产跟踪

Asset Tracking with Azure Stream Analytics

我有一个事件中心和一个向 Power BI 发送数据的流分析作业。我想知道配置事件中心/资产跟踪的最佳方式是什么?

例如,我有多个客户端发送到事件中心 -> 流分析作业,我希望能够确定具有特定 ID 的客户端是否离线?

干杯!

如果ID列表比较静态,那么可以使用reference data join输出每次window中缺失的所有ID。

如果您想从流本身推断 ID,并想检测在前一个 window 中处于活动状态的 ID 何时在当前 window 中不活动,您可以使用流连接.这是一个例子

with MissingAssets as
(
select
    PreviousWindowSignal.signalTime,
    PreviousWindowSignal.AssetId
from
    AssetSignalStream PreviousWindowSignal Timestamp by signalTime
left outer join
    AssetSignalStream CurrentWindowSignal Timestamp by signalTime
 on
    PreviousWindowSignal.AssetId = CurrentWindowSignal.AssetId
    and datediff(second,PreviousWindowSignal,CurrentWindowSignal) between 1 and 300
where
    CurrentWindowSignal.AssetId is null
 )

 select
    AssetId,
    max(signalTime) MostRecentSignalInWindow 

 from 
    MissingAssets 
  group by
    AssetId,
    TumblingWindow(ss,300)