다음을 통해 공유


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

Important

이 페이지에는 미리 보기 상태인 Kubernetes 배포 매니페스트를 사용하여 Azure IoT Operations 구성 요소를 관리하기 위한 지침이 포함되어 있습니다. 이 기능은 몇 가지 제한 사항을 제공하며 프로덕션 워크로드에 사용하면 안 됩니다.

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

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

샘플 데이터를 상태 저장소에 로드하려면 상태 저장소 CLI사용합니다.

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

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

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

datasets: [
  {
    key: 'position',
    inputs: [
      '$source.Position' //  - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
]

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

  • 데이터 요청: 매퍼는 상태 저장소에 요청을 보내 키 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 필드인 경우). 컨텍스트화 데이터에 대한 요청은 모든 수신 레코드에서 발생하는 것은 아닙니다. 매퍼는 데이터 세트를 요청한 다음, 캐시된 버전의 데이터 세트를 사용하는 동안 상태 저장소에서 변경 내용에 대한 알림을 받습니다.

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

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(permissions).NightShift' // - $2
]

입력 참조는 데이터 세트의 키(예: 또는 permission.)를 position 사용합니다. 상태 저장소의 키를 사용하기가 불편한 경우 별칭을 정의할 수 있습니다.

datasets: [
  {
    key: 'datasets.parag10.rule42 as position'
    inputs: [
      '$source.Position'  // - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
]

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