Compartir a través de


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

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

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 como eventprimarykey. 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.