Partager via


Analyser Protobuf dans Azure Stream Analytics

Azure Stream Analytics prend en charge le traitement des événements dans les formats de données de tampon de protocole (Protobuf). Vous pouvez utiliser le désérialiseur Protobuf intégré pour configurer vos entrées. Pour utiliser le désérialiseur intégré, spécifiez le fichier de définition Protobuf et le style de préfixe.

Remarque

Azure Stream Analytics ne prend pas en charge le registre de schémas pour les formats de données de tampon de protocole (Protobuf).

Étapes de configuration d’un travail Stream Analytics

Pour configurer votre travail Stream Analytics afin de désérialiser des événements dans Protobuf :

  1. Une fois créé votre travail Stream Analytics, sélectionnez Entrées.

  2. Sélectionnez Ajouter une entrée et sélectionnez l’entrée que à configurer pour ouvrir le panneau de configuration d’entrée.

  3. Sélectionnez le format de sérialisation des événements pour afficher une liste déroulante, puis sélectionnez Protobuf.

     Capture d’écran montrant les sélections de configuration de Protobuf pour un travail Azure Stream Analytics.

  4. Terminez la configuration en utilisant les instructions suivantes :

    Nom de la propriété Description
    Fichier de définition Protobuf Fichier qui spécifie la structure et les types de données de vos événements Protobuf
    Type de message Type de message que vous souhaitez désérialiser
    Style de préfixe Paramètre qui détermine la longueur d’un message afin de désérialiser correctement les événements Protobuf

     Capture d’écran montrant les zones d’entrée dans le volet de configuration d’un travail Azure Stream Analytics, après avoir sélectionné Protobuf comme format de sérialisation des événements.

Pour en savoir plus sur les types de données Protobuf, consultez la documentation officielle des tampons de protocole.

Limites

  • Le désérialiseur Protobuf prend un seul fichier de définition Protobuf à la fois. Les importations dans des fichiers de définition Protobuf personnalisés ne sont pas prises en charge. Par exemple :

     Capture d’écran montrant un exemple de fichier de définition Protobuf personnalisé.

    Ce fichier de définition Protobuf référence un autre fichier de définition Protobuf dans ses importations. Comme le désérialiseur Protobuf a seulement le fichier de définition Protobuf actuel et ne sait pas ce qu’est carseat.proto, il ne peut pas désérialiser correctement.

  • Quand un fichier de définition Protobuf contient un espace de noms ou un package, le type de message doit l’inclure. Par exemple :

     Capture d’écran montrant un exemple de fichier de définition Protobuf avec un espace de noms.

    Dans le désérialiseur Protobuf du portail, le type de message doit être Namespacetest.Volunteer au lieu du Volunteer habituel.

  • Si le package ou l’espace de noms d’origine est en majuscules ou en minuscules, le type de message doit l’inclure avec le premier caractère du package ou de l’espace de noms en majuscule. Par exemple, si l’espace de noms est nameSpaceTest, utilisez nameSpaceTest.Volunteer. Cette règle s’applique à un type de message sans espace de noms ou package.

  • Vous devez spécifier votre message dans votre fichier de définition protobuf sans le mot clé Optional. Dans Proto 3, tous les champs sont facultatifs. Par exemple :

    Capture d’écran montrant un exemple de fichier de définition Protobuf avec un mot-clé optionnel dans le message.

    Ce fichier de définition Protobuf affiche un message qui a le mot clé Optional. Pour désérialiser correctement, vous devez supprimer le mot clé :

    Capture d’écran montrant un exemple de fichier de définition Protobuf sans un mot-clé optionnel dans le message.

  • Pendant l’envoi de messages sérialisés avec google.protobuf, le type de préfixe doit être défini sur base128, car c’est le type le plus compatible.

  • Les messages de service ne sont pas pris en charge dans les désérialiseurs Protobuf. Votre travail lève une exception si vous tentez d’utiliser un message de service. Par exemple :

     Capture d’écran montrant un exemple de message de service.

  • Certains types de données ne sont pas pris en charge :

    • Any
    • One of (lié aux énumérations)
    • Durations
    • Struct
    • Field Mask (non pris en charge par protobuf-net)
    • List Value
    • Value
    • Null Value
    • Empty

Remarque

Pour obtenir de l’aide directe sur l’utilisation du désérialiseur Protobuf, envoyez un e-mail à askasa@microsoft.com.

Voir aussi

Types de données dans Azure Stream Analytics