我有一个Stream作业,它使用参考数据和从IOT Hub检索的设备数据。代码如下;
WITH AggregatedValues AS
(
SELECT
iot1.DeviceId,
iot1.SensorId,
MAX(CAST(iot1.Timestamp AS DateTime)) AS [DateTime],
CASE WHEN ch1.IsActive = 1 AND ch1.AggregateType = 1
THEN SUM(iot1.SensorValue)
WHEN ch1.IsActive = 1 AND ch1.AggregateType = 3
THEN MAX(iot1.SensorValue)
WHEN ch1.IsActive = 1 AND ch1.AggregateType = 4
THEN MIN(iot1.SensorValue)
ELSE AVG(iot1.SensorValue)
END [AggValue]
FROM
MecfabIoTHub iot1
JOIN DeviceRef1 ch1
ON iot1.DeviceId = ch1.DeviceId AND iot1.SensorId = ch1.SensorId
GROUP BY iot1.DeviceId, iot1.SensorId,ch1.IsActive, ch1.AggregateType, TumblingWindow(minute,5)
)
SELECT
ch2.DeviceName,
ch2.SensorType,
ch2.SensorName,
ch2.TriggerVal,
ch2.TriggerState,
ch2.AggregateType,
ch2.IsActive,
AggregatedValues.[AggValue],
CASE WHEN ch2.IsActive = 1 AND ch2.TriggerState = 1 AND AggregatedValues.AggValue >= ch2.TriggerVal
THEN ch2.AlertDesc
WHEN ch2.IsActive = 1 AND ch2.TriggerState = 2 AND AggregatedValues.AggValue <= ch2.TriggerVal
THEN ch2.AlertDesc
ELSE NULL
END AS Alert
INTO
BLOBSensorData
FROM
AggregatedValues
JOIN DeviceRef1 ch2
ON ch2.DeviceId = AggregatedValues.DeviceId AND ch2.SensorId = AggregatedValues.SensorId
我对参考数据没有任何问题,并且所有字段都已按预期检查(DeviceId从参考数据到设备数据等相同)。输出我只是放在blob中进行测试。不知道发生了什么,但没有生成输出。所有输入和输出都经过测试。
我还使用设备资源管理器检查了来自IOTHub的数据,并且IOT中心肯定收到了事件。
有什么想法吗?
答案 0 :(得分:0)
您是否检查过您在查询中输出的名称是否正确,例如INTO BLOBSensorData
?
之前我遇到过这个问题,因为我的查询中的输出名称不正确。
答案 1 :(得分:0)
您是否按照流分析工作中的“诊断和解决问题”中所述测试了您的查询?也许连接不起作用。
问候,
菲利普