Comment ingérer des données avec Azure Stream Analytics dans Azure Cosmos DB for PostgreSQL

S’APPLIQUE À : Azure Cosmos DB for PostgreSQL (avec l’extension de base de données Citus pour PostgreSQL)

Azure Stream Analytics est un moteur de traitement des événements et d’analytique en temps réel conçu pour traiter de grands volumes de données diffusées en Fast Streaming par des appareils, des capteurs et des sites web. Il est également disponible sur le runtime Azure IoT Edge, ce qui permet le traitement des données sur les appareils IoT.

Diagramme montrant l’architecture de Stream Analytics avec Azure Cosmos DB for PostgreSQL.

Azure Cosmos DB for PostgreSQL excelle aux charges de travail en temps réel telles qu’IoT. Pour ces charges de travail, Stream Analytics peut agir comme une alternative sans code, performante et évolutive pour prétraiter et diffuser des données à partir d’Azure Event Hubs, d’Azure IoT Hub et de Stockage Blob Azure dans Azure Cosmos DB for PostgreSQL.

Étapes de configuration de Stream Analytics

Notes

Cet article utilise Azure IoT Hub comme exemple de source de données, mais la technique s’applique à toute autre source prise en charge par Stream Analytics. En outre, les données de démonstration suivantes proviennent du simulateur de télémétrie d’appareil Azure IoT. Cet article ne traite pas de la configuration du simulateur.

  1. Dans le portail Azure, développez le menu du portail en haut à gauche et sélectionnez Créer une ressource.

  2. Dans la liste des résultats, sélectionnez Analytics>Travail Stream Analytics.

  3. Renseignez les informations suivantes dans la page Nouveau travail Stream Analytics :

    • Abonnement : sélectionnez l’abonnement Azure que vous voulez utiliser pour ce travail.
    • Groupe de ressources : sélectionnez le même groupe de ressources que pour votre hub IoT.
    • Nom : saisissez un nom pour identifier votre travail Stream Analytics.
    • Région : sélectionnez la région Azure pour héberger votre travail Stream Analytics. Utilisez l’emplacement géographique le plus proche de vos utilisateurs pour bénéficier de meilleures performances et réduire les coûts de transfert de données.
    • Environnement d’hébergement : sélectionnez Cloud pour déployer sur le cloud Azure, ou Edge pour déployer sur un appareil IoT Edge.
    • Unités de streaming : sélectionnez le nombre d’unités de streaming pour les ressources informatiques dont vous avez besoin pour exécuter le travail.
  4. Sélectionnez Examiner + créer, puis sélectionnez Créer. Une notification Déploiement en cours devrait s’afficher en haut à droite.

    Capture d’écran montrant le formulaire Créer un travail Stream Analytics.

  5. Configurez les entrées du travail.

    Capture d’écran montrant la configuration d’une entrée de travail dans Stream Analytics.

    1. Une fois le déploiement de ressources terminé, accédez à votre travail Stream Analytics. Sélectionnez Entrées>Ajouter une entrée de flux>IoT Hub.

    2. Spécifiez les valeurs suivantes dans la page IoT Hub:

      • Alias d’entrée : entrez un nom pour identifier l’entrée du travail.
      • Abonnement : sélectionnez l’abonnement Azure titulaire de votre compte IoT Hub.
      • IoT Hub : sélectionnez le nom de votre hub IoT.
    3. Sélectionnez Enregistrer.

    4. Une fois le flux d’entrée ajouté, vous pouvez également vérifier ou télécharger le jeu de données entrant. Le code suivant montre les données d’un exemple d’événement :

      {
         "deviceId": "sim000001",
         "time": "2022-04-25T13:49:11.6892185Z",
         "counter": 1,
         "EventProcessedUtcTime": "2022-04-25T13:49:41.4791613Z",
         "PartitionId": 3,
         "EventEnqueuedUtcTime": "2022-04-25T13:49:12.1820000Z",
         "IoTHub": {
           "MessageId": null,
           "CorrelationId": "990407b8-4332-4cb6-a8f4-d47f304397d8",
           "ConnectionDeviceId": "sim000001",
           "ConnectionDeviceGenerationId": "637842405470327268",
           "EnqueuedTime": "2022-04-25T13:49:11.7060000Z"
         }
      }
      
  6. Configurez la sortie du travail.

    1. Dans la page de travail Stream Analytics, sélectionnez Sorties>Ajouter>Base de données PostgreSQL (préversion).

      Capture d’écran montrant la sélection de la sortie de base de données PostgreSQL.

    2. Renseignez la page Azure PostgreSQL avec les valeurs suivantes :

      • Alias de sortie : entrez un nom permettant d’identifier la sortie du travail.
      • Sélectionnez Fournir manuellement les paramètres de base de données PostgreSQL, puis entrez le Nom de domaine complet du serveur, la Base de données, la Table, le Nom d’utilisateur et le Mot de passe. Dans l’exemple de jeu de données, utilisez la table device_data.
    3. Sélectionnez Enregistrer.

    Configurer une sortie de travail dans Azure Stream Analytics.

  7. Définissez la requête de transformation.

    Requête de transformation dans Azure Stream Analytics.

    1. Sur la page du travail Stream Analytics, sélectionnez Requête dans le menu à gauche.

    2. Pour ce tutoriel, vous ingérez uniquement les autres événements d’IoT Hub dans Azure Cosmos DB for PostgreSQL, afin de réduire la taille globale des données. Copiez et collez la requête suivante dans le volet de requête :

      select
         counter,
         iothub.connectiondeviceid,
         iothub.correlationid,
         iothub.connectiondevicegenerationid,
         iothub.enqueuedtime
      from
         [src-iot-hub]
      where counter%2 = 0;
      
    3. Sélectionnez Enregistrer la requête.

      Notes

      Vous utilisez la requête non seulement pour échantillonner les données, mais également pour extraire les attributs souhaités du flux de données. L’option de requête personnalisée avec Stream Analytics est utile dans le prétraitement/la transformation des données avant leur ingestion dans la base de données.

  8. Démarrez le travail Stream Analytics et observez le résultat.

    1. Revenez à la page de vue d’ensemble du travail et sélectionnez Démarrer.

    2. Dans la page Démarrer le travail, sélectionnez Maintenant pour l’option Heure de début de la sortie de la tâche, puis sélectionnez Démarrer.

    3. Le premier démarrage du travail prend un certain temps, mais une fois déclenché, il continue de s’exécuter à mesure que les données arrivent. Après quelques minutes, vous pouvez interroger le cluster pour vérifier que les données ont été chargées.

      citus=> SELECT * FROM public.device_data LIMIT 10;
      
       counter | connectiondeviceid |            correlationid             | connectiondevicegenerationid |         enqueuedtime
      ---------+--------------------+--------------------------------------+------------------------------+------------------------------
             2 | sim000001          | 7745c600-5663-44bc-a70b-3e249f6fc302 | 637842405470327268           | 2022-05-25T18:24:03.4600000Z
             4 | sim000001          | 389abfde-5bec-445c-a387-18c0ed7af227 | 637842405470327268           | 2022-05-25T18:24:05.4600000Z
             6 | sim000001          | 3932ce3a-4616-470d-967f-903c45f71d0f | 637842405470327268           | 2022-05-25T18:24:07.4600000Z
             8 | sim000001          | 4bd8ecb0-7ee1-4238-b034-4e03cb50f11a | 637842405470327268           | 2022-05-25T18:24:09.4600000Z
            10 | sim000001          | 26cebc68-934e-4e26-80db-e07ade3775c0 | 637842405470327268           | 2022-05-25T18:24:11.4600000Z
            12 | sim000001          | 067af85c-a01c-4da0-b208-e4d31a24a9db | 637842405470327268           | 2022-05-25T18:24:13.4600000Z
            14 | sim000001          | 740e5002-4bb9-4547-8796-9d130f73532d | 637842405470327268           | 2022-05-25T18:24:15.4600000Z
            16 | sim000001          | 343ed04f-0cc0-4189-b04a-68e300637f0e | 637842405470327268           | 2022-05-25T18:24:17.4610000Z
            18 | sim000001          | 54157941-2405-407d-9da6-f142fc8825bb | 637842405470327268           | 2022-05-25T18:24:19.4610000Z
            20 | sim000001          | 219488e5-c48a-4f04-93f6-12c11ed00a30 | 637842405470327268           | 2022-05-25T18:24:21.4610000Z
      (10 rows)
      

Notes

La fonctionnalité Tester la connexion n’est actuellement pas prise en charge pour Azure Cosmos DB for PostgreSQL, et peut générer une erreur, même lorsque la connexion fonctionne correctement.

Étapes suivantes

Découvrez comment créer un tableau de bord en temps réel avec Azure Cosmos DB for PostgreSQL.