다음을 통해 공유


Azure IoT Operations에서 데이터 흐름 구성

Important

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

일반적으로 릴리스되는 릴리스가 제공되면 새로운 Azure IoT 작업 설치를 배포해야 합니다. 미리 보기 설치는 업그레이드할 수 없습니다.

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

데이터 흐름은 선택적 변환을 통해 데이터가 원본에서 대상까지 이동하는 경로입니다. 데이터 흐름 사용자 지정 리소스를 만들거나 Azure IoT Operations Studio 포털을 사용하여 데이터 흐름을 구성할 수 있습니다. 데이터 흐름은 원본, 변환 및 대상의 세 부분으로 구성됩니다.

원본에서 변환 후 대상으로의 흐름을 보여 주는 데이터 흐름의 다이어그램.

원본 및 대상을 정의하려면 데이터 흐름 엔드포인트를 구성해야 합니다. 변환은 선택 사항이며 데이터 보강, 데이터 필터링 및 데이터를 다른 필드에 매핑하는 등의 작업을 포함할 수 있습니다.

Important

각 데이터 흐름에는 원본 또는 대상으로 Azure IoT Operations 로컬 MQTT broker 기본 엔드포인트 가 있어야 합니다.

Azure IoT Operations의 작업 환경을 사용하여 데이터 흐름을 만들 수 있습니다. 작업 환경은 데이터 흐름을 구성하는 시각적 인터페이스를 제공합니다. Bicep을 사용하여 Bicep 템플릿 파일을 사용하여 데이터 흐름을 만들거나 Kubernetes를 사용하여 YAML 파일을 사용하여 데이터 흐름을 만들 수도 있습니다.

원본, 변환 및 대상을 구성하는 방법을 알아보려면 계속 읽어보세요.

필수 조건

기본 데이터 흐름 프로필 및 엔드포인트를 사용하여 Azure IoT Operations Preview 인스턴스가 있는 즉시 데이터 흐름을 배포할 수 있습니다. 그러나 데이터 흐름을 사용자 지정하도록 데이터 흐름 프로필 및 엔드포인트를 구성할 수 있습니다.

데이터 흐름 프로필

데이터 흐름 프로필은 사용할 데이터 흐름의 인스턴스 수를 지정합니다. 크기 조정 설정이 다른 여러 데이터 흐름 그룹이 필요하지 않은 경우 기본 데이터 흐름 프로필을 사용할 수 있습니다. 데이터 흐름 프로필을 구성하는 방법을 알아보려면 데이터 흐름 프로필 구성을 참조 하세요.

데이터 흐름 엔드포인트

데이터 흐름의 원본 및 대상을 구성하려면 데이터 흐름 엔드포인트가 필요합니다. 빠르게 시작하려면 로컬 MQTT broker대한 기본 데이터 흐름 엔드포인트를 사용할 수 있습니다. Kafka, Event Hubs 또는 Azure Data Lake Storage와 같은 다른 유형의 데이터 흐름 엔드포인트를 만들 수도 있습니다. 각 유형의 데이터 흐름 엔드포인트를 구성하는 방법을 알아보려면 데이터 흐름 엔드포인트 구성을 참조 하세요.

시작하기

필수 구성 요소가 있으면 데이터 흐름을 만들기 시작할 수 있습니다.

작업 환경에서 데이터 흐름을 만들려면 데이터 흐름 만들기 데이터 흐름을> 선택합니다. 그런 다음 데이터 흐름에 대한 원본, 변환 및 대상을 구성할 수 있는 페이지가 표시됩니다.

작업 환경을 사용하여 데이터 흐름을 만드는 스크린샷

다음 섹션을 검토하여 데이터 흐름의 작업 유형을 구성하는 방법을 알아봅니다.

Source

데이터 흐름에 대한 원본을 구성하려면 엔드포인트 참조 및 엔드포인트에 대한 데이터 원본 목록을 지정합니다.

자산을 원본으로 사용

자산을 데이터 흐름의 원본으로 사용할 수 있습니다. 자산을 원본으로 사용하는 것은 작업 환경에서만 사용할 수 있습니다.

  1. 원본 세부 정보에서 자산을 선택합니다.

  2. 원본 엔드포인트로 사용할 자산을 선택합니다.

  3. 계속을 선택합니다.

    선택한 자산에 대한 데이터 요소 목록이 표시됩니다.

    작업 환경을 사용하여 원본 엔드포인트로 자산을 선택하는 스크린샷

  4. 적용을 선택하여 자산을 원본 엔드포인트로 사용합니다.

자산을 원본으로 사용하는 경우 자산 정의는 데이터 흐름에 대한 스키마를 유추하는 데 사용됩니다. 자산 정의에는 자산의 데이터 요소에 대한 스키마가 포함됩니다. 자세한 내용은 자산 구성 관리를 원격으로 참조하세요.

구성되면 자산의 데이터가 로컬 MQTT 브로커를 통해 데이터 흐름에 도달했습니다. 따라서 자산을 원본으로 사용하는 경우 데이터 흐름은 로컬 MQTT broker 기본 엔드포인트를 실제 원본으로 사용합니다.

기본 MQTT 엔드포인트를 원본으로 사용

  1. 원본 세부 정보에서 MQTT를 선택합니다.

    작업 환경을 사용하여 MQTT를 원본 엔드포인트로 선택하는 스크린샷

  2. MQTT 원본에 대해 다음 설정을 입력합니다.

    설정 설명
    MQTT 항목 들어오는 메시지를 구독할 MQTT 토픽 필터입니다. MQTT 또는 Kafka 구성 항목을 참조 하세요.
    메시지 스키마 들어오는 메시지를 역직렬화하는 데 사용할 스키마입니다. 데이터를 역직렬화하려면 스키마 지정을 참조하세요.
  3. 적용을 선택합니다.

기본 엔드포인트가 원본으로 사용되지 않는 경우 대상으로 사용해야 합니다. 자세한 내용은 데이터 흐름이 로컬 MQTT broker 엔드포인트를 사용해야 하므로 참조하세요.

사용자 지정 MQTT 또는 Kafka 데이터 흐름 엔드포인트를 원본으로 사용

사용자 지정 MQTT 또는 Kafka 데이터 흐름 엔드포인트를 만든 경우(예: Event Grid 또는 Event Hubs와 함께 사용) 데이터 흐름의 원본으로 사용할 수 있습니다. Data Lake 또는 Fabric OneLake와 같은 스토리지 유형 엔드포인트는 원본으로 사용할 수 없습니다.

구성하려면 Kubernetes YAML 또는 Bicep을 사용합니다. 자리 표시자 값을 사용자 지정 엔드포인트 이름 및 토픽으로 바꿉니다.

사용자 지정 MQTT 또는 Kafka 엔드포인트를 원본으로 사용하는 것은 현재 작업 환경에서 지원되지 않습니다.

데이터 원본 구성(MQTT 또는 Kafka 항목)

데이터 흐름 엔드포인트 구성을 수정할 필요 없이 원본에서 여러 MQTT 또는 Kafka 토픽을 지정할 수 있습니다. 이러한 유연성은 토픽이 달라도 여러 데이터 흐름에서 동일한 엔드포인트를 다시 사용할 수 있습니다. 자세한 내용은 데이터 흐름 엔드포인트 재사용을 참조하세요.

MQTT 항목

원본이 MQTT(Event Grid 포함) 엔드포인트인 경우 MQTT 토픽 필터를 사용하여 들어오는 메시지를 구독할 수 있습니다. 토픽 필터에는 여러 항목을 구독하는 와일드카드가 포함될 수 있습니다. 예를 들어 자동 thermostats/+/telemetry/temperature/# 온도 조절기의 모든 온도 원격 분석 메시지를 구독합니다. MQTT 토픽 필터를 구성하려면 다음을 수행합니다.

작업 환경 데이터 흐름 원본 세부 정보에서 MQTT를 선택한 다음 MQTT 토픽 필드를 사용하여 들어오는 메시지를 구독할 MQTT 토픽 필터를 지정합니다.

참고 항목

작업 환경에서는 MQTT 토픽 필터를 하나만 지정할 수 있습니다. 여러 MQTT 토픽 필터를 사용하려면 Bicep 또는 Kubernetes를 사용합니다.

공유 구독

MQTT 원본에서 공유 구독을 사용하려면 공유 구독 토픽을 형식으로 $shared/<GROUP_NAME>/<TOPIC_FILTER>지정할 수 있습니다.

작업 환경 데이터 흐름 원본 세부 정보에서 MQTT를 선택하고 MQTT 토픽 필드를 사용하여 공유 구독 그룹 및 토픽을 지정합니다.

데이터 흐름 프로필인스턴스 수가 1보다 크면 MQTT 원본을 사용하는 모든 데이터 흐름에 대해 공유 구독이 자동으로 사용하도록 설정됩니다. 이 경우 $shared 접두사를 추가하고 공유 구독 그룹 이름이 자동으로 생성됩니다. 예를 들어 인스턴스 수가 3인 데이터 흐름 프로필이 있고 데이터 흐름이 토픽 topic1 topic2으로 구성된 원본으로 MQTT 엔드포인트를 사용하고 공유 구독 $shared/<GENERATED_GROUP_NAME>/topic1 $shared/<GENERATED_GROUP_NAME>/topic2으로 자동 변환되는 경우 다른 공유 구독 그룹 ID를 사용하려는 경우 토픽에서 재정의할 수 있습니다(예: $shared/mygroup/topic1.).

Important

인스턴스 수가 1보다 클 때 공유 구독이 필요한 데이터 흐름은 공유 구독을 지원하지 않으므로 Event Grid MQTT broker를 원본 으로 사용할 때 중요합니다. 메시지 누락을 방지하려면 Event Grid MQTT broker를 원본으로 사용할 때 데이터 흐름 프로필 인스턴스 수를 1로 설정합니다. 데이터 흐름이 구독자이고 클라우드에서 메시지를 수신하는 경우입니다.

Kafka 토픽

원본이 Kafka(Event Hubs 포함) 엔드포인트인 경우 들어오는 메시지에 대해 구독할 개별 kafka 토픽을 지정합니다. 와일드카드는 지원되지 않으므로 각 토픽을 정적으로 지정해야 합니다.

참고 항목

Kafka 엔드포인트를 통해 Event Hubs를 사용하는 경우 네임스페이스 내의 각 개별 이벤트 허브는 Kafka 토픽입니다. 예를 들어 두 개의 이벤트 허브가 있는 Event Hubs 네임스페이스가 thermostats 있는 humidifiers경우 각 이벤트 허브를 Kafka 토픽으로 지정할 수 있습니다.

Kafka 토픽을 구성하려면 다음을 수행합니다.

Kafka 엔드포인트를 원본으로 사용하는 것은 현재 작업 환경에서 지원되지 않습니다.

데이터를 역직렬화하는 스키마 지정

원본 데이터에 다른 형식의 선택적 필드 또는 필드가 있는 경우 일관성을 보장하기 위해 역직렬화 스키마를 지정합니다. 예를 들어 데이터에는 모든 메시지에 없는 필드가 있을 수 있습니다. 스키마가 없으면 빈 값이 있으므로 변환에서 이러한 필드를 처리할 수 없습니다. 스키마를 사용하여 기본값을 지정하거나 필드를 무시할 수 있습니다.

스키마 지정은 MQTT 또는 Kafka 원본을 사용하는 경우에만 관련이 있습니다. 원본이 자산인 경우 스키마는 자산 정의에서 자동으로 유추됩니다.

원본에서 들어오는 메시지를 역직렬화하는 데 사용되는 스키마를 구성하려면 다음을 수행합니다.

작업 환경 데이터 흐름 원본 세부 정보에서 MQTT를 선택하고 메시지 스키마 필드를 사용하여 스키마를 지정합니다. 업로드 단추를 사용하여 스키마 파일을 먼저 업로드할 수 있습니다. 자세한 내용은 메시지 스키마 이해를 참조하세요.

변환

변환 작업은 데이터를 대상으로 보내기 전에 원본에서 데이터를 변환할 수 있는 위치입니다. 변환은 선택 사항입니다. 데이터를 변경할 필요가 없으면 데이터 흐름 구성에 변환 작업을 포함하지 마세요. 여러 변환은 구성에 지정된 순서에 관계없이 여러 변환이 단계별로 연결됩니다. 단계의 순서는 항상 다음과 같습니다.

  1. 새 속성 보강, 이름 바꾸기 또는 추가: 일치시킬 데이터 세트 및 조건이 지정된 경우 원본 데이터에 추가 데이터를 추가합니다.
  2. 필터: 조건에 따라 데이터를 필터링합니다.
  3. 또는 컴퓨팅: 선택적 변환을 사용하여 한 필드에서 다른 필드로 데이터를 이동합니다.

작업 환경에서 데이터 흐름>변환 추가(선택 사항)를 선택합니다.

작업 환경을 사용하여 데이터 흐름에 변환을 추가하는 스크린샷

보강: 참조 데이터 추가

데이터를 보강하려면 Azure IoT Operations DSS(분산 상태 저장소)에서 참조 데이터 세트를 사용할 수 있습니다. 데이터 세트는 조건에 따라 원본 데이터에 추가 데이터를 추가하는 데 사용됩니다. 조건은 데이터 세트의 필드와 일치하는 원본 데이터의 필드로 지정됩니다.

DSS 집합 도구 샘플을 사용하여 샘플 데이터를 DSS에 로드할 수 있습니다. 분산 상태 저장소의 키 이름은 데이터 흐름 구성의 데이터 세트에 해당합니다.

작업 환경에서 보강 단계는 현재 이름 바꾸기새 속성 변환을 사용하여 지원됩니다.

  1. 작업 환경에서 데이터 흐름을 선택한 다음 변환을 추가합니다(선택 사항).

  2. 이름 바꾸기 또는 새 속성 변환을 선택한 다음 추가를 선택합니다.

    작업 환경을 사용하여 데이터 요소의 이름을 바꾸고 새 속성을 추가하는 스크린샷

데이터 세트에 asset 필드가 있는 레코드가 있는 경우 다음과 같습니다.

{
  "asset": "thermostat1",
  "location": "room1",
  "manufacturer": "Contoso"
}

필드가 일치하는 thermostat1 원본의 deviceId 데이터에는 location 필터 및 manufacturer 맵 단계에서 사용할 수 있는 필드와 필드가 있습니다.

조건 구문에 대한 자세한 내용은 데이터 흐름을 사용하여 데이터 보강 및 데이터 흐름을 사용하여 데이터 변환을 참조하세요.

필터: 조건에 따라 데이터 필터링

조건에 따라 데이터를 필터링하려면 filter 단계를 사용할 수 있습니다. 조건은 값과 일치하는 원본 데이터의 필드로 지정됩니다.

  1. 변환(선택 사항)에서 필터>추가를 선택합니다.

  2. 데이터 세트에 포함할 데이터 포인트를 선택합니다.

  3. 필터 조건 및 설명을 추가합니다.

    작업 환경을 사용하여 필터 변환을 추가하는 스크린샷

  4. 적용을 선택합니다.

예를 들어 온도 필드를 기준으로 20보다 작거나 같은 데이터를 필터링하는 필터 temperature > 20 조건을 사용할 수 있습니다.

맵: 한 필드에서 다른 필드로 데이터 이동

선택적 변환을 통해 데이터를 다른 필드에 매핑하려면 map 연산을 사용할 수 있습니다. 변환은 원본 데이터의 필드를 사용하는 수식으로 지정됩니다.

작업 환경에서는 현재 컴퓨팅 변환을 사용하여 매핑이 지원됩니다.

  1. 변환(선택 사항)에서 컴퓨팅 추가>선택합니다.

  2. 필수 필드 및 식을 입력합니다.

    작업 환경을 사용하여 컴퓨팅 변환을 추가하는 스크린샷

  3. 적용을 선택합니다.

자세한 내용은 데이터 흐름을 사용하여 데이터 매핑 및 데이터 흐름을 사용하여 데이터 변환을 참조하세요.

스키마에 따라 데이터 직렬화

데이터를 대상으로 보내기 전에 직렬화하려면 스키마 및 serialization 형식을 지정해야 합니다. 그렇지 않으면 데이터가 유추된 형식을 사용하여 JSON으로 직렬화됩니다. Microsoft Fabric 또는 Azure Data Lake와 같은 스토리지 엔드포인트에는 데이터 일관성을 보장하기 위한 스키마가 필요합니다. 지원되는 serialization 형식은 Parquet 및 Delta입니다.

현재 출력 스키마 및 serialization 지정은 작업 환경에서 지원되지 않습니다.

스키마 레지스트리에 대한 자세한 내용은 메시지 스키마 이해를 참조 하세요.

대상

데이터 흐름의 대상을 구성하려면 엔드포인트 참조 및 데이터 대상을 지정합니다. 엔드포인트에 대한 데이터 대상 목록을 지정할 수 있습니다.

로컬 MQTT broker 이외의 대상으로 데이터를 보내려면 데이터 흐름 엔드포인트를 만듭니다. 방법을 알아보려면 데이터 흐름 엔드포인트 구성을 참조 하세요. 대상이 로컬 MQTT broker가 아닌 경우 원본으로 사용해야 합니다. 자세한 내용은 데이터 흐름이 로컬 MQTT broker 엔드포인트를 사용해야 하므로 참조하세요.

Important

스토리지 엔드포인트에는 스키마 참조가 필요합니다. Microsoft Fabric OneLake, ADLS Gen 2, Azure Data Explorer 및 Local Storage에 대한 스토리지 대상 엔드포인트를 만든 경우 스키마 참조를 지정해야 합니다.

  1. 대상으로 사용할 데이터 흐름 엔드포인트를 선택합니다.

    작업 환경을 사용하여 Event Hubs 대상 엔드포인트를 선택하는 스크린샷

  2. [진행]을 선택하여 대상을 구성합니다.

  3. 데이터를 보낼 토픽 또는 테이블을 포함하여 대상에 필요한 설정을 입력합니다. 자세한 내용은 데이터 대상 구성(토픽, 컨테이너 또는 테이블)을 참조하세요.

데이터 대상 구성(토픽, 컨테이너 또는 테이블)

데이터 원본과 마찬가지로 데이터 대상은 여러 데이터 흐름에서 데이터 흐름 엔드포인트를 재사용 가능한 상태로 유지하는 데 사용되는 개념입니다. 기본적으로 데이터 흐름 엔드포인트 구성의 하위 디렉터리를 나타냅니다. 예를 들어 데이터 흐름 엔드포인트가 스토리지 엔드포인트인 경우 데이터 대상은 스토리지 계정의 테이블입니다. 데이터 흐름 엔드포인트가 Kafka 엔드포인트인 경우 데이터 대상은 Kafka 토픽입니다.

엔드포인트 유형 데이터 대상 의미 설명
MQTT(또는 Event Grid) 항목 데이터가 전송되는 MQTT 항목입니다. 정적 토픽만 지원되며 와일드카드는 지원되지 않습니다.
Kafka(또는 Event Hubs) 항목 데이터가 전송되는 Kafka 토픽입니다. 정적 토픽만 지원되며 와일드카드는 지원되지 않습니다. 엔드포인트가 Event Hubs 네임스페이스인 경우 데이터 대상은 네임스페이스 내의 개별 이벤트 허브입니다.
Azure Data Lake Storage 컨테이너 스토리지 계정의 컨테이너입니다. 테이블이 아닙니다.
Microsoft Fabric OneLake 테이블 또는 폴더 엔드포인트에 대해 구성된 경로 형식에 해당합니다.
Azure Data Explorer 테이블 Azure Data Explorer 데이터베이스의 테이블입니다.
로컬 스토리지 폴더 로컬 스토리지 영구 볼륨 탑재의 폴더 또는 디렉터리 이름입니다. Azure Arc Cloud Ingest Edge 볼륨에서 사용하도록 설정된 Azure Container Storage를 사용하는 경우 만든 하위 명령의 spec.path 매개 변수와 일치해야 합니다.

데이터 대상을 구성하려면 다음을 수행합니다.

작업 환경을 사용하는 경우 데이터 대상 필드는 엔드포인트 유형에 따라 자동으로 해석됩니다. 예를 들어 데이터 흐름 엔드포인트가 스토리지 엔드포인트인 경우 대상 세부 정보 페이지에서 컨테이너 이름을 입력하라는 메시지를 표시합니다. 데이터 흐름 엔드포인트가 MQTT 엔드포인트인 경우 대상 세부 정보 페이지에서 토픽을 입력하라는 메시지를 표시합니다.

엔드포인트 유형이 지정된 경우 사용자에게 MQTT 토픽을 입력하라는 메시지를 표시하는 작업 환경을 보여 주는 스크린샷

예시

다음 예제는 원본 및 대상에 MQTT 엔드포인트를 사용하는 데이터 흐름 구성입니다. 원본은 MQTT 토픽에서 데이터를 필터링합니다 azure-iot-operations/data/thermostat. 변환은 온도를 화씨로 변환하고 습도를 곱한 온도가 1000000 미만인 데이터를 필터링합니다. 대상은 MQTT 토픽 factory으로 데이터를 보냅니다.

구성 예제는 Bicep 또는 Kubernetes 탭을 참조하세요.

데이터 흐름 구성의 더 많은 예제를 보려면 Azure REST API - 데이터 흐름 및 빠른 시작 Bicep참조하세요.

데이터 흐름이 작동하는지 확인

자습서: Azure Event Grid 에 양방향 MQTT 브리지를 연결하여 데이터 흐름이 작동하는지 확인합니다.

데이터 흐름 내보내기 구성

데이터 흐름 구성을 내보내려면 작업 환경을 사용하거나 데이터 흐름 사용자 지정 리소스를 내보낼 수 있습니다.

내보낼 데이터 흐름을 선택하고 도구 모음에서 내보내기를 선택합니다.

작업 환경을 사용하여 데이터 흐름을 내보내는 스크린샷

적절한 데이터 흐름 구성

데이터 흐름이 예상대로 작동하는지 확인하려면 다음을 확인합니다.

다음 단계