다음을 통해 공유


Azure IoT 데이터 프로세서 미리 보기 파이프라인에서 MQ 원본 단계 구성

Important

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

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

원본 스테이지는 Azure IoT 데이터 프로세서 Preview 파이프라인의 첫 번째 필수 스테이지입니다. 원본 단계는 데이터를 데이터 처리 파이프라인으로 가져오고 추가 처리를 위해 준비합니다. MQ 원본 단계를 사용하면 MQTT 토픽의 메시지를 구독할 수 있습니다. 원본 단계에서 MQ 원본에 대한 연결 세부 정보를 정의하고 특정 데이터 처리 요구 사항에 따라 분할 구성을 설정합니다.

필수 조건

  • 데이터 프로세서의 작동하는 인스턴스가 배포됩니다.
  • 필요한 원시 데이터를 모두 사용할 수 있는 Azure IoT MQ 미리 보기 broker의 인스턴스는 작동하고 연결할 수 있습니다.

MQ 원본 구성

MQ 원본을 구성하려면 다음을 수행합니다.

  • MQ 원본에 대한 연결 세부 정보를 제공합니다. 이 구성에는 MQ 원본의 형식, MQTT 브로커 URL, QoS(서비스 품질) 수준, 세션 유형 및 구독할 항목이 포함됩니다.
  • 인증 방법을 지정합니다. 현재 사용자 이름/암호 기반 인증 또는 서비스 계정 토큰으로 제한됩니다.

다음 표에서는 MQ 원본 구성 매개 변수에 대해 설명합니다.

필드 설명 필수 항목 기본값 예시
이름 원본 단계의 고객이 볼 수 있는 이름입니다. Required 해당 없음 asset-1broker
설명 원본 단계에 대한 고객이 볼 수 있는 설명입니다. 선택 사항 해당 없음 brokerforasset-1
Broker 연결할 MQTT 브로커의 URL입니다. Required 해당 없음 tls://aio-mq-dmqtt-frontend:8883
인증 broker에 연결할 인증 방법입니다. None, Username/PasswordService Account Token (SAT) 중 하나입니다. Required Service Account Token (SAT) Service Account Token (SAT)
사용자 이름/암호 > 사용자 이름 사용자 이름/암호 인증의 사용자 이름 해당 없음 myuser
사용자 이름/암호 > 비밀 Azure Key Vault에 저장된 암호에 대한 참조입니다. 해당 없음 AKV_USERNAME_PASSWORD
Qos 메시지 배달에 대한 QoS 수준입니다. Required 1 0
세션 정리 영구 세션을 위해 FALSE에 설정됩니다. Required FALSE FALSE
항목 데이터 취득을 위해 구독할 항목입니다. Required 해당 없음 contoso/site1/asset1, contoso/site1/asset2

비밀에 대해 자세히 알아보려면 Azure IoT Operations Preview 배포에 대한 비밀 관리를 참조하세요.

데이터 프로세서는 MQTT 브로커에서 오는 순서가 맞지 않는 데이터의 순서를 다시 지정하지 않습니다. 데이터가 broker에서 순서가 맞지 않게 수신되는 경우 파이프라인에 그대로 유지됩니다.

데이터 형식을 선택합니다.

데이터 프로세서 파이프라인에서 원본 스테이지의 형식 필드는 들어오는 데이터를 역직렬화하는 방법을 지정합니다. 기본적으로 데이터 프로세서 파이프라인은 들어오는 데이터를 변환하지 않음을 의미하는 raw 형식을 사용합니다. 파이프라인의 Filter 또는 Enrich 스테이지와 많은 데이터 프로세서 기능을 사용하려면 입력 스테이지에서 데이터를 역직렬화해야 합니다. 전체 데이터 프로세서 기능을 사용하기 위해 JSON, jsonStream, MessagePack, CBOR, CSV 또는 Protobuf 형식에서 들어오는 데이터를 데이터 프로세서에서 읽을 수 있는 메시지로 역직렬화하도록 선택할 수 있습니다.

다음 표에서는 다양한 역직렬화 구성 옵션에 대해 설명합니다.

필드 설명 필수 항목 기본값
데이터 형식 데이터 형식의 유형입니다. Raw Raw JSON jsonStream MessagePack CBOR CSV Protobuf

Data Format 필드는 필수이며 해당 값은 다른 필수 필드를 결정합니다.

CSV 메시지를 역직렬화하려면 다음 필드도 지정해야 합니다.

필드 설명 필수 예제
헤더 CSV 데이터에 헤더 줄이 포함되는지 여부입니다. Yes No No
이름 CSV 열 이름입니다. - temp, asset
Path 열 정보가 추가되는 메시지의 jq 경로 입니다. 아니요 - 기본 jq 경로는 열 이름입니다.
데이터 형식 열에 있는 데이터의 데이터 형식 및 데이터 프로세서 파이프라인 내에서 데이터 형식이 표시되는 방식입니다. 아니요 String, Float, Integer, Boolean, Bytes 기본값: String

Protobuf 메시지를 역직렬화하려면 다음 필드도 지정해야 합니다.

필드 설명 필수 예제
설명자 protobuf 정의에 대한 base64로 인코딩된 설명자입니다. - Zhf...
메시지 데이터 형식을 지정하는 데 사용되는 메시지 형식의 이름입니다. - pipeline
Package(패키지) 형식이 정의된 설명자에 있는 패키지의 이름입니다. - schedulerv1

참고 항목

데이터 프로세서는 각 .proto 파일에서 하나의 메시지 형식만 지원합니다.

분할 구성

파이프라인에서 분할하면 들어오는 데이터를 별도의 파티션으로 나눕니다. 분할을 사용하면 파이프라인에서 데이터 병렬 처리를 통해 처리량을 개선하고 대기 시간을 줄일 수 있습니다. 분할 전략은 파이프라인의 다른 스테이지에서 데이터가 처리되는 방식에 영향을 미칩니다. 예를 들어 마지막으로 알려진 값 스테이지 및 집계 스테이지는 각 논리 파티션에서 작동합니다.

데이터를 분할하려면 분할 전략과 사용할 파티션 수를 지정합니다.

필드 설명 필수 항목 기본값 예시
파티션 유형 사용할 분할 유형: 파티션 ID 또는 파티션 Key Required Key Key
파티션 식 들어오는 메시지에서 파티션 ID 또는 파티션 Key를 계산하는 데 사용할 jq 식 입니다. Required .topic .topic
파티션 수 데이터 프로세서 파이프라인의 파티션 수입니다. Required 2 2

데이터 프로세서는 들어오는 메시지에 추가 메타데이터를 추가합니다. 들어오는 메시지에서 실행되는 분할 식을 올바르게 지정하는 방법을 이해하려면 데이터 프로세서 메시지 구조 개요를 참조하세요. 기본적으로 파티션 식은 들어오는 모든 데이터를 단일 파티션으로 보내기 위해 ID파티션 형식을 가진 0으로 설정됩니다.

권장 사항 및 자세한 내용은 분할이란?을 참조하세요.

샘플 구성

다음 예는 단계에 대한 예제 구성을 보여줍니다.

매개 변수
속성 input data
Broker tls://aio-mq-dmqtt-frontend:8883
인증 Service Account Token (SAT)
항목 azure-iot-operations/data/opc-ua-connector-0/#
데이터 형식 JSON

그런 다음 이 구성은 다음 예제와 같은 메시지를 생성합니다.

{
    "Timestamp": "2023-08-10T00:54:58.6572007Z", 
    "MessageType": "ua-deltaframe",
    "payload": {
      "temperature": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543129Z",
        "Value": 7109
      },
      "Tag 10": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543482Z",
        "Value": 7109
      }
    },
    "DataSetWriterName": "oven",
    "SequenceNumber": 4660
}