다음을 통해 공유


Azure IoT 데이터 프로세서 미리 보기 파이프라인에서 마지막으로 알려진 값 사용

Important

Azure IoT 작업 미리 보기 - Azure Arc에서 지원되는 Azure IoT 작업은 현재 미리 보기로 제공됩니다. 프로덕션 환경에서는 이 미리 보기 소프트웨어를 사용하면 안 됩니다.

베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

데이터 프로세서 파이프라인에서 LKV(마지막으로 알려진 값) 단계를 사용하여 데이터의 최신 및 전체 레코드를 유지 관리합니다. LKV 단계는 파이프라인에서 메시지에 대한 키-값 쌍의 최신 값을 추적합니다. 그러면 이 단계에서 추적된 LKV 값을 사용하여 메시지를 보강할 수 있습니다. 마지막으로 알려진 값 추적 및 보강은 다음을 사용하는 다운스트림 프로세스에 중요합니다.

  • 특정 타임스탬프의 여러 시계열 데이터 요소입니다.
  • 특정 키에 대한 값이 항상 있는 페이로드입니다.

데이터 처리 파이프라인에서 LKV 단계는 선택적 단계입니다. LKV 단계를 사용하는 경우 다음을 수행할 수 있습니다.

  • 파이프라인에 여러 LKV 단계를 추가합니다. 각 LKV 단계는 여러 값을 추적할 수 있습니다.
  • 저장된 LKV 값으로 메시지를 보강하여 데이터를 완전하고 포괄적으로 유지할 수 있습니다.
  • LKV를 들어오는 메시지의 최신 값으로 자동으로 업데이트합니다.
  • 논리 파티션에 대해 LKV를 개별적으로 추적합니다. LKV 단계는 각 논리 파티션에서 독립적으로 작동합니다.
  • 추적된 각 LKV의 만료 시간을 구성하여 LKV가 유효한 상태로 유지되는 기간을 관리합니다. 이 컨트롤은 메시지가 부실 값으로 보강되지 않도록 하는 데 도움이 됩니다.

LKV 단계는 시간순으로 데이터 무결성을 유지 관리합니다. 이 단계에서는 이전 타임스탬프가 있는 메시지가 이후 타임스탬프가 있는 메시지로 LKV를 재정의하거나 대체하지 않도록 합니다.

LKV 단계는 들어오는 메시지를 추적한 마지막으로 알려진 값으로 보강합니다. 이러한 보강된 값은 이전에 기록된 데이터를 나타내며 반드시 현재 실시간 값은 아닙니다. 이 동작이 데이터 처리 기대에 부합하는지 확인합니다.

필수 조건

집계 파이프라인 단계를 구성하고 사용하려면 Azure IoT 데이터 프로세서 미리 보기의 배포된 인스턴스가 필요합니다.

단계 구성

LKV 단계 JSON 구성은 단계의 세부 정보를 정의합니다. 단계를 작성하려면 양식 기반 UI와 상호 작용하거나 고급 탭에서 JSON 구성을 제공할 수 있습니다.

필드 설명 필수 항목 기본값 예시
이름 단계에 대해 사용자가 정의한 이름입니다. - lkv1
설명 단계에 대한 사용자 정의 설명입니다. 아니요 - lkv1
속성 > 입력 경로 추적할 키의 경로입니다. - .payload.temperature
속성 > 출력 경로 LKV를 작성할 출력 메시지의 위치에 대한 경로입니다. - .payload.temperature_lkv
속성 > 만료 시간 추적한 LKV는 사용자 정의 시간 간격에만 유효하며, 이후에는 출력 메시지가 저장된 값으로 보강되지 않습니다. 만료는 각 LKV 키에 대해 추적됩니다. 아니요 - 10h
속성 > 타임스탬프 경로 LKV가 마지막으로 업데이트된 시점의 타임스탬프를 쓸 출력 메시지의 위치에 대한 경로입니다. 아니요 False -

타임스탬프 경로를 포함하는 경우 LKV가 기록된 시간을 정확하게 파악하고 투명성과 추적 가능성을 향상시키는 데 도움이 됩니다.

inputPathoutputPath가 같음

보내는 메시지는 실제 메시지 값이거나 LKV(추적된 키가 메시지 페이로드에서 누락된 경우)입니다. 들어오는 값이 우선하며 스테이지는 이 값을 LKV로 재정의하지 않습니다. 메시지 값이 LKV 값인지 여부를 식별하려면 타임스탬프 경로를 사용합니다. 타임스탬프 경로는 메시지의 값이 추적된 LKV인 경우에만 보내는 메시지에 포함됩니다.

inputPathoutputPath와 같지 않음

이 단계에서는 들어오는 모든 메시지에 대해 LKV를 outputPath에 씁니다. 이 구성을 사용하여 후속 메시지 페이로드 값 간의 차이를 추적합니다.

샘플 구성

다음 예제에서는 10시 2분에 도착하는 메시지와 추적된 .payload.temperature LKV 값이 포함된 페이로드가 있는 LKV 단계에 대한 샘플 메시지를 보여 줍니다.

{ 
  { 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T10:02:07Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "humidity": 10, 
        "temperature":250, 
        "pressure":30, 
        "runningState": true 
    } 
} 

LKV 구성:

필드
입력 경로* .payload.temperature
출력 경로 .payload.lkvtemperature
만료 시간 10h
타임스탬프 경로 .payload.lkvtemperature_timestamp

추적된 LKV 값은 다음과 같습니다.

  • .payload.temperature는 250입니다.
  • LKV의 타임스탬프는 2023-01-11T10:02:07Z입니다.

온도 속성이 없는 페이로드를 사용하여 11시 5분에 도착하는 메시지의 경우 LKV 단계는 추적된 값으로 메시지를 보강합니다.

11시 5분에 LKV 단계에 입력 예:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "runningState": true 
    } 
} 

11시 5분에 LKV 단계에서 출력 예:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "lkvtemperature":250, 
        "lkvtemperature_timestamp"":"2023-01-11T10:02:07Z" 
        "runningState": true 
    } 
}