GetMetadataPropertyValue (Azure Stream Analytics)

Interroge les données d’entrée pour des propriétés spécifiques. Il existe trois types de propriétés : Adaptateur, Utilisateur et EventId unique.

Propriétés des métadonnées de l’adaptateur

Certaines propriétés spécifiques aux entrées sont accessibles par la fonction GetMetadataPropertyValue. En outre, toutes les propriétés sont accessibles en tant qu’enregistrement unique.

Notes

Pour le moment, cette fonction ne peut pas être testée sur le Portail Azure (elle retourne des résultats vides). Vous pouvez utiliser l’extension ASA pour Visual Studio Code pour tester cette fonction dans votre requête à l’aide de données actives.

Propriétés de métadonnées par défaut pour Event Hubs

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Offset
  • SequenceNumber
  • PartitionKey
  • Publisher, lorsqu’il est disponible dans l’événement entrant

Exemples :

Récupérez EventEnqueuedUtcTime à partir d’Event Hubs :

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

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

IoT Hub propriétés lorsqu’elles sont routées vers des points de terminaison Event Hubs

Lorsque vous utilisez IoT Hub fonctionnalité de routage vers des points de terminaison Event Hubs, les propriétés de métadonnées sont disponibles en lisant les propriétés à partir d’Event Hubs. Dans ce cas, les propriétés suivantes qui peuvent être récupérées :

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

Exemple : SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput

Les propriétés ajoutées via IoT Hub l’enrichissement des messages peuvent être récupérées via les propriétés utilisateur.

Propriétés de métadonnées par défaut pour IoT Hub

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • MessageId

  • ConnectionDeviceGenerationId

Exemples :

Récupérer EnqueuedTime à partir de IoT Hub :

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput

Propriétés de métadonnées par défaut pour l’entrée Blob :

  • BlobName
  • BlobLastModifiedUtcTime
  • PartitionId

Exemple SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

Propriétés de l’utilisateur

Une propriété utilisateur personnalisée appelée SenderClientId définie sur les messages EventHub/IoT/Blob entrants est rendue accessible à l’aide de GetMetadataPropertyValue, comme illustré dans l’exemple ci-dessous.

En outre, les propriétés de jumeau et les propriétés enrichies ajoutées à l’aide de IoT Hub’enrichissement de message, peuvent également être récupérées à l’aide de GetMetadataPropertyValue.

Exemples

Pour interroger à partir d’une entrée Event Hub,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

Pour interroger à partir d’une entrée IoT Hub,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Pour interroger à partir d’une entrée Blob,
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

Pour obtenir toutes les propriétés utilisateur en tant qu’enregistrement,

Pour Event Hub :
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

Pour IoT Hub :
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput

Pour l’entrée d’objet blob :
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Propriété EventId unique

La propriété EventId crée un ID unique (GUID) pour un événement d’entrée, ce qui peut être utile à des fins de clé primaire. EventId est cohérent (et non aléatoire) ; si vous revenez dans le temps et relisez le même événement d’entrée, Stream Analytics génère le même ID.

Exemple

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

Limitations et restrictions

GetMetadataPropertyValue présente les limitations d’utilisation suivantes :

  • L’utilisation SELECT * dans votre requête entraîne le doublon des colonnes. Pour éviter les colonnes en double, répertoriez les colonnes individuellement dans votre instruction SELECT.

  • L’alias que vous donnez à votre valeur de propriété de métadonnées sera en minuscules, quelle que soit la casse utilisée dans votre requête. Par exemple, SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey les sorties sous la forme eventprimarykey. Pour conserver la casse, utilisez le niveau de compatibilité 1.2.

  • Cette fonction ne fonctionne pas dans le volet Portail Azure aperçu des résultats, y compris les fonctions de requête de test.

  • Renommez les champs de charge utile origiale avant que les données arrivent à ASA. Le nom du champ de charge utile sera remplacé s’il est identique au nom du champ de métadonnées système.

  • MessageId et CorrelationId des métadonnées d’événement d’EventHub ne sont pas pris en charge.