本文介绍了Stream Analytics作业具有验证错误:作业将超过事件中心接收器的最大数量.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个流分析查询,从IOT Hub访问数据,以下是查询:
I have a stream analytics query, accessing data from IOT Hub, following is the query:
WITH data AS (
SELECT * FROM IoTTelemetryStream
),
AggregationStep AS
(
SELECT
Stream.EventEnqueuedUtcTime as tumblingWindowEnd,
deviceid as DeviceId,
AVG (PanelVoltage) AS [AveragePanelVoltage],
AVG (PanelCurrent) AS [AveragePanelCurrent],
AVG (BatteryVoltage) AS [AverageBatteryVoltage],
AVG (BatteryCurrent) AS [AverageBatteryCurrent],
AVG (OutputVoltage) AS [AverageOutputVoltage],
AVG (OutputCurrent) AS [AverageOutputCurrent],
AVG(cast(PanelCurrent as float) * cast(BatteryVoltage as float) * 1.031) as [AveragePanelPower],
AVG(cast(OutputVoltage as float) * cast(OutputCurrent as float)) as [AverageOutputPower]
FROM data Stream
GROUP BY DeviceId,Stream.EventEnqueuedUtcTime, TumblingWindow(Minute, 30)
),
FillInMissingValuesStep AS
(
SELECT
TopOne() OVER (ORDER BY tumblingWindowEnd DESC) AS lastEvent
FROM AggregationStep
GROUP BY HOPPINGWINDOW(Minute, 30, 5)
),
SelectingPanelOutputPower As(
select deviceid as DeviceId,OutputCurrent,Stream.EventEnqueuedUtcTime as [Time] from data Stream
where cast(OutputCurrent as float)>10
),
AnomalyDetectionStep AS
(
SELECT
lastEvent.DeviceId,
lastEvent.tumblingWindowEnd as anomalyTime,
system.timestamp as anomalyDetectedTime,
lastEvent.AveragePanelVoltage as AveragePanelVoltage,
ANOMALYDETECTION(lastEvent.AveragePanelVoltage) OVER (LIMIT DURATION(minute, 10)) as PVScores,
lastEvent.AveragePanelCurrent as AveragePanelCurrent,
ANOMALYDETECTION(lastEvent.AveragePanelCurrent) OVER (LIMIT DURATION(minute, 10)) as PCScores,
lastEvent.AverageBatteryVoltage as AverageBatteryVoltage,
ANOMALYDETECTION(lastEvent.AverageBatteryVoltage) OVER (LIMIT DURATION(minute, 10)) as BVScores,
lastEvent.AverageBatteryCurrent as AverageBatteryCurrent,
ANOMALYDETECTION(lastEvent.AverageBatteryCurrent) OVER (LIMIT DURATION(minute, 10)) as BCScores,
lastEvent.AverageOutputVoltage as AverageOutputVoltage,
ANOMALYDETECTION(lastEvent.AverageOutputVoltage) OVER (LIMIT DURATION(minute, 10)) as OVScores,
lastEvent.AverageOutputCurrent as AverageOutputCurrent,
ANOMALYDETECTION(lastEvent.AverageOutputCurrent) OVER (LIMIT DURATION(minute, 10)) as OCScores,
lastEvent.AveragePanelPower as AveragePanelPower,
ANOMALYDETECTION(lastEvent.AveragePanelPower) OVER (LIMIT DURATION(minute, 10)) as PPScores,
lastEvent.AverageOutputPower as AverageOutputPower,
ANOMALYDETECTION(lastEvent.AverageOutputPower) OVER (LIMIT DURATION(minute, 10)) as OPScores
FROM FillInMissingValuesStep
),
OutputSet AS
(
SELECT
DeviceId,
anomalyTime,
anomalyDetectedTime,
AveragePanelVoltage,
CAST(GetRecordPropertyValue(PVScores, 'BiLevelChangeScore') as float) as [PV Bi Level Change],
AveragePanelCurrent,
CAST(GetRecordPropertyValue(PCScores, 'BiLevelChangeScore') as float) as [PC Bi Level Change],
AverageBatteryVoltage,
CAST(GetRecordPropertyValue(BVScores, 'BiLevelChangeScore') as float) as [BV Bi Level Change],
CAST(GetRecordPropertyValue(BVScores, 'SlowNegTrendScore') as float) as [BV Slow Neg Trend Score],
AverageBatteryCurrent,
CAST(GetRecordPropertyValue(BCScores, 'BiLevelChangeScore') as float) as [BC Bi Level Change],
AverageOutputVoltage,
CAST(GetRecordPropertyValue(OVScores, 'BiLevelChangeScore') as float) as [OV Bi Level Change],
AverageOutputCurrent,
CAST(GetRecordPropertyValue(OCScores, 'BiLevelChangeScore') as float) as [OC Bi Level Change],
AveragePanelPower,
CAST(GetRecordPropertyValue(PPScores, 'BiLevelChangeScore') as float) as [PP Bi Level Change],
AverageOutputPower,
CAST(GetRecordPropertyValue(OPScores, 'BiLevelChangeScore') as float) as [OP Bi Level Change]
FROM AnomalyDetectionStep
),
output AS(
SELECT
DeviceId,
'Panel Voltage Bi Level Change' as ReadingType,
OutputSet.[PV Bi Level Change] as Reading,
'3.25' as Threshold,
'Panel Voltage Bi Level Change ' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[PV Bi Level Change] IS NOT null AND OutputSet.[PV Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Panel Current Bi Level Change' as ReadingType,
OutputSet.[PV Bi Level Change] as Reading,
'3.25' as Threshold,
'Panel Current Bi Level Change ' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[PC Bi Level Change] IS NOT null AND OutputSet.[PC Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Battery Voltage Bi Level Change' as ReadingType,
OutputSet.[BV Bi Level Change] as Reading,
'3.25' as Threshold,
'Battery Voltage Bi Level Change ' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[BV Bi Level Change] IS NOT null AND OutputSet.[BV Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Battery Current Bi Level Change' as ReadingType,
OutputSet.[BC Bi Level Change] as Reading,
'3.25' as Threshold,
'Battery Current Bi Level Change ' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[BC Bi Level Change] IS NOT null AND OutputSet.[BC Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Battery Voltage Slow Neg Trend Score' as ReadingType,
OutputSet.[BV Slow Neg Trend Score] as Reading,
'3.25' as Threshold,
'Battery Voltage Slow Neg Trend Score' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[BV Slow Neg Trend Score] IS NOT null AND OutputSet.[BV Slow Neg Trend Score] > 3.25
UNION ALL
SELECT
DeviceId,
'Output Voltage Bi Level Change' as ReadingType,
OutputSet.[OV Bi Level Change] as Reading,
'3.25' as Threshold,
'Output Voltage Bi Level Change' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[OV Bi Level Change] IS NOT null AND OutputSet.[OV Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Output Current Bi Level Change' as ReadingType,
OutputSet.[OC Bi Level Change] as Reading,
'3.25' as Threshold,
'Output Current Bi Level Change' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[OC Bi Level Change] IS NOT null AND OutputSet.[OC Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Output Power Bi Level Change' as ReadingType,
OutputSet.[OP Bi Level Change] as Reading,
'3.25' as Threshold,
'Output Power Bi Level Change' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
WHERE
OutputSet.[OP Bi Level Change] IS NOT null AND OutputSet.[OP Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Panel Power Bi Level Change' as ReadingType,
OutputSet.[PP Bi Level Change] as Reading,
'3.25' as Threshold,
'Panel Power Bi Level Change' as RuleOutput,
anomalyTime AS [Time]
FROM OutputSet
--WHERE
-- OutputSet.[PP Bi Level Change] IS NOT null AND OutputSet.[PP Bi Level Change] > 3.25
UNION ALL
SELECT
DeviceId,
'Output Current' as ReadingType,
OutputCurrent as Reading,
'10' as Threshold,
'Output Current' as RuleOutput,
[Time]
FROM SelectingPanelOutputPower
)
--select * into opt from output
SELECT *
INTO DeviceRulesMonitoring
FROM output
SELECT *
INTO DeviceRulesHub
FROM output
在测试时会给出正确的结果.但是当我启动Stream Analytics时,它显示错误"Stream Analytics作业具有验证错误:该作业将超过Event Hub接收器的最大数量."
While testing it is giving proper results. But when i starts the Stream Analytics, it is showing the error "Stream Analytics job has validation errors: Job will exceed the maximum amount of Event Hub Receivers."
推荐答案
这篇关于Stream Analytics作业具有验证错误:作业将超过事件中心接收器的最大数量.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!