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.
Cet article décrit les problèmes courants liés aux connexions d’entrée Azure Stream Analytics, comment résoudre ces problèmes et comment les corriger. Les problèmes abordés couvrent notamment les erreurs de désérialisation causées par des événements mal formés, les limites des récepteurs Event Hubs, les modifications du nombre de partitions et les limites des lecteurs IoT Hub.
De nombreuses étapes de dépannage nécessitent d’activer les journaux de ressources pour votre tâche Stream Analytics. Si vous n'avez pas activé les journaux de ressources, consultez Résoudre les problèmes Azure Stream Analytics à l'aide des journaux de ressources.
Le travail ne reçoit pas d’événements d’entrée
Vérifiez votre connectivité aux entrées et sorties. Utilisez le bouton Tester la connexion pour chaque entrée et sortie.
Examinez vos données d’entrée :
Utilisez le bouton Exemples de données pour chaque entrée. Téléchargez les exemples de données d’entrée.
Inspectez les exemples de données pour comprendre le schéma et les types de données.
Vérifiez les métriques Azure Event Hubs afin de vérifier que les événements sont bien envoyés. Les métriques de message doivent être supérieures à zéro si Event Hubs reçoit des messages.
Vérifiez que vous avez sélectionné un intervalle de temps dans l’aperçu d’entrée. Choisissez Sélectionner un intervalle de temps, puis entrez un exemple de durée avant de tester votre requête.
Important
Pour Azure Stream Analytics travaux qui ne sont pas injectés sur le réseau, ne vous fiez pas à l'adresse IP source des connexions provenant de Stream Analytics de quelque manière que ce soit. Elles peuvent être des adresses IP publiques ou privées, en fonction des opérations d’infrastructure de service qui se produisent de temps à autre.
Les événements d’entrée mal formés provoquent des erreurs de désérialisation
Des problèmes de désérialisation se produisent lorsque le flux d’entrée de votre travail Stream Analytics contient des messages mal formés. Par exemple, une parenthèse ou une accolades manquantes dans un objet JSON, ou un format d’horodatage incorrect dans le champ de temps, peut entraîner un message mal formé.
Lorsqu’un travail Stream Analytics reçoit un message mal formé à partir d’une entrée, il supprime le message et vous avertit d’un avertissement. Un symbole d’avertissement apparaît sur la vignette Entrées de votre travail Stream Analytics. Le symbole d’avertissement s’affiche tant que la tâche est en cours d’exécution.
Activez les journaux de ressources pour afficher les détails de l’erreur et le message (charge utile) qui a provoqué l’erreur. Il existe plusieurs raisons pour lesquelles des erreurs de désérialisation peuvent se produire. Pour plus d’informations sur les erreurs de désérialisation spécifiques, consultez les erreurs de données d’entrée. Si les journaux des ressources ne sont pas activés, une brève notification s'affiche dans le portail Azure.
Si la charge utile du message est supérieure à 32 Ko ou est au format binaire, exécutez le code CheckMalformedEvents.cs disponible dans le référentiel d’exemples GitHub. Ce code lit l’ID de la partition et le décalage, puis imprime les données situées dans ce décalage.
D’autres raisons courantes pour les erreurs de désérialisation d’entrée sont les suivantes :
- Colonne entière dont la valeur est supérieure à
9223372036854775807. - Chaînes au lieu d’un tableau d’objets ou d’objets séparés par des lignes. Exemple valide :
[{'a':1}]. Exemple non valide :"'a' :1". - Un blob de capture Event Hubs au format Avro utilisé comme source d’entrée pour votre tâche.
- Deux colonnes dans un même événement d’entrée qui ne diffèrent que par la casse, par exemple
column1etCOLUMN1.
Modifications du nombre de partitions du hub d’événements
Lorsque le nombre de partitions d’un hub d’événements change pendant qu’un travail Stream Analytics est en cours d’exécution, le travail échoue avec l’erreur suivante :
Microsoft.Streaming.Diagnostics.Exceptions.InputPartitioningChangedException
Pour résoudre ce problème, arrêtez et redémarrez le travail Stream Analytics afin qu’il puisse détecter le nouveau nombre de partitions.
La tâche dépasse le nombre maximal de récepteurs Event Hubs autorisé
Une bonne pratique pour utiliser Event Hubs consiste à utiliser plusieurs groupes de consommateurs pour la mise à l’échelle des travaux. Le nombre de lecteurs pour une entrée donnée dans la tâche Stream Analytics influe sur le nombre de lecteurs dans un seul groupe de consommateurs.
Le nombre précis de récepteurs dépend des détails de l’implémentation interne de la logique de la topologie scale-out. Le nombre n’est pas exposé en externe. Le nombre de lecteurs peut changer lorsqu’un travail démarre ou est mis à niveau.
Le message d’erreur suivant s’affiche lorsque le nombre de récepteurs dépasse le maximum. Le message inclut une liste des connexions existantes à Event Hubs sous un groupe de consommateurs. La balise AzureStreamAnalytics indique que les connexions proviennent d’un service de diffusion en continu Azure.
The streaming job failed: Stream Analytics job has validation errors: Job will exceed the maximum amount of Event Hubs Receivers.
The following information may be helpful in identifying the connected receivers: Exceeded the maximum number of allowed receivers per partition in a consumer group which is 5. List of connected receivers –
AzureStreamAnalytics_a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1_1,
AzureStreamAnalytics_a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1_1,
AzureStreamAnalytics_a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1_1,
AzureStreamAnalytics_a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1_1,
AzureStreamAnalytics_a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1_1.
Note
Lorsque le nombre de lecteurs change pendant la mise à niveau d’une tâche, des avertissements transitoires sont consignés dans les journaux d’audit. Les travaux Stream Analytics récupèrent automatiquement à partir de ces problèmes temporaires.
Pour ajouter un nouveau groupe de consommateurs dans votre instance Event Hubs, procédez comme suit :
Connectez-vous au portail Azure.
Localisez votre hub d’événements.
Sous le titre Entités , sélectionnez Event Hubs.
Sélectionnez le hub d’événements par nom.
Dans la page Instance Event Hubs , sous l’en-tête Entités , sélectionnez Groupes de consommateurs. Un groupe de consommateurs portant le nom $Default est répertorié.
Sélectionnez + Groupe de consommateurs pour ajouter un nouveau groupe de consommateurs.
Lorsque vous avez créé l’entrée dans le travail Stream Analytics pour pointer vers le hub d’événements, vous avez spécifié le groupe de consommateurs là-bas. Event Hubs utilise $Default si aucun groupe de consommateurs n’est spécifié. Après avoir créé un groupe de consommateurs, modifiez l’entrée du hub d’événements dans le travail Stream Analytics et spécifiez le nom du nouveau groupe de consommateurs.
Les lecteurs par partition dépassent la limite Event Hubs
Si votre syntaxe de requête de diffusion en continu fait référence à la même ressource pour l’entrée event Hub plusieurs fois, le moteur de travail peut utiliser plusieurs lecteurs par requête à partir de ce même groupe de consommateurs. Lorsqu’il y a trop de références au même groupe de consommateurs, la tâche peut dépasser la limite de cinq et générer une erreur. Dans ce cas, vous pouvez subdiviser davantage en utilisant plusieurs entrées réparties sur plusieurs groupes de consommateurs.
Les scénarios dans lesquels le nombre de lecteurs par partition dépasse la limite Event Hubs de cinq sont les suivants :
Instructions multiples
SELECT: si vous utilisez plusieursSELECTinstructions qui font référence à la même entrée event Hub, chaqueSELECTinstruction entraîne la création d’un nouveau récepteur.UNION: lorsque vous utilisezUNION, il est possible d’avoir plusieurs entrées qui font référence au même hub d’événements et au même groupe de consommateurs.SELF JOIN: lorsque vous utilisez uneSELF JOINopération, il est possible de faire référence au même hub d’événements plusieurs fois.
Les meilleures pratiques suivantes peuvent aider à atténuer les scénarios dans lesquels le nombre de lecteurs par partition dépasse la limite Event Hubs de cinq.
Fractionner votre requête en plusieurs étapes à l’aide d’une clause WITH
La WITH clause spécifie un jeu de résultats nommé temporaire qu’une FROM clause de la requête peut référencer. Vous définissez la WITH clause dans l’étendue d’exécution d’une seule SELECT instruction.
Par exemple, au lieu de cette requête :
SELECT foo
INTO output1
FROM inputEventHub
SELECT bar
INTO output2
FROM inputEventHub
…
Utilisez cette requête :
WITH data AS (
SELECT * FROM inputEventHub
)
SELECT foo
INTO output1
FROM data
SELECT bar
INTO output2
FROM data
…
Assurez-vous que les entrées sont associées à différents groupes de consommateurs
Pour les requêtes dans lesquelles trois entrées ou plus sont connectées au même groupe de consommateurs Event Hubs, créez des groupes de consommateurs distincts. Cette tâche nécessite la création d’entrées Stream Analytics supplémentaires.
Créer des entrées distinctes avec différents groupes de consommateurs
Vous pouvez créer des entrées distinctes avec différents groupes de consommateurs pour le même hub d’événements. Dans l’exemple suivant d’une UNION requête, InputOne et InputTwo font référence à la même source Event Hubs. Toute requête peut avoir des entrées distinctes avec différents groupes de consommateurs. La UNION requête n’est qu’un seul exemple.
WITH
DataOne AS
(
SELECT * FROM InputOne
),
DataTwo AS
(
SELECT * FROM InputTwo
),
SELECT foo FROM DataOne
UNION
SELECT foo FROM DataTwo
Les lecteurs par partition dépassent la limite de IoT Hub
Les travaux d’analyse de flux utilisent le point de terminaison intégré compatible avec Event Hubs dans Azure IoT Hub pour se connecter à IoT Hub et en lire les événements. Si vos lecteurs par partition dépassent les limites de IoT Hub, vous pouvez utiliser les solutions pour Event Hubs afin de résoudre le problème. Vous pouvez créer un groupe de consommateurs pour le point de terminaison intégré par le biais de la session de point de terminaison du portail IoT Hub ou via le Kit de développement logiciel (SDK) IoT Hub.
Obtenir de l’aide
Pour obtenir de l’aide supplémentaire, essayez la page Q&A Microsoft pour Azure Stream Analytics.
Étapes suivantes
- Présentation d’Azure Stream Analytics
- Analyser les données d’appel frauduleuses avec Stream Analytics et visualiser les résultats dans un tableau de bord Power BI
- Mettre à l’échelle un job Azure Stream Analytics pour augmenter le débit
- Références sur le langage des requêtes d'Azure Stream Analytics
- API REST de gestion Azure Stream Analytics