Azure Stream Analytics의 Service Bus 토픽 출력

Service Bus 큐는 송신기에서 수신기로의 일대일 통신 방법을 제공합니다. Service Bus 토픽은 일대다 형식의 통신을 제공합니다.

다음 표에는 Service Bus 토픽 출력을 만들기 위한 속성 이름과 해당 설명이 나와 있습니다.

Property name Description
출력 별칭 쿼리에서 쿼리 출력을 이 Service Bus 토픽으로 보내는 데 사용되는 식별 이름입니다.
Service Bus 네임스페이스 메시징 엔터티 세트에 대한 컨테이너입니다. 새 이벤트 허브를 만들 때 Service Bus 네임스페이스도 만들었습니다.
주제 이름 토픽은 이벤트 허브 및 큐와 유사한 메시징 엔터티입니다. 디바이스 및 서비스에서 이벤트 스트림을 수집하도록 설계되었습니다. 토픽이 만들어지면 특정 이름도 지정됩니다. 구독이 만들어지지 않으면 토픽에 전송된 메시지를 사용할 수 없으므로 토픽에 하나 이상의 구독이 있는지 확인합니다.
토픽 정책 이름 Service Bus 토픽을 만들 때 토픽의 구성 탭에서 공유 액세스 정책을 만들 수도 있습니다. 각 공유 액세스 정책에는 이름, 사용자가 설정한 사용 권한 및 액세스 키가 있습니다.
토픽 정책 키 Service Bus 네임스페이스에 대한 액세스를 인증하는 데 사용되는 공유 액세스 키입니다.
이벤트 직렬화 형식 출력 데이터에 대한 직렬화 형식입니다. JSON, CSV 및 Avro를 지원합니다.
인코딩 CSV 또는 JSON 형식을 사용하는 경우 인코딩을 지정해야 합니다. 지금은 지원되는 인코딩 형식이 UTF-8뿐입니다.
구분 기호 CSV 직렬화에만 적용됩니다. Stream Analytics는 CSV 형식에서 데이터를 직렬화하기 위해 다양하고 일반적인 구분 기호를 지원합니다. 지원되는 값은 쉼표, 세미콜론, 공백, 탭 및 세로 막대입니다.
속성 열 선택 사항. 페이로드 대신 나가는 메시지의 사용자 속성으로 첨부해야 하는 쉼표로 구분된 열입니다. 이 기능에 대한 자세한 내용은 출력에 대한 사용자 지정 메타데이터 속성 섹션에 있습니다.
시스템 속성 열 선택 사항. 페이로드 대신 나가는 메시지에 첨부해야 하는 시스템 속성 및 해당 열 이름에 대한 키 값 쌍입니다.

파티션 수는 Service Bus SKU 및 크기에 따라 달라집니다. 파티션 키는 각 파티션에 대한 고유 정수 값입니다.

분할

분할이 자동으로 선택됩니다. 파티션 수는 Service Bus SKU 및 크기에 따라 달라집니다. 파티션 키는 각 파티션에 대한 고유 정수 값입니다. 출력 작성자의 수는 출력 항목의 파티션 수와 동일합니다.

출력 일괄 처리 크기

최대 메시지 크기는 표준 계층의 경우 메시지당 256KB이고 프리미엄 계층의 경우 메시지당 1MB입니다. 자세한 내용은 Service Bus 제한을 참조하세요. 최적화하려면 메시지당 단일 이벤트를 사용합니다.

출력에 대한 사용자 지정 메타데이터 속성

쿼리 열을 사용자 속성으로 나가는 메시지에 첨부할 수 있습니다. 이러한 열은 페이로드로 이동하지 않습니다. 속성은 출력 메시지에서 사전 형식으로 제공됩니다. 는 열 이름이고 은 속성 사전의 열 값입니다. 레코드 및 배열을 제외한 모든 Stream Analytics 데이터 형식이 지원됩니다.

다음 예제에서는 DeviceId 필드와 DeviceStatus 필드가 메타데이터에 추가됩니다.

  1. 다음 쿼리를 사용합니다.

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. 출력에서 DeviceId,DeviceStatus를 속성 열로 구성합니다.

    Property columns

다음 이미지는 Service Bus Explorer를 사용하여 EventHub에서 검사한 예상 출력 메시지 속성입니다.

Event custom properties

시스템 속성

쿼리 열을 시스템 속성으로 나가는 Service Bus 큐 또는 토픽 메시지에 첨부할 수 있습니다. 이러한 열은 페이로드에 포함되지 않으며 대신 해당 ServiceBusMessage 시스템 속성이 쿼리 열 값으로 채워집니다. 지원되는 시스템 속성은 MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc입니다.

이러한 열의 문자열 값은 해당 시스템 속성 값 형식으로 구문 분석되고, 구문 분석 실패는 데이터 오류로 처리됩니다. 이 필드는 JSON 개체 형식으로 제공됩니다. 이 형식에 대한 자세한 내용은 다음과 같습니다.

  • 중괄호 {}로 묶습니다.
  • 키/값 쌍으로 작성됩니다.
  • 키와 값은 문자열이어야 합니다.
  • 키는 시스템 속성 이름이고, 값은 쿼리 열 이름입니다.
  • 키와 값은 콜론으로 구분됩니다.
  • 각 키/값 쌍은 쉼표로 구분됩니다.

이 속성을 사용하는 방법은 다음과 같습니다.

  • 쿼리: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • 시스템 속성 열: { "MessageId": "column1", "PartitionKey": "column2"}

이는 Service Bus 큐 메시지에서 MessageIdcolumn1의 값으로 설정되고 PartitionKey가 column2의 값으로 설정됩니다.

다음 단계