시간 기울이기 정책(Azure Stream Analytics)

Stream Analytics에서 모든 데이터 스트림 이벤트에는 연결된 타임스탬프 가 있습니다. 사용자는 TIMESTAMP BY 키워드(keyword) 사용하여 다음 두 가지 시간 중 하나를 선택할 수 있습니다.

  • 애플리케이션 시간 즉, 이벤트가 생성되는 시간을 말합니다(이벤트를 생성하는 애플리케이션/디바이스로 표시됨). 애플리케이션 시간을 사용하는 경우 전역 타임라인 사용하여 모든 이벤트를 처리하거나 하위 스트림을 사용하여 자체 타임라인 사용하여 각 디바이스/파티션을 분석할 수 있습니다.
  • 도착 시간, 이벤트가 클라우드에 도달한 시간(예: IoT Hub 또는 Event Hub의 도착 시간).

타임스탬프를 선택하는 것 외에도 사용자는 다음 문제로 인해 지연 도착 및 주문 취소 정책을 정의해야 할 수 있습니다.

  • 이벤트의 생산자는 클록 기울이기를 갖습니다. 이는 생산자가 서로 다른 컴퓨터에서 온 경우에 일반적이므로 시계가 다릅니다.
  • 네트워크 대기 시간으로 인해 동일한 클록에서 발생하는 이벤트는 이벤트 허브에 도착하거나 이벤트 허브가 시작된 시점과 다른 순서로 IoT Hub 수 있습니다.
  • 파티션 간의 클록 기울이기 분할되지 않은 쿼리를 사용하는 경우 모든 파티션의 이벤트는 사용자가 선택한 타임스탬프에 의해 병합됩니다. 병합이 가장 느린 파티션을 기다려야 하므로 파티션 간의 클록 기울이기로 인해 처리가 지연될 수 있습니다.

순서가 아닌 입력 스트림은 다음 중 하나일 수 있습니다.

  • 정렬됨(따라서 지연됨).
  • 사용자 지정 정책에 따라 시스템에 의해 조정됩니다.

애플리케이션 시간을 기준으로 처리할 때 Stream Analytics에서는 늦게 도착한 이벤트와 순서 비지정 이벤트를 허용합니다.

주문 초과 정책

시간에 따라 이벤트를 정렬하는 것은 스트리밍 분석에서 매우 중요합니다. 그러나 위에서 언급한 3개의 문제로 인해 쿼리 결과에 영향을 줄 수 있는 순서가 잘못된 경우가 많습니다. 순서가 잘못된 정책을 사용하면 정의된 허용 오차 기간 내에 도착할 때 타임스탬프별로 이벤트를 다시 정렬 할 수 있습니다. 허용 오차보다 늦게 도착하는 이벤트는 선택한 설정에 따라 삭제되거나 조정됩니다.

  • 조정: 최신 허용 가능한 시간에 도착한 것처럼 조정합니다.
  • 삭제: 삭제합니다.

이 설정은 작업의 "이벤트 순서 지정" 탭에 있는 Azure Portal 조정할 수 있습니다. 자세한 내용은 이벤트 순서 고려 사항 페이지를 참조하세요.

순서가 0보다 큰 정책을 설정할 때 Stream Analytics는 임시 변환을 적용하기 전에 해당 창까지 이벤트를 버퍼링하고 사용자 정의 타임스탬프를 사용하여 이벤트를 다시 정렬합니다. 일반적으로 먼저 3초 창부터 시작하는 것이 좋습니다. 그런 다음 값을 조정하여 시간이 조정되는 이벤트 수를 줄입니다. 버퍼링으로 인해 부작용은 출력이 동일한 시간만큼 지연된다는 점에 유의하세요. 따라서 순서가 지난 이벤트의 수를 줄이고 대기 시간을 낮게 유지하기 위해 값을 조정해야 합니다.

지연 도착 허용 시간

지연 도착 허용 시간 기간은 위에서 설명한 다양한 이유로 인해 입력 원본에 도달하는 이벤트의 지연을 설명하는 데 사용됩니다. 요약하자면, 지연 도착 시간은 이벤트 생성 시간과 입력 소스에서 이벤트를 수신하는 시간 사이의 최대 지연입니다. 먼저 지연 도착 허용 시간을 기준으로 시간을 조정한 후에 다음에 순서 비지정을 기준으로 시간을 조정합니다. System.Timestamp() 열에는 이벤트에 할당된 최종 타임스탬프가 있습니다.

이 설정은 애플리케이션 시간을 기준으로 처리할 때만 적용할 수 있고 그 밖의 경우 무시됩니다. Azure Portal(작업의 "이벤트 순서 지정" 탭)에서 설정할 수도 있습니다. 자세한 내용은 이벤트 순서 고려 사항 페이지를 참조하세요.

이벤트가 늦으면 타임스탬프가 입력 소스의 현재 큐에 넣기 시간으로 조정되어 지연 도착 허용 시간(또는 선택한 작업에 따라 삭제됨)을 뺀 값입니다. 같은 입력 스트림이나 여러 입력 스트림의 여러 파티션이 함께 결합될 때의 지연 도착 허용 시간은 모든 파티션이 새 데이터 도착을 대기하는 최대 시간입니다.

지연 도착 허용 시간 및 스파스 이벤트

지연 도착 정책을 사용하면 Stream Analytics가 입력 이벤트가 없는 경우 시간을 앞으로 이동하고 더 적절한 방식으로 출력을 생성할 수 있습니다. 이는 입력 이벤트가 스파스이거나 일부 Event Hub 파티션에서 전혀 수신되지 않는 경우에 매우 유용합니다.

예를 들어 입력 이벤트는 select* 쿼리에 대해 1분마다 한 번씩 생성됩니다. 이 정책을 사용하지 않으면 이벤트가 모든 Event Hub 파티션에 도착할 때까지 Stream Analytics에서 출력 결과를 생성할 수 없습니다(시간을 앞으로 이동). 이는 이벤트 허브에 16개의 파티션이 있고 각 이벤트가 다른 파티션으로 전달되는 경우 16분을 의미할 수 있습니다. 기본 5초 정책을 사용하면 클록이 첫 번째 이벤트 이후 5초 앞으로 이동되므로 출력 이벤트는 첫 번째 이벤트 이후 5초 후에 생성됩니다.

참고 항목

시간 관리(Azure Stream Analytics)
System.Timestamp()(Stream Analytics)
TIMESTAMP BY(Azure Stream Analytics)
이벤트 순서 고려 사항