2016-10-14 3 views
0

Stream Analytics 작업에 문제가 있습니다. IoT 허브에서 이벤트를 가져 와서 사용자 정의 타임 스탬프에 따라 타임 윈도우에서 그룹화합니다. 이 작업을 올바르게 수행하는 쿼리를 작성했습니다. 하지만 문제점은 내 출력 테이블 (내 저장소 계정의 NoSQL 테이블)에 아무 것도 쓰지 않는 것입니다.스트림 분석 작동하지만 테이블에 대한 출력이 없습니다

쿼리는 쿼리 편집기에서 (샘플 입력 파일로 테스트 할 때) 문제없이 실행되고 올바른 출력을 생성하지만 'for real'을 실행하면 아무 것도 출력하지 않습니다. 출력 테이블은 비어 있습니다. 심지어 테이블 이름 바꾸기 및 blob 저장소로 출력 시도했지만 주사위 없음. 다음 쿼리는 다음과 같습니다

SELECT 
    'general' AS partitionKey, 
    MIN(ID_frame) AS rowKey, 
    DATEADD(second, 1, DATEADD(hour, -3, System.TimeStamp)) AS window_start, 
    System.TimeStamp AS window_end, 
    COUNT(ID_frame) AS device_count 
INTO 
    [IoT-Hub-output-table] 
FROM 
    [IoT-Hub-input] TIMESTAMP BY custom_timestamp 
GROUP BY TumblingWindow(Duration(hour, 3), Offset(second, -1)) 

흥미로운 부분은 내 쿼리의 모든 윈도우를 생략하면, 다음의 표 출력이 잘 작동한다는 것입니다. 나는 며칠 동안 이것에 대해 벽에 머리를 때렸다. 그래서 나는 이미 명백한 것들 대부분을 시도했다고 생각한다.

답변

1

은 내 테이블에 출력을 표시했으나 예상하지 못한 지연이있었습니다. 나는 최대 20-30 분을 기다리고 있었다. 첫 번째 삽입은 30 분이 조금 지나면 시작됩니다. 따라서 출력이 생성되기 전에 애널리틱스 작업을 취소하고 잘못된 결과 만 출력한다고 가정합니다.

나는 이것이 때로는 (작업이 충분히 오래 실행되었을 때) 약간의 출력이있는 것으로 나타났습니다. 그리고 그 출력 레코드에서 나는 사용자 정의 타임 스탬프 필드와 일반 타임 스탬프 필드 (엔티티가 마지막으로 업데이트되었을 때 엔진이 기억하는 데 사용하는) 사이에 큰 지연이 있음을 확인했습니다.

1

TumblingWindow를 3 시간으로 사용하면 3 시간마다 한 번 출력되고 그 기간 내에 모든 이벤트가 집계됩니다.

그래서 첫 번째 출력이 생성되기까지 이미 3 시간을 기다렸습니까?

나는 창을 더 작게 설정하고 결과가 올바르게 작동하는지 다시 확인하려고합니다.

+0

그런 다음 테스트 할 때 즉각적인 결과를 얻는 이유는 무엇입니까? 쿼리 편집기에서? BTW, 처음에는 더 작은 윈도우 (5 ~ 30 초 같은)로이 쿼리를 테스트했지만 더 큰 창 버전과 마찬가지로 쿼리 테스터에서 올바른 결과를 얻었지만 한 번 테이블에 아무 것도 쓰지 않았습니다. 진정으로 달리다 – Giorgi

관련 문제