2017-12-15 12 views
0

IoT 센서는 매 10 분마다 1kHz로 1000 회 측정하고 10 개의 개별 메시지로 값을 Azure IoT 허브로 전송합니다. 나는 10 개의 분리 된 메시지를 다시 처리하기 위해 하나의 메시지로 다시 연결해야한다. RMS와 FFT를 계산합니다. 모든 열이 수신 된 후,Azure Stream Analytics로 IoT 메시지 데이터 연결

{ 
    "SampleID" : 12344, 
    "PartionIdx" : 2, 
    "NbrPartitions": 10, 
    "Values" : [12,13,14,13,12,11,10,9] 
} 

따라서 동일한 SampleID을 갖는 모든 메시지의 값 PartitionIdx 순서에 의해 함께 연결될 수해야

메시지는 다음과 같은 구조를 갖는다. 스트림 애널리틱스를 사용해 보았지만 실패했습니다.

Stream Analytics의 경우 너무 복잡한 작업입니까? 그렇다면 연결을 수행하는 웹 작업을 코딩하는 것 외에 다른 옵션이 있습니까?

+0

안녕하세요, 수집 기능 (https://msdn.microsoft.com/en-us/library/azure/mt732314.aspx)을 사용하여 필요한 시간 창에서 1의 모든 메시지를 연결할 수 있습니다. 계산을 수행하려면 사용자 정의 집계를 작성하십시오 (https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-javascript-user-defined-aggregates). 도움이 필요하면 알려주십시오. –

답변

0

은 모든 값이 도착했을 때 아는 문제

  1. 두 가지 측면이 있습니다.
  2. 함께 연결하십시오. 경우 1

, 만약 이드 항상 같은 eventhub 파티션 eventhub하기 위해와에 도착하거나 순서가 데이터가 될 수있는 방법에 대한 아이디어가 있다면, 당신은 TIMESTAMP BY OVER을 사용할 수있는 특정 장치에 대한 이벤트() 절을 사용하여 모든 장치에 대해 다른 타임 라인을 만듭니다. 이렇게하면 해당 파티션의 충분한 데이터가 수신 될 때까지 deviceId의 출력이 차단됩니다.

2는 @ js-azure와 같이 Collect()를 사용할 수 있습니다. 데이터를 레코드 배열 대신 특정 형식으로 지정하려면 javacript aggregates을 사용할 수 있습니다.