GetMetadataPropertyValue (Azure Stream Analytics)
Consulta datos de entrada para propiedades específicas. Hay tres tipos de propiedades: Adapter, User y Unique EventId.
La función GetMetadataPropertyValue puede acceder a determinadas propiedades específicas de entrada. Además, se puede tener acceso a todas las propiedades como un único registro.
Nota
En este momento, esta función no se puede probar en el Azure Portal (devolverá resultados vacíos). Puede usar la extensión ASA para Visual Studio Code para probar esta función en la consulta mediante datos activos.
- EventEnqueuedUtcTime
- EventProcessedUtcTime
- PartitionId
- Offset
- SequenceNumber
- PartitionKey
- Publisher, cuando está disponible en el evento entrante
SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput
SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput
Al usar IoT Hub característica de enrutamiento a puntos de conexión de Event Hubs, las propiedades de metadatos estarán disponibles mediante la lectura de propiedades de Event Hubs. En este caso, se pueden recuperar las siguientes propiedades:
- IoTConnectionDeviceId
- IoTAuthMethod
- IoTAuthGenerationId
- IoTEnqueueTime
- IoTMessageSource
- IoTConnectionModuleId
- IoTInterfaceName
Ejemplo: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput
Las propiedades agregadas a través de IoT Hub enriquecimiento de mensajes se pueden recuperar mediante propiedades de usuario.
ConnectionDeviceId
AuthMethod
AuthGenerationId
EnqueueTime
MessageSource
ConnectionModuleId
InterfaceName
CorrelationId
MessageId
ConnectionDeviceGenerationId
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput
- BlobName
- BlobLastModifiedUtcTime
- PartitionId
Por ejemplo, SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput
Se puede acceder a una propiedad de usuario personalizada denominada SenderClientId establecida en los mensajes entrantes de EventHub/IoT/Blob mediante GetMetadataPropertyValue, como se muestra en el ejemplo siguiente.
Además, las propiedades gemelas y las propiedades enriquecidas agregadas mediante el enriquecimiento de mensajes IoT Hub también se pueden recuperar mediante GetMetadataPropertyValue.
Para consultar desde una entrada del centro de eventos,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput
Para consultar desde una entrada de IoT Hub,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput
Para consultar desde una entrada de blob,
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput
Para obtener todas las propiedades de usuario como un registro,
Para el centro de eventos:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput
En el caso de IoT Hub:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput
Para la entrada de blob:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput
La propiedad EventId crea un identificador único (Guid) para un evento de entrada, que puede ser útil para fines de clave principal. EventId es coherente (no aleatorio); Si vuelve al tiempo y vuelve a leer el mismo evento de entrada, Stream Analytics generará el mismo identificador.
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput
GetMetadataPropertyValue tiene las siguientes limitaciones de uso:
El uso
SELECT *
de en la consulta provoca columnas duplicadas. Para evitar columnas duplicadas, enumere las columnas individualmente en la instrucción SELECT.El alias que asigne al valor de la propiedad metadata estará en minúsculas, independientemente del uso de mayúsculas y minúsculas en la consulta. Por ejemplo,
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey
genera comoeventprimarykey
. Para conservar el uso de mayúsculas y minúsculas, use el nivel de compatibilidad 1.2.Esta función no funciona en el panel de resultados de Azure Portal vista previa, incluidas las funciones de consulta de prueba.
Cambie el nombre de los campos de carga origial antes de que los datos lleguen a ASA. El nombre del campo de carga se sobrescribirá si es el mismo que el nombre del campo de metadatos del sistema.
MessageId y CorrelationId de los metadatos de eventos de EventHub no se admiten.