Stream Analytics Windowing에 문제가 있습니다. 스트림 분석 작업에 대한 입력은 신호에 속하는 센서/엔티티의 온도 판독 값이 포함 된 이벤트 스트림입니다. 모든 신호에는 약 600 개의 요소가 있습니다. 샘플 이벤트는 다음과 같습니다.Azure Stream Analytics Windowing
{
"SignalId": "1",
"EntityId": "1",
"Temperature": 78
}
스트림 분석은 이와 비슷한 모양의 참조 데이터 blob에서 각 항목에 대한 임계 값을 읽습니다.
[{
"SignalId": "1",
"Entities": [{
"Id": 1,
"Threshold": 60
}, {
"Id": 2,
"Threshold": 108
}, {
"Id": 3,
"Threshold": 106
}]
}, {
"SignalId": "2",
"Entities": [{
"Id": 1,
"Threshold": 65
}, {
"Id": 2,
"Threshold": 120
}, {
"Id": 3,
"Threshold": 107
}]
}]
나는 이벤트를 필터링 및 온도 값이 각각의 임계 값보다 큰 경우 푸른 SQL 데이터베이스로의 "알람"을 삽입 할 스트림 분석 쿼리를 작성했습니다.
SELECT
e.SignalId AS SignalId,
e.EntityId AS EntityId,
e.Temperature AS AttrValue,
entities.ArrayValue.Threshold AS Threshold,
SYSTEM.TIMESTAMP AS EventTimestamp
INTO
output
FROM
eventhub e
JOIN
referenceblob b
ON
e.SignalId = b.SignalId
CROSS APPLY
GetElements(b.Entities) entities
WHERE
e.EntityId = entities.ArrayValue.Id
AND
e.Temperature > entities.ArrayValue.Threshold
지금 내가 필요한 것은 슬라이딩 윈도우 (Sliding Window)를 설치하는 것입니다. 엔티티의 온도 값이 1 시간 동안 연속적으로 해당 임계 값을 넘으면 "경보"만 작성하려고합니다. 삽입 된 행에는 창에 마지막 이벤트와 관련된 데이터가 있어야합니다.
저는 Stream Analytics와 T-SQL을 처음 접했고 솔직히 윈도우 잉 기능이 어떻게 작동하는지 정확히 이해하지 못했습니다. 여기 내 질문은 ...
내가 (온도가 임계 값보다 큰 경우) 30 분 동안 지속적으로 나쁜 이벤트를 얻을하고 좋은 이벤트를 얻을 경우, 새 창이 그러한 쿼리를 작성할 수 있습니다 다음 나쁜 사건부터 시작 되니?
창에서 마지막 이벤트에 대한 데이터를 선택할 수 있습니까? 나는 LAST() 및 LAG()를 사용하여 시도했지만 "집계 함수없이 GROUP BY를 사용할 수 없다"는 컴파일 오류가 발생했습니다. 문제는 내가 마지막 이벤트 값만 Aggregate 함수가 필요 없다는 것입니다.
나는이 문제에 며칠 동안 붙어 있었고 어떤 도움을 주시면 대단히 감사하겠습니다.
또한,이 내 첫 번째 질문은 그래서 당신은 슬라이딩 윈도우와이를 구현 할 수 있습니다 내 noobishness