다음을 통해 공유


시간 왜곡 정책

✅ Azure Stream Analytics ✅ Fabric Eventstream

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

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

또한 참조하십시오

시간 관리
System.Timestamp()(Stream Analytics)
타임스탬프 기준
이벤트 순서 고려 사항