다음을 통해 공유


데이터 흐름을 사용하여 데이터 보강

Important

Azure Arc에서 사용하도록 설정된 Azure IoT Operations 미리 보기는 현재 미리 보기로 제공됩니다. 프로덕션 환경에서는 이 미리 보기 소프트웨어를 사용하면 안 됩니다.

일반적으로 사용 가능한 릴리스를 사용할 수 있게 되면 새 Azure IoT Operations 설치를 배포해야 합니다. 미리 보기 설치를 업그레이드할 수 없습니다.

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

컨텍스트화 데이터 세트 함수를 사용하여 데이터를 보강할 수 있습니다. 들어오는 레코드가 처리되면 들어오는 레코드의 필드와 관련된 조건에 따라 이러한 데이터 세트를 쿼리할 수 있습니다. 이 기능을 사용하면 동적 상호 작용을 수행할 수 있습니다. 이러한 데이터 세트의 데이터를 사용하여 출력 필드의 정보를 보완하고 매핑 프로세스 중에 복잡한 계산에 참여할 수 있습니다.

예를 들어, JSON 레코드로 표현된 몇 개의 레코드가 있는 다음 데이터 세트를 고려해 보겠습니다.

{
  "Position": "Analyst",
  "BaseSalary": 70000,
  "WorkingHours": "Regular"
},
{
  "Position": "Receptionist",
  "BaseSalary": 43000,
  "WorkingHours": "Regular"
}

매퍼는 매핑 구성에 지정된 조건에 따라 키 값을 사용하여 Azure IoT Operations DSS(분산 상태 저장소)에 저장된 참조 데이터 세트에 액세스합니다. DSS의 키 이름은 데이터 흐름 구성의 데이터 세트에 해당합니다.

datasets:
- key: position
  inputs:
    - $source.Position # - $1
    - $context.Position # -$2
  expression: $1 == $2

새로운 레코드가 처리될 때 매퍼는 다음 단계를 수행합니다.

  • 데이터 요청: 매퍼는 DSS에 요청을 보내 키 Position아래에 저장된 데이터 세트를 검색합니다.
  • 레코드 일치: 매퍼는 이 데이터 세트를 쿼리하여 데이터 세트의 Position 필드가 들어오는 레코드의 필드와 일치하는 Position 첫 번째 레코드를 찾습니다.
- inputs:
  - $context(position).WorkingHours #  - $1 
  output: WorkingHours

- inputs:
  - BaseSalary   # - - - - - - - - - - - $1
  - $context(position).BaseSalary #  - - $2 
  output: BaseSalary
  expression: if($1 == (), $2, $1)

이 예제 WorkingHours 에서는 필드가 출력 레코드에 추가되고 BaseSalary 들어오는 레코드에 필드가 없는 BaseSalary 경우에만 조건부로 사용됩니다(또는 값이 null nullable 필드인 경우). 컨텍스트화 데이터에 대한 요청은 모든 수신 레코드에서 발생하는 것은 아닙니다. 매퍼는 데이터 세트를 요청한 다음 DSS로부터 변경 내용에 대한 알림을 받는 동시에 데이터 세트의 캐시된 버전을 사용합니다.

여러 데이터 세트를 사용할 수 있습니다.

datasets:
- key: position
  inputs:
    - $source.Position  # - $1
    - $context.Position # - $2
  expression: $1 == $2

- key: permissions
  inputs:
    - $source.Position  # - $1
    - $context.Position # - $2
  expression: $1 == $2

그런 다음 참조를 혼합하여 사용합니다.

- inputs:
  - $context(position).WorkingHours  #    - - $1
  - $context(permission).NightShift  #    - - $2

입력 참조는 데이터 세트의 키(예: 또는 permission.)를 position 사용합니다. DSS의 키를 사용하기가 불편하면 별칭을 정의할 수 있습니다.

datasets:
  - key: datasets.parag10.rule42 as position
    inputs:
      - $source.Position  # - $1
      - $context.Position # - $2
    expression: $1 == $2

구성은 키를 datasets.parag10.rule42 position사용하여 데이터 세트의 이름을 .로 바꿉니다.