Partager via


GetMetadataPropertyValue

✅ Azure Stream Analytics ✅ Fabric Eventstream

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 à l’entrée sont accessibles par la fonction GetMetadataPropertyValue. En outre, toutes les propriétés sont accessibles en tant qu’enregistrement unique.

Remarque

À ce stade, 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
  • Identifiant de Partition
  • Compenser
  • Numéro de séquence
  • Clé de partition
  • Publisher, lorsqu’il est disponible dans l’événement entrant

Exemples:

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

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

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

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

Lors de l’utilisation de la fonctionnalité de routage IoT Hub vers les 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 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 l’enrichissement des messages IoT Hub 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

  • Identifiant de message

  • ConnectionDeviceGenerationId

Exemples:

Récupérer EnqueuedTime à partir d’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 d’objet blob :

  • BlobName
  • BlobLastModifiedUtcTime
  • Identifiant de Partition

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

Propriétés utilisateur

Une propriété utilisateur personnalisée appelée SenderClientId set 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 l’enrichissement des messages IoT Hub 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 d’objet 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

Unique EventId, propriété

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

Exemple :

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

Limitations et restrictions

GetMetadataPropertyValue présente les limitations suivantes de l’utilisation :

  • L’utilisation SELECT * dans votre requête provoque des colonnes dupliquées. Pour empêcher les colonnes en double, répertoriez les colonnes individuellement dans votre instruction SELECT.

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

  • Cette fonction ne fonctionne pas dans le volet de résultats de la préversion du portail Azure, 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 est 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.