다음을 통해 공유


GetMetadataPropertyValue(Azure Stream Analytics)

특정 속성에 대한 입력 데이터를 쿼리합니다. 어댑터, 사용자 및 Unique EventId의 세 가지 속성 유형이 있습니다.

어댑터 메타데이터 속성

특정 입력 관련 속성은 GetMetadataPropertyValue 함수를 통해 액세스할 수 있습니다. 또한 모든 속성은 단일 레코드로 액세스할 수 있습니다.

참고

현재 이 함수는 Azure Portal 테스트할 수 없습니다(빈 결과를 반환함). Visual Studio Code ASA 확장을 사용하여 라이브 데이터를 사용하여 쿼리에서 이 함수를 테스트할 수 있습니다.

Event Hubs의 기본 메타데이터 속성

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Offset
  • SequenceNumber
  • PartitionKey
  • 게시자, 들어오는 이벤트에서 사용할 수 있는 경우

예:

Event Hubs에서 EventEnqueuedUtcTime을 검색합니다.

SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput

SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput

Event Hubs 엔드포인트로 라우팅할 때 속성 IoT Hub

Event Hubs 엔드포인트에 IoT Hub 라우팅 기능을 사용하는 경우 Event Hubs에서 속성을 읽어 메타데이터 속성을 사용할 수 있습니다. 이 경우 검색할 수 있는 다음 속성은 다음과 같습니다.

  • IoTConnectionDeviceId
  • IoTAuthMethod
  • IoTAuthGenerationId
  • IoTEnqueueTime
  • IoTMessageSource
  • IoTConnectionModuleId
  • IoTInterfaceName

예: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput

IoT Hub 메시지 보강을 통해 추가된 속성은 사용자 속성을 통해 검색할 수 있습니다.

IoT Hub 대한 기본 메타데이터 속성

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • MessageId

  • ConnectionDeviceGenerationId

예:

IoT Hub EnqueuedTime을 검색합니다.

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput

Blob 입력에 대한 기본 메타데이터 속성:

  • BlobName
  • BlobLastModifiedUtcTime
  • PartitionId

예제 SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

사용자 속성

들어오는 EventHub/IoT/Blob 메시지에 설정된 SenderClientId라는 사용자 지정 사용자 속성은 아래 예제와 같이 GetMetadataPropertyValue를 사용하여 액세스할 수 있습니다.

또한 IoT Hub 메시지 보강을 사용하여 추가된 트윈 속성 및 보강 속성은 GetMetadataPropertyValue를 사용하여 검색할 수도 있습니다.

예제

이벤트 허브 입력에서 쿼리하려면
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

IoT Hub 입력에서 쿼리하려면
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Blob 입력에서 쿼리하려면
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

모든 사용자 속성을 레코드로 가져오기 위해

이벤트 허브의 경우:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

IoT Hub의 경우:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput

Blob 입력의 경우:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Unique EventId 속성

EventId 속성은 입력 이벤트에 대한 고유 ID(Guid)를 만듭니다. 이 ID는 기본 키 용도로 유용할 수 있습니다. EventId는 일관성이 있습니다(임의가 아님). 시간을 거슬러 올라가 동일한 입력 이벤트를 다시 읽으면 Stream Analytics에서 동일한 ID를 생성합니다.

예제

SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput

제한 사항

GetMetadataPropertyValue에는 다음과 같은 사용 제한 사항이 있습니다.

  • 쿼리에서 를 사용하면 SELECT * 중복 열이 발생합니다. 중복 열을 방지하려면 SELECT 문에 열을 개별적으로 나열합니다.

  • 메타데이터 속성 값에 제공하는 별칭은 쿼리에 사용되는 대/소문자 구분에 관계없이 소문자입니다. 예를 들어 는 SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKeyeventprimarykey출력됩니다. 대/소문자 구분을 유지하려면 호환성 수준 1.2를 사용합니다.

  • 이 함수는 테스트 쿼리 함수를 포함하여 Azure Portal 미리 보기 결과 창에서 작동하지 않습니다.

  • 데이터가 ASA에 도착하기 전에 origial 페이로드 필드의 이름을 바꿉니다. 시스템 메타데이터 필드 이름과 동일한 경우 페이로드 필드 이름을 덮어씁니다.

  • EventHub 이벤트 메타데이터의 MessageId 및 CorrelationId는 지원되지 않습니다.