Share via


Azure Stream Analytics의 Service Bus 큐 출력

Service Bus 큐는 FIFO 메시지 전송을 하나 이상의 경쟁 소비자에 제공합니다. 일반적으로 메시지는 큐에 추가된 시간 순서대로 수신기에서 수신되고 처리됩니다. 각 메시지는 하나의 메시지 소비자에서만 수신되고 처리됩니다.

호환성 수준 1.2에서 Azure Stream Analytics는 AMQP(고급 메시지 큐 프로토콜) 메시징 프로토콜을 사용하여 Service Bus 큐 및 토픽에 씁니다. AMQP를 사용하여 여러 플랫폼 간에 개방형 표준 프로토콜을 사용하는 하이브리드 애플리케이션을 빌드할 수 있습니다.

출력 구성

다음 표에는 큐 출력을 만들기 위한 속성 이름 및 해당 설명이 나와 있습니다.

Property name Description
출력 별칭 쿼리에서 쿼리 출력을 이 Service Bus 큐로 보내는 데 사용되는 식별 이름입니다.
Service Bus 네임스페이스 메시징 엔터티 세트에 대한 컨테이너입니다.
큐 이름 Service Bus 큐의 이름입니다.
큐 정책 이름 큐를 만들 때 큐의 구성 탭에서 공유 액세스 정책을 만들 수도 있습니다. 각 공유 액세스 정책에는 이름, 사용자가 설정한 사용 권한 및 액세스 키가 있습니다.
큐 정책 키 Service Bus 네임스페이스에 대한 액세스를 인증하는 데 사용되는 공유 액세스 키입니다.
이벤트 직렬화 형식 출력 데이터에 대한 직렬화 형식입니다. JSON, CSV 및 Avro를 지원합니다.
인코딩 CSV 및 JSON의 경우 UTF-8이 이번에만 지원되는 인코딩 형식입니다.
구분 기호 CSV 직렬화에만 적용됩니다. Stream Analytics는 CSV 형식에서 데이터를 직렬화하기 위해 다양하고 일반적인 구분 기호를 지원합니다. 지원되는 값은 쉼표, 세미콜론, 공백, 탭 및 세로 막대입니다.
형식 JSON 형식에만 적용됩니다. 줄로 구분됨은 각 JSON 개체를 새 줄로 구분된 형식의 출력이 되도록 지정합니다. 줄로 구분됨을 선택하는 경우 JSON에서 한 번에 하나의 개체를 읽습니다. 전체 콘텐츠 자체는 유효한 JSON이 아닙니다. 배열은 JSON 개체 배열 형식의 출력이 되도록 지정합니다.
속성 열 선택 사항. 페이로드 대신 나가는 메시지의 사용자 속성으로 첨부해야 하는 쉼표로 구분된 열입니다. 이 기능에 대한 자세한 내용은 출력에 대한 사용자 지정 메타데이터 속성 섹션에 있습니다.
시스템 속성 열 선택 사항. 페이로드 대신 나가는 메시지에 첨부해야 하는 시스템 속성 및 해당 열 이름에 대한 키 값 쌍입니다.

파티션 수는 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의 값으로 설정됩니다.

다음 단계