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
Pour interroger toutes les propriétés possibles liées à l’adaptateur en tant qu’enregistrement :
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
Pour interroger toutes les propriétés possibles liées à l’adaptateur en tant qu’enregistrement :
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 formeeventprimarykey
. 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.