GetMetadataPropertyValue (Azure Stream Analytics)
Consulta datos de entrada para propiedades específicas. Hay tres tipos de propiedades: Adapter, User y Unique EventId.
Propiedades de metadatos del adaptador
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.
Propiedades de metadatos predeterminadas para Event Hubs
- EventEnqueuedUtcTime
- EventProcessedUtcTime
- PartitionId
- Offset
- SequenceNumber
- PartitionKey
- Publisher, cuando está disponible en el evento entrante
Ejemplos:
Recupere EventEnqueuedUtcTime de Event Hubs:
SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput
Para consultar todas las propiedades posibles relacionadas con el adaptador como un registro:
SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput
IoT Hub propiedades cuando se enrutan a puntos de conexión de Event Hubs
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.
Propiedades de metadatos predeterminadas para IoT Hub
ConnectionDeviceId
AuthMethod
AuthGenerationId
EnqueueTime
MessageSource
ConnectionModuleId
InterfaceName
CorrelationId
MessageId
ConnectionDeviceGenerationId
Ejemplos:
Recuperar EnqueuedTime de IoT Hub:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput
Para consultar todas las propiedades posibles relacionadas con el adaptador como un registro:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput
Propiedades de metadatos predeterminadas para la entrada de blob:
- BlobName
- BlobLastModifiedUtcTime
- PartitionId
Por ejemplo, SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput
Propiedades de usuario
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.
Ejemplos
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
Propiedad Unique EventId
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.
Ejemplo
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput
Limitaciones y restricciones
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.