Partager via


Sortie Event Hubs d’Azure Stream Analytics

Le service Azure Event Hubs est un ingesteur d’événements de publication et d’abonnement hautement évolutif. Il peut collecter des millions d’événements par seconde. L’une des utilisations d’un hub d’événements comme sortie est lorsque la sortie d’un travail Stream Analytics devient l’entrée d’un autre travail de streaming. Pour plus d’informations sur la taille maximale des messages et l’optimisation de la taille du lot, consultez la section Taille du lot de sortie .

Configuration de la sortie

Le tableau suivant présente les paramètres nécessaires pour configurer les flux de données à partir d’event hubs en tant que sortie.

Nom de la propriété Description
Alias de sortie Nom convivial utilisé dans les requêtes pour diriger la sortie de la requête vers ce hub d’événements.
Espace de noms du hub d’événements Conteneur pour un ensemble d’entités de messagerie. Lorsque vous avez créé un hub d’événements, vous avez également créé un espace de noms Event Hub.
Nom du hub d’événements Nom de votre sortie event Hub.
Nom de la stratégie Event Hub Stratégie d’accès partagé, que vous pouvez créer sous l’onglet Configurer du hub d’événements. Chaque stratégie d’accès partagé a un nom, des autorisations que vous définissez et des clés d’accès.
Clé de stratégie Event Hub Clé d’accès partagé utilisée pour authentifier l’accès à l’espace de noms event Hub.
Colonne clé de partition Optionnel. Colonne qui contient la clé de partition pour la sortie du hub d’événements.
Format de sérialisation de l’événement Format de sérialisation pour les données de sortie. JSON, CSV et Avro sont pris en charge.
Codage Pour CSV et JSON, UTF-8 est le seul format d’encodage pris en charge pour l’instant.
Délimiteur Applicable uniquement pour la sérialisation CSV. Stream Analytics prend en charge un certain nombre de délimiteurs courants pour sérialiser des données au format CSV. Les valeurs prises en charge sont des virgules, des points-virgules, de l’espace, de l’onglet et de la barre verticale.
Format Applicable uniquement pour la sérialisation JSON. Ligne séparée spécifie que la sortie est mise en forme en ayant chaque objet JSON séparé par une nouvelle ligne. Si vous sélectionnez Ligne séparée, le JSON est lu un objet à la fois. Tout le contenu lui-même ne serait pas un JSON valide. Le tableau spécifie que la sortie est mise en forme en tant que tableau d’objets JSON.
Colonnes de propriétés Optionnel. Colonnes séparées par des virgules qui doivent être jointes en tant que propriétés utilisateur du message sortant au lieu de la charge utile. Pour plus d’informations sur cette fonctionnalité, consultez la section Propriétés de métadonnées personnalisées pour la sortie.

Partitionnement

Le partitionnement varie en fonction de l’alignement de la partition. Lorsque la clé de partition pour la sortie du hub d’événements est également alignée avec l’étape de requête en amont (précédente), le nombre d’enregistreurs est identique au nombre de partitions dans la sortie du hub d’événements. Chaque enregistreur utilise la classe EventHubSender pour envoyer des événements à la partition spécifique. Lorsque la clé de partition pour la sortie du hub d’événements n’est pas alignée avec l’étape de requête en amont (précédente), le nombre d’enregistreurs est identique au nombre de partitions de cette étape précédente. Chaque enregistreur utilise la classe SendBatchAsync dans EventHubClient pour envoyer des événements à toutes les partitions de sortie.

Taille du lot de sortie

La taille maximale du message est de 256 Ko ou 1 Mo par message. Pour plus d’informations, consultez les limites d’Event Hubs. Lorsque le partitionnement d’entrée/sortie n’est pas aligné, chaque événement est emballé individuellement EventData et envoyé dans un lot pouvant atteindre la taille maximale du message. Cela se produit également si les propriétés de métadonnées personnalisées sont utilisées. Lorsque le partitionnement d’entrée/sortie est aligné, plusieurs événements sont empaquetés dans une seule EventData instance, jusqu’à la taille maximale du message et envoyées.

Propriétés de métadonnées personnalisées pour la sortie

Vous pouvez attacher des colonnes de requête en tant que propriétés utilisateur à vos messages sortants. Ces colonnes ne sont pas entrées dans la charge utile. Les propriétés sont présentes sous la forme d’un dictionnaire sur le message de sortie. La clé est le nom de colonne et la valeur de la colonne dans le dictionnaire de propriétés. Tous les types de données Stream Analytics sont pris en charge, à l’exception de l’enregistrement et du tableau.

Dans l’exemple suivant, les champs DeviceId et DeviceStatus sont ajoutés aux métadonnées.

  1. Utilisez la requête suivante :

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Configurez DeviceId,DeviceStatus en tant que colonnes de propriété dans la sortie.

    Colonnes de propriétés

L’image suivante est des propriétés de message de sortie attendues inspectées dans un hub d’événements à l’aide de Service Bus Explorer.

Propriétés personnalisées d’événement

Exactement une fois la livraison

Une fois la remise prise en charge dans la sortie Event Hubs par défaut. Quelle que soit votre entrée, Stream Analytics ne garantit aucune perte de données ni aucun doublon dans une sortie Event Hubs, entre les redémarrages initiés par l’utilisateur à partir de la dernière heure de sortie, ce qui empêche les doublons d’être générés. Cela simplifie considérablement le pipeline de diffusion en continu en n’ayant pas à surveiller, implémenter et résoudre les problèmes de logique de déduplication.

Étapes suivantes