다음을 통해 공유


메타데이터 속성 값 가져오기

✅ Azure Stream Analytics ✅ Fabric Eventstream

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

어댑터 메타데이터 속성

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

비고

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

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

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • 파티션ID
  • 상쇄
  • 순서번호
  • 파티션 키
  • 들어오는 이벤트에서 사용할 수 있는 경우 게시자

예제:

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

  • 메세지ID

  • ConnectionDeviceGenerationId

예제:

IoT Hub에서 EnqueuedTime을 검색합니다.

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

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

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

  • BlobName
  • BlobLastModifiedUtcTime
  • 파티션ID

예제 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)를 만듭니다. EventId는 일관성이 있습니다(임의가 아님). 시간을 거슬러 올라가 동일한 입력 이벤트를 다시 읽으면 Stream Analytics에서 동일한 ID를 생성합니다.

예시

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

한계 및 제한사항

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

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

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

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

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

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