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 не поддерживаются.