Поделиться через


GetMetadataPropertyValue (Azure Stream Analytics)

Запрашивает входные данные для определенных свойств. Существует три типа свойств: Adapter, User и Unique EventId.

Свойства метаданных адаптера

Некоторые свойства, относящиеся к входным данным, доступны с помощью функции GetMetadataPropertyValue. Кроме того, доступ ко всем свойствам можно получить как к одной записи.

Примечание

В настоящее время эту функцию нельзя протестировать на портал Azure (она возвращает пустые результаты). Вы можете использовать расширение ASA для Visual Studio Code, чтобы протестировать эту функцию в запросе с помощью динамических данных.

Свойства метаданных по умолчанию для Центров событий

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Offset
  • SequenceNumber
  • PartitionKey
  • Publisher, если он доступен во входящем событии

Примеры:

Получение EventEnqueuedUtcTime из Центров событий:

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

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

Центр Интернета вещей свойства при маршрутизации в конечные точки Центров событий

При использовании функции маршрутизации Центр Интернета вещей к конечным точкам Центров событий свойства метаданных будут доступны при чтении свойств из Центров событий. В этом случае можно получить следующие свойства:

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

Пример: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput

Свойства, добавленные с помощью Центр Интернета вещей обогащение сообщений, можно получить с помощью свойств пользователя.

Свойства метаданных по умолчанию для Центр Интернета вещей

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • MessageId

  • ConnectionDeviceGenerationId

Примеры:

Получение 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.

Свойства пользователя

Пользовательское свойство пользователя с именем SenderClientId, заданное для входящих сообщений EventHub,IoT/Blob, становится доступным с помощью GetMetadataPropertyValue, как показано в примере ниже.

Кроме того, свойства двойника и обогащенные свойства, добавленные с помощью Центр Интернета вещей обогащения сообщений, также можно получить с помощью GetMetadataPropertyValue.

Примеры

Чтобы выполнить запрос из входных данных концентратора событий, выполните
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

Чтобы выполнить запрос из входных данных Центр Интернета вещей, выполните
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Чтобы выполнить запрос из входных данных большого двоичного объекта, выполните
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

Чтобы получить все свойства пользователя в виде записи, выполните следующие действия:

Для концентратора событий:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

Для Центра Интернета вещей:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput

Для входных данных BLOB-объектов:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Уникальное свойство EventId

Свойство EventId создает уникальный идентификатор (Guid) для события ввода, который может быть полезен для первичного ключа. EventId является согласованным (не случайным); Если вернуться во времени и повторно прочитать то же событие ввода, Stream Analytics создаст тот же идентификатор.

Пример

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

Ограничения

GetMetadataPropertyValue имеет следующие ограничения использования:

  • Использование SELECT * в запросе приводит к дублированию столбцов. Чтобы предотвратить дублирование столбцов, перечисляйте столбцы по отдельности в инструкции SELECT.

  • Псевдоним, который вы присваиваете значению свойства метаданных, будет иметь нижний регистр независимо от регистра, используемого в запросе. Например, SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey выводит как eventprimarykey. Чтобы сохранить регистр, используйте уровень совместимости 1.2.

  • Эта функция не работает в области результатов предварительного просмотра портал Azure, включая функции тестового запроса.

  • Переименуйте поля полезных данных origial до поступления данных в ASA. Имя поля полезных данных будет перезаписано, если оно совпадает с именем поля системных метаданных.

  • MessageId и CorrelationId метаданных событий EventHub не поддерживаются.