0

Je travaille sur une solution analytique IoT qui consomme des messages au format Avro envoyés sur un Azure IoT Hub et qui utilise (espérons-le) Stream Analytics pour stocker des messages dans Data Lake et BLOB. Une exigence clé est que les conteneurs Avro doivent apparaître exactement les mêmes dans le stockage que lorsqu'ils ont été présentés au Hub IoT, pour le bénéfice des consommateurs en aval.Stream Analytics: Chemin de sortie dynamique basé sur la charge utile des messages

Je rencontre une limitation dans Stream Analytics avec un contrôle granulaire sur la création de fichiers individuels. Lors de la configuration d'un nouveau chemin de flux de sortie, je ne peux fournir que la date/jour et l'heure dans le préfixe de chemin, ce qui donne un fichier pour chaque heure au lieu d'un fichier pour chaque message reçu. Le client requiert des conteneurs blob séparés pour chaque périphérique et des blobs séparés pour chaque événement. De même, l'exigence Data Lake impose au moins une convention de dénomination saine qui est délimitée par le périphérique, avec des fichiers distincts pour chaque événement ingéré.

Est-ce que quelqu'un a configuré avec succès Stream Analytics pour créer un nouveau fichier chaque fois qu'il sort un message de l'entrée? Est-ce une limitation de produit difficile?

Répondre

1

Stream Analytics est en effet orienté pour un traitement efficace des flux importants. Pour votre cas d'utilisation, vous avez besoin d'un composant supplémentaire pour implémenter votre logique personnalisée. L'analyse de flux peut être affichée sur Blob, Event Hub, Table Store ou Service Bus. Une autre option consiste à utiliser le nouveau Iot Hub Routes pour acheminer directement vers un concentrateur d'événements ou une file d'attente ou un sujet de bus de service. De là, vous pouvez écrire un Azure Function (ou, à partir de Blob ou Table Storage, un custom Data Factory activity) et utiliser le Data Lake Store SDK pour écrire des fichiers avec la logique dont vous avez besoin.

+0

Merci Alexandre, c'est effectivement ce que nous avons fini par faire. Nous utilisons déjà des routes pour séparer les catégories de messages générales en fonction d'une propriété de type, mais cela aurait été un peu excessif avec des millions de cibles. Le client était prêt à se pencher sur l'ingestion initiale, nous allons donc directement au stockage, puis en tirant parti de l'ADF. –