Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Stream Analytics dispose d'une intégration de première classe avec les flux de données Azure comme entrées provenant de quatre types de ressources.
Ces ressources d’entrée peuvent se trouver dans le même abonnement Azure que votre travail Stream Analytics ou un autre abonnement.
Compression
Stream Analytics prend en charge la compression pour toutes les sources d’entrée. Les types de compression pris en charge sont : None, Gzip et Deflate. La prise en charge de la compression n’est pas disponible pour les données de référence. Si les données d’entrée sont des données Avro compressées, Stream Analytics le gère de manière transparente. Vous n’avez pas besoin de spécifier le type de compression avec la sérialisation Avro.
Créer, modifier ou tester les entrées
Vous pouvez utiliser le portail Azure, Visual Studio et Visual Studio Code pour ajouter et afficher ou modifier des entrées existantes sur votre travail de streaming. Vous pouvez également tester les connexions d’entrée et tester des requêtes à partir d’exemples de données à partir du portail Azure, Visual Studio et Visual Studio Code. Lorsque vous écrivez une requête, vous répertoriez l’entrée dans la clause FROM. Vous pouvez obtenir la liste des entrées disponibles à partir de la page Requête du portail. Si vous souhaitez utiliser plusieurs entrées, regroupez-les avec ou écrivez plusieurs requêtes .
Remarque
Nous vous recommandons vivement d’utiliser les outils Stream Analytics pour Visual Studio Code pour une expérience de développement locale optimale. Il existe des lacunes de fonctionnalités connues dans les outils Stream Analytics pour Visual Studio 2019 (version 2.6.3000.0) et elles ne seront pas améliorées à l'avenir.
Diffuser en continu des données depuis Event Hubs
Azure Event Hubs est un ingesteur d’événement de publication et d’abonnement hautement évolutif. Un concentrateur Event Hub peut collecter des millions d’événements par seconde afin que vous puissiez traiter et analyser les grandes quantités de données générées par vos appareils et applications connectés. Ensemble, Event Hubs et Stream Analytics peuvent fournir une solution complète pour des analyses en temps réel. Event Hubs vous permet d'alimenter les événements dans Azure en temps réel, et les tâches Stream Analytics peuvent traiter ces événements en temps réel. Par exemple, vous pouvez envoyer à Event Hubs des clics web, des lectures de capteurs ou des événements de journaux en ligne. Vous pouvez alors créer des travaux Stream Analytics afin d’utiliser Event Hubs pour les données d’entrée pour le filtrage, l’agrégation et la mise en corrélation en temps réel.
est l’horodatage de l’arrivée de l’événement dans un Event Hub et est l’horodatage par défaut des événements provenant d’Event Hubs dans Stream Analytics. Pour traiter les données en tant que flux à l’aide d’un horodatage dans la charge utile d’événement, vous devez utiliser le mot-clé TIMESTAMP BY.
Groupe de consommateurs Event Hubs
Vous devez configurer chaque entrée d’Event Hub afin qu’elle dispose de son propre groupe de consommateurs. Lorsqu’un travail contient une jointure réflexive ou plusieurs entrées, certaines entrées peuvent être lues par plusieurs lecteurs en aval. Cette situation a une incidence sur le nombre de lecteurs dans un groupe de consommateurs unique. Pour éviter de dépasser la limite des Event Hubs de cinq lecteurs par groupe de consommateurs par partition, il est recommandé de désigner un groupe de consommateurs pour chaque travail Stream Analytics. Il existe également une limite de 20 groupes de consommateurs pour un hub d'événements de la catégorie Standard. Pour plus d’informations, consultez Dépannage des sources de données Azure Stream Analytics.
Créer une entrée à partir d’Event Hubs
Le tableau suivant décrit chaque propriété dans la page New input dans le portail Azure pour diffuser en continu les entrées de données à partir d’un hub d’événements :
| Propriété | Descriptif |
|---|---|
| Alias d’entrée | Nom convivial que vous utilisez dans la requête du travail pour référencer cette entrée. |
| Abonnement | Choisissez l’abonnement Azure dans lequel la ressource Event Hub existe. |
| Espace de noms Event Hub | Un espace de noms Event Hubs sert de conteneur pour les Event Hubs. Lorsque vous créez un hub d'événements, vous créez également l’espace de noms. |
| Nom de l’Event Hub | Le nom du hub d'événements à utiliser comme entrée. |
| Groupe de consommateurs du hub d’événements (recommandé) | Nous vous recommandons d’utiliser un groupe de consommateurs différent pour chaque travail Stream Analytics. Cette chaîne identifie le groupe de consommateurs à utiliser pour ingérer les données du hub d’événements. Si aucun groupe de consommateurs n’est spécifié, le travail Stream Analytics utilise le groupe de consommateurs . |
| Mode d'authentification | Spécifiez le type de l’authentification que vous souhaitez utiliser pour vous connecter à Event Hub. Vous pouvez utiliser une connection string ou une identité managée pour vous authentifier auprès du hub d’événements. Pour l’option d’identité managée, vous pouvez créer une identité managée affectée par le système pour le travail Stream Analytics ou une identité managée affectée par l’utilisateur pour l’authentification auprès de l’Event Hub. Lorsque vous utilisez une identité managée, l’identité managée doit être membre des rôles de réception de données Azure Event Hubs ou de propriétaire de données Azure Event Hubs. |
| Nom de la stratégie du hub d’événements | Stratégie d’accès partagé qui permet d’accéder à Event Hubs. Chaque stratégie d’accès partagé a un nom, les autorisations que vous définissez ainsi que des clés d’accès. Cette option est automatiquement renseignée, sauf si vous sélectionnez l’option permettant de fournir manuellement les paramètres Event Hubs. |
| Clé de partition | Il s’agit d’un champ facultatif, disponible uniquement si votre travail est configuré pour utiliser le niveau de compatibilité 1.2 ou ultérieur. Si votre entrée est partitionnée par une propriété, vous pouvez ajouter le nom de cette propriété ici. Cela permet d’améliorer le niveau de performance de votre requête, si celle-ci comprend une clause ou pour cette propriété. Si ce travail utilise le niveau de compatibilité 1.2 ou ultérieur, la valeur par défaut de ce champ est |
| Format de sérialisation de l’événement | Format de sérialisation (JSON, CSV, Avro) du flux de données entrant. Vérifiez que le format JSON est conforme à la spécification et n’inclut pas de 0 au début des nombres décimaux. |
| Encodage | Pour le moment, UTF-8 est le seul format d’encodage pris en charge. |
| Type de compression d’événement | Type de compression utilisé pour lire le flux de données entrant, par exemple None (par défaut), Gzip ou Deflate. |
| Registre de schémas | Vous pouvez sélectionner le registre de schémas avec des schémas pour les données d’événement reçues d’Event Hub. |
Quand vos données proviennent d’une entrée de stream Event Hubs, vous avez accès aux champs de métadonnées suivants dans votre requête Stream Analytics :
| Propriété | Descriptif |
|---|---|
| EventProcessedUtcTime – Heure de traitement UTC de l'événement | La date et l’heure auxquelles Stream Analytics traite l’événement. |
| EventEnqueuedUtcTime | Date et heure auxquelles Event Hubs reçoit les événements. |
| IdentifiantDePartition | ID de partition de base zéro de l’adaptateur d’entrée. |
Par exemple, en utilisant ces champs, vous pouvez écrire une requête semblable à l’exemple suivant :
SELECT
EventProcessedUtcTime,
EventEnqueuedUtcTime,
PartitionId
FROM Input
Remarque
Lorsque vous utilisez Event Hubs comme point de terminaison pour IoT Hub Routes, vous pouvez accéder aux métadonnées IoT Hub à l’aide de la fonction GetMetadataPropertyValue.
Diffuser en continu des données à partir de IoT Hub
Azure IoT Hub est un ingesteur d’événements de publication-abonnement hautement évolutif optimisé pour les scénarios IoT.
L’horodatage par défaut des événements provenant d’un IoT Hub dans Stream Analytics est l’horodatage que l’événement est arrivé dans le IoT Hub, qui est EventEnqueuedUtcTime. Pour traiter les données en tant que flux à l’aide d’un horodatage dans la charge utile d’événement, vous devez utiliser le mot-clé TIMESTAMP BY.
Groupes de consommateurs du IoT Hub
Vous devez configurer chaque entrée Stream Analytics IoT Hub pour avoir son propre groupe de consommation. Lorsqu’un travail contient une jointure réflexive ou qu’il comporte plusieurs entrées, une entrée peut être lue par plusieurs lecteurs en aval. Cette situation a une incidence sur le nombre de lecteurs dans un groupe de consommateurs unique. Pour éviter de dépasser la limite Azure IoT Hub de cinq lecteurs par groupe de consommateurs par partition, il est recommandé de désigner un groupe de consommateurs pour chaque travail Stream Analytics.
Configurer un IoT Hub en tant qu’entrée de flux de données
Le tableau suivant décrit chaque propriété dans la page New input dans le portail Azure lorsque vous configurez un IoT Hub en tant qu’entrée de flux.
| Propriété | Descriptif |
|---|---|
| Alias d’entrée | Nom convivial que vous utilisez dans la requête du travail pour référencer cette entrée. |
| Abonnement | Choisissez l’abonnement dans lequel existe la ressource IoT Hub. |
| IoT Hub | Nom du IoT Hub à utiliser comme entrée. |
| Groupe de consommateurs | Nous vous recommandons d’utiliser un groupe de consommateurs différent pour chaque travail Stream Analytics. Le groupe de consommateurs est utilisé pour ingérer des données à partir du IoT Hub. Stream Analytics utilise le groupe de consommateurs $Default, sauf si vous spécifiez autre chose. |
| Nom de la stratégie d’accès partagé | Stratégie d’accès partagé qui fournit l’accès au IoT Hub. Chaque stratégie d’accès partagé a un nom, les autorisations que vous définissez ainsi que des clés d’accès. |
| Clé de la stratégie d’accès partagé | Clé d’accès partagé utilisée pour autoriser l’accès au IoT Hub. Cette option est automatiquement renseignée, sauf si vous sélectionnez l’option permettant de fournir manuellement les paramètres IoT Hub. |
| Point de terminaison | Point de terminaison de IoT Hub. |
| Clé de partition | Il s’agit d’un champ facultatif, disponible uniquement si votre travail est configuré pour utiliser le niveau de compatibilité 1.2 ou ultérieur. Si votre entrée est partitionnée par une propriété, vous pouvez ajouter le nom de cette propriété ici. Cela permet d’améliorer le niveau de performance de votre requête, si celle-ci comprend une clause PARTITION BY ou GROUP BY pour cette propriété. Si ce travail utilise le niveau de compatibilité 1.2 ou ultérieur, la valeur par défaut de ce champ est « PartitionId ». |
| Format de sérialisation de l’événement | Format de sérialisation (JSON, CSV, Avro) du flux de données entrant. Vérifiez que le format JSON est conforme à la spécification et n’inclut pas de 0 au début des nombres décimaux. |
| Encodage | Pour le moment, UTF-8 est le seul format d’encodage pris en charge. |
| Type de compression d’événement | Type de compression utilisé pour lire le flux de données entrant, par exemple None (par défaut), Gzip ou Deflate. |
Lorsque vous utilisez des données de flux à partir d’un IoT Hub, vous avez accès aux champs de métadonnées suivants dans votre requête Stream Analytics :
| Propriété | Descriptif |
|---|---|
| EventProcessedUtcTime | Date et heure du traitement de l'événement. |
| EventEnqueuedUtcTime | Date et heure auxquelles le IoT Hub reçoit l’événement. |
| PartitionId | ID de partition de base zéro de l’adaptateur d’entrée. |
| IoTHub.MessageId | ID utilisé pour mettre en corrélation la communication bidirectionnelle dans IoT Hub. |
| IoTHub.CorrelationId | ID utilisé dans les réponses aux messages et les commentaires dans IoT Hub. |
| IoTHub.ConnectionDeviceId | ID d’authentification utilisé pour envoyer ce message. Cette valeur est marquée sur les messages liés au service par le IoT Hub. |
| IoTHub.ConnectionDeviceGenerationId | ID de génération de l’appareil authentifié qui a été utilisé pour envoyer ce message. Cette valeur est marquée sur les messages entrants de service par le IoT Hub. |
| IoTHub.EnqueuedTime | Heure à laquelle le IoT Hub reçoit le message. |
Diffuser en continu des données à partir du stockage Blob ou du stockage Data Lake Gen2
Pour les scénarios nécessitant le stockage de grandes quantités de données non structurées dans le cloud, Azure Blob Storage ou Azure Data Lake Storage Gen2 offre une solution économique et évolutive. Les données dans le stockage Blob ou Azure Data Lake Storage Gen2 sont considérées comme des données au repos. Toutefois, ces données peuvent être traitées comme un flux de données par Stream Analytics.
Le traitement des journaux est un scénario couramment utilisé pour se servir des entrées avec Stream Analytics. Dans ce scénario, des fichiers de données de télémétrie sont capturés à partir d’un système et ils doivent être analysés et traités pour extraire des données significatives.
L’horodatage par défaut d’un stockage Blob ou d’un événement Azure Data Lake Storage Gen2 dans Stream Analytics est l’horodatage qu’il a été modifié pour la dernière fois, qui est BlobLastModifiedUtcTime. Si un objet blob est chargé sur un compte de stockage à 13:00 et que le travail de Azure Stream Analytics est démarré à l’aide de l’option Now à 13:01, il ne sera pas récupéré car son temps de modification se situe en dehors de la période d’exécution du travail.
Si un objet blob est chargé dans un conteneur de compte de stockage à 13:00 et que la tâche Azure Stream Analytics est démarrée en utilisant Custom Time à 13:00 ou avant, l'objet blob sera récupéré puisque son heure de modification se situe à l’intérieur de la période d’exécution de la tâche.
Si un travail Azure Stream Analytics est démarré à l’aide de Now à 13h00 et qu’un objet blob est chargé dans le conteneur de compte de stockage à 13h01, Azure Stream Analytics récupère l’objet blob. L’horodateur affecté à chaque blob est basé uniquement sur . Le dossier dans lequel se trouve le blob n’a aucune relation avec le horodatage assigné. Par exemple, s’il existe un blob avec une valeur de , ensuite le timestamp attribué à ce blob est .
Pour traiter les données en tant que flux à l’aide d’un horodatage dans la charge utile d’événement, vous devez utiliser le mot-clé TIMESTAMP BY. Un travail Stream Analytics extrait les données de l’entrée Stockage Blob Azure ou Azure Data Lake Storage Gen2 toutes les secondes si le fichier blob est disponible. Si le fichier blob n’est pas disponible, une temporisation exponentielle est appliquée avec un délai maximal de 90 secondes.
Remarque
Stream Analytics ne prend pas en charge l’ajout de contenu à un objet blob existant. Stream Analytics n’affiche chaque fichier qu’une seule fois, et toutes les modifications qui sont apportées à celui-ci, une fois que le travail a lu les données, ne sont pas traitées. Une meilleure pratique consiste à télécharger toutes les données d’un objet blob en une seule fois, puis d’ajouter les événements récents supplémentaires dans un fichier blob nouveau et différent.
Dans des scénarios où de nombreux blobs sont ajoutés en permanence, et où Stream Analytics traite les blobs à mesure qu’ils sont ajoutés, il est possible que certains blobs soient ignorés dans de rares cas en raison de la granularité de la valeur . Vous pouvez atténuer ce cas en téléchargeant les blobs à au moins deux secondes d’intervalle. Si cette option n’est pas possible, vous pouvez utiliser les Event Hubs pour diffuser en continu de grands volumes d’événements.
Configurer le stockage Blob en tant qu'entrée de flux
Le tableau suivant décrit chaque propriété dans la page New input dans le portail Azure lorsque vous configurez le stockage Blob en tant qu’entrée de flux.
| Propriété | Descriptif |
|---|---|
| Alias d’entrée | Nom convivial que vous utilisez dans la requête du travail pour référencer cette entrée. |
| Abonnement | Sélectionnez l’abonnement dans lequel se trouve la ressource de stockage. |
| Compte de stockage | Nom du compte de stockage dans lequel se trouvent les fichiers blob. |
| Clé du compte de stockage | Clé secrète associée au compte de stockage. Cette option est automatiquement renseignée, sauf si vous sélectionnez l’option pour indiquer manuellement les paramètres. |
| Conteneur | Les conteneurs fournissent un regroupement logique pour les blobs. Vous pouvez choisir l’option Utiliser un conteneur existant ou Créer pour en créer un. |
| Mode d'authentification | Spécifiez le type d’authentification que vous souhaitez utiliser pour vous connecter au compte de stockage. Vous pouvez utiliser une connection string ou une identité managée pour vous authentifier auprès du compte de stockage. Pour l’option d’identité managée, vous pouvez créer une identité managée affectée par le système pour le travail Stream Analytics ou une identité managée affectée par l’utilisateur pour s’authentifier auprès du compte de stockage. Lorsque vous utilisez une identité managée, cette identité managée doit être membre d’un rôle approprié sur le compte de stockage. |
| Modèle de chemin d’accès (facultatif) | Chemin du fichier utilisé pour localiser les blobs dans le conteneur spécifié. Si vous souhaitez lire des blobs à partir de la racine du conteneur, ne définissez pas de modèle de chemin. Dans le chemin d’accès, vous pouvez spécifier une ou plusieurs instances de l’une des trois variables suivantes : , ou Exemple 1 : Exemple 2 : Le caractère n’est pas une valeur autorisée pour le préfixe du chemin d’accès. Seuls les caractères blob Azure valides sont autorisés. N’incluez pas de noms de conteneurs ou de fichiers. |
| Format de date (facultatif) | Format de date suivant lequel les fichiers sont organisés si vous utilisez la variable de date dans le chemin. Exemple : Lorsque l’entrée de blob contient ou dans son chemin d’accès, les dossiers sont examinés dans l’ordre chronologique croissant. |
| Format d’heure (facultatif) | Format d’heure suivant lequel les fichiers sont organisés si vous utilisez la variable d’heure dans le chemin. Actuellement, la seule valeur possible est pour les heures. |
| Clé de partition | Il s’agit d’un champ facultatif, disponible uniquement si votre travail est configuré pour utiliser le niveau de compatibilité 1.2 ou ultérieur. Si votre entrée est partitionnée par une propriété, vous pouvez ajouter le nom de cette propriété ici. Cela permet d’améliorer le niveau de performance de votre requête, si celle-ci comprend une clause PARTITION BY ou GROUP BY pour cette propriété. Si ce travail utilise le niveau de compatibilité 1.2 ou ultérieur, la valeur par défaut de ce champ est « PartitionId ». |
| Nombre de partitions d’entrée | Ce champ est présent uniquement lorsque {partition} est utilisé dans le modèle de chemin d’accès. La valeur de cette propriété est un entier =1. Quel que soit l’emplacement où {partition} s’affiche dans pathPattern, un nombre compris entre 0 et la valeur de ce champ -1 est utilisé. |
| Format de sérialisation de l’événement | Format de sérialisation (JSON, CSV, Avro) du flux de données entrant. Vérifiez que le format JSON est conforme à la spécification et n’inclut pas de 0 au début des nombres décimaux. |
| Encodage | Pour CSV et JSON, UTF-8 est le seul format d’encodage actuellement pris en charge. |
| Compression | Type de compression utilisé pour lire le flux de données entrant, par exemple None (par défaut), Gzip ou Deflate. |
Si vos données proviennent d'une source de stockage Blob, vous avez accès aux champs de métadonnées suivants dans votre requête d'analyse de flux :
| Propriété | Descriptif |
|---|---|
| BlobName | Nom du blob d’entrée d’où provient l’événement. |
| EventProcessedUtcTime | La date et l’heure auxquelles Stream Analytics traite l’événement. |
| BlobLastModifiedUtcTime | Date et heure de la dernière modification apportée au blob. |
| PartitionId | ID de partition de base zéro de l’adaptateur d’entrée. |
Par exemple, en utilisant ces champs, vous pouvez écrire une requête semblable à l’exemple suivant :
SELECT
BlobName,
EventProcessedUtcTime,
BlobLastModifiedUtcTime
FROM Input
Diffuser des données à partir d’Apache Kafka
Azure Stream Analytics vous permet de vous connecter directement aux clusters Apache Kafka pour ingérer des données. La solution est de faible code et entièrement gérée par l’équipe Azure Stream Analytics chez Microsoft, ce qui lui permet de répondre aux normes de conformité métier. L’entrée Kafka est rétrocompatible et prend en charge toutes les versions, avec la dernière version du client à partir de la version 0.10. Les utilisateurs peuvent se connecter aux clusters Kafka dans un réseau virtuel, ainsi qu’aux clusters Kafka disposant d’un point de terminaison public, en fonction des configurations. La configuration s’appuie sur des conventions de configuration Kafka existantes. Les types de compression pris en charge sont None, Gzip, Snappy, LZ4 et Zstd.
Pour plus d'informations, consultez Transfert de données de Kafka vers Azure Stream Analytics (version préliminaire).