azure
Support formation Microsoft Azure
azure
Support formation Microsoft Azure
Labs 203 | Azure Date Engineer

Lab 14 | Prise en main d’Azure Stream Analytique

Gonzague Ducos


Dans cet exercice, vous allez provisionner un travail Azure Stream Analytique dans votre abonnement Azure, et l’utiliser pour interroger et résumer un flux de données d’événements en temps réel et stocker les résultats dans Stockage Azure.
Cet exercice devrait durer environ 15 minutes.

Avant de commencer

Vous aurez besoin d’un dans lequel vous disposez d’un accès de niveau administratif.

Approvisionner des ressources Azure

Dans cet exercice, vous allez capturer un flux de données de transaction de vente simulées, le traiter et stocker les résultats dans un conteneur d’objets blob dans Stockage Azure. Vous aurez besoin d’un espace de noms Azure Event Hubs auquel les données de streaming peuvent être envoyées, et d’un compte de stockage Azure dans lequel les résultats du traitement de flux seront stockés.
Vous allez utiliser une combinaison d’un script PowerShell et d’un modèle ARM pour provisionner ces ressources.
Connectez-vous au à l’adresse https://portal.azure.com.
Utilisez le bouton [>_] à droite de la barre de recherche en haut de la page pour créer un Cloud Shell dans le portail Azure, en sélectionnant un environnement PowerShell et en créant un stockage si vous y êtes invité. Cloud Shell fournit une interface de ligne de commande dans un volet situé au bas du portail Azure, comme illustré ici :
Azure portal with a cloud shell pane
Remarque : Si vous avez déjà créé un Cloud Shell qui utilise un environnement Bash, utilisez le menu déroulant en haut à gauche du volet Cloud Shell pour le remplacer par PowerShell.
Notez que vous pouvez redimensionner la coque du nuage en faisant glisser la barre de séparation en haut du volet ou en utilisant les icônes , et X en haut à droite du volet pour réduire, agrandir et fermer le volet. Pour plus d’informations sur l’utilisation d’Azure Cloud Shell, consultez la .
Dans le volet PowerShell, entrez les commandes suivantes pour cloner le référentiel contenant cet exercice :
code
rm -r dp-203 -f
git clone https://github.com/MicrosoftLearning/dp-203-azure-data-engineer dp-203

Une fois le référentiel cloné, entrez les commandes suivantes pour accéder au dossier de cet exercice et exécutez le script setup.ps1 qu’il contient :
code
cd dp-203/Allfiles/labs/17
./setup.ps1

Si vous y êtes invité, choisissez l’abonnement que vous souhaitez utiliser (cela ne se produira que si vous avez accès à plusieurs abonnements Azure).
Attendez que le script soit terminé - cela prend généralement environ 5 minutes, mais dans certains cas, cela peut prendre plus de temps. Pendant que vous attendez, consultez l’article dans la documentation Azure Stream Analytique.

Afficher la source de données en streaming

Avant de créer un travail Azure Stream Analytique pour traiter des données en temps réel, examinons le flux de données qu’il devra interroger.
Une fois l’exécution du script d’installation terminée, redimensionnez ou réduisez le volet Cloud Shell afin de pouvoir voir le portail Azure (vous reviendrez au Cloud Shell plus tard). Ensuite, dans le portail Azure, accédez au groupe de ressources dp203-xxxxxxx qu’il a créé et notez que ce groupe de ressources contient un compte de stockage Azure et un espace de noms Event Hubs.
Notez l’emplacement où les ressources ont été approvisionnées : vous créerez ultérieurement un travail Azure Stream Analytique au même emplacement.
Rouvrez le volet Cloud Shell et entrez la commande suivante pour exécuter une application cliente qui envoie 100 commandes simulées à Azure Event Hubs :
code
node ~/dp-203/Allfiles/labs/17/orderclient
Observez les données de la commande client au fur et à mesure de son envoi : chaque commande se compose d’un ID de produit et d’une quantité. L’application se terminera après l’envoi de 1000 commandes, ce qui prend environ une minute.

Créer un travail Azure Stream Analytique

Vous êtes maintenant prêt à créer un travail Azure Stream Analytique pour traiter les données de transaction de vente à mesure qu’elles arrivent dans le hub d’événements.
Dans le portail Azure, sur la page dp203-xxxxxxx, sélectionnez + Créer et recherchez Stream Analytics job. Créez ensuite un travail Stream Analytique avec les propriétés suivantes :
Notions de base:
Abonnement : votre abonnement Azure
Groupe de ressources : sélectionnez le groupe de ressources dp203-xxxxxxx existant.
Nom: process-orders
Région : sélectionnez la région dans laquelle vos autres ressources Azure sont approvisionnées.
Environnement d’hébergement : Cloud
Unités de streaming : 1
Stockage:
Ajouter un compte de stockage : Non sélectionné
Étiquettes:
Aucun
Attendez la fin du déploiement, puis accédez à la ressource de travail Stream Analytique déployée.

Créer une entrée pour le flux d’événements

Votre travail Azure Stream Analytique doit obtenir des données d’entrée à partir du hub d’événements où les commandes client sont enregistrées.
Sur la page de présentation des ordres de processus, sélectionnez Ajouter une entrée. Ensuite, sur la page Entrées, utilisez le menu Ajouter une entrée de flux pour ajouter une entrée Event Hub avec les propriétés suivantes :
Alias d’entrée: orders
Sélectionnez Event Hub dans vos abonnements : Sélectionné
Abonnement : votre abonnement Azure
Espace de noms Event Hub : sélectionnez l’espace de noms events xxxxxxx Event Hubs
Nom du hub d’événements : sélectionnez le hub d’événementseventhub xxxxxxx existant.
Groupe de consommateurs Event Hub : sélectionnez le groupe de consommateurs $Default existant
Mode d’authentification : Créer une identité managée affectée par le système
Clé de partition : laissez vide
Format de sérialisation des événements : JSON
Codage : UTF-8
Enregistrez l’entrée et patientez pendant sa création. Vous verrez plusieurs notifications. Attendez une notification de test de connexion réussi.

Créer une sortie pour le magasin d’objets blob

Vous allez stocker les données agrégées de commande client au format JSON dans un conteneur d’objets blob Stockage Azure.
Affichez la page Sorties du travail Stream Analytique process-orders. Utilisez ensuite le menu Ajouter pour ajouter une sortie Stockage Blob/ADLS Gen2 avec les propriétés suivantes :
Alias de sortie: blobstore
Sélectionnez Sélectionner Stockage Blob/ADLS Gen2 à partir de vos abonnements à partir de vos abonnements : Sélectionné
Abonnement : votre abonnement Azure
Compte de stockage : sélectionnez le comptede stockage xxxxxxx du magasin
Conteneur : sélectionnez le conteneur de données existant
Mode d’authentification : Identité managée : Attribué par le système
Format de sérialisation des événements : JSON
Format : Lignes séparées
Codage : UTF-8
Mode d’écriture : Ajouter au fur et à mesure que les résultats arrivent
Modèle de chemin: {date}
Format de date : AAAA/MM/JJ
Format de l’heure : Sans objet
Nombre minimum de rangées : 20
Temps maximum : 0 Heures, 1 minutes, 0 secondes
Enregistrez la sortie et patientez pendant sa création. Vous verrez plusieurs notifications. Attendez une notification de test de connexion réussi.

Créer une requête

Maintenant que vous avez défini une entrée et une sortie pour votre travail Azure Stream Analytique, vous pouvez utiliser une requête pour sélectionner, filtrer et agréger les données de l’entrée et envoyer les résultats à la sortie.
Affichez la page Requête de la tâche Stream Analytique process-orders. Attendez ensuite quelques instants jusqu’à ce que l’aperçu de l’entrée s’affiche (en fonction des événements de commande client précédemment capturés dans le hub d’événements).
Notez que les données d’entrée incluent les champs ProductID et Quantity dans les messages envoyés par l’application cliente, ainsi que des champs Event Hubs supplémentaires, y compris le champ EventProcessedUtcTime qui indique quand l’événement a été ajouté au hub d’événements.
Modifiez la requête par défaut comme suit :
SELECT
DateAdd(second,-10,System.TimeStamp) AS StartTime,
System.TimeStamp AS EndTime,
ProductID,
SUM(Quantity) AS Orders
INTO
[blobstore]
FROM
[orders] TIMESTAMP BY EventProcessedUtcTime
GROUP BY ProductID, TumblingWindow(second, 10)
HAVING COUNT(*) > 1

Notez que cette requête utilise System.Timestamp (basé sur le champ EventProcessedUtcTime) pour définir le début et la fin de chaque fenêtre de basculement de 10 secondes (séquentielle non chevauchante) dans laquelle la quantité totale de chaque ID de produit est calculée.
Utilisez le bouton ▷ Tester la requête pour valider la requête et assurez-vous que l’état des résultats du test indique Réussite (même si aucune ligne n’est renvoyée).
Enregistrez la requête.

Exécuter la tâche de diffusion en continu

OK, vous êtes maintenant prêt à exécuter le travail et à traiter des données de commande client en temps réel.
Affichez la page Vue d’ensemble de la tâche Stream Analytique des ordres de processus et, sous l’onglet Propriétés, passez en revue les entrées, la requête, les sorties et les fonctions de la tâche. Si le nombre d’entrées et de sorties est égal à 0, utilisez le bouton ↻ Actualiser sur la page Vue d’ensemble pour afficher l’entrée des commandes et la sortie du blobstore.
Sélectionnez le bouton ▷ Démarrer et lancez la tâche de streaming maintenant. Attendez d’être informé que la tâche de diffusion en continu a démarré avec succès.
Rouvrez le volet Cloud Shell, en vous reconnectant si nécessaire, puis réexécutez la commande suivante pour soumettre 1000 commandes supplémentaires.
node ~/dp-203/Allfiles/labs/17/orderclient

Pendant l’exécution de l’application, dans le portail Azure, revenez à la page du groupe de ressources dp203-xxxxxxx et sélectionnez le compte de stockage storexxxxxxxxxxxx.
Dans le volet situé à gauche du panneau du compte de stockage, sélectionnez l’onglet Conteneurs.
Ouvrez le conteneur data et utilisez le bouton ↻ Actualiser pour actualiser la vue jusqu’à ce que vous voyiez un dossier avec le nom de l’année en cours.
Dans le conteneur data, naviguez dans la hiérarchie des dossiers, qui comprend le dossier de l’année en cours, avec des sous-dossiers pour le mois et le jour.
Dans le dossier de l’heure, notez le fichier qui a été créé, qui doit avoir un nom similaire à 0_xxxxxxxxxxxxxxxx.json.
Dans le menu ... du fichier (à droite des détails du fichier), sélectionnez Afficher/modifier et passez en revue le contenu du fichier ; qui doit consister en un enregistrement JSON pour chaque période de 10 secondes, indiquant le nombre de commandes traitées pour chaque ID de produit, comme ceci :
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":6,"Orders":13.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":8,"Orders":15.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":5,"Orders":15.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":1,"Orders":16.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":3,"Orders":10.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":2,"Orders":25.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":7,"Orders":13.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":4,"Orders":12.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":10,"Orders":19.0}
{"StartTime":"2022-11-23T18:16:25.0000000Z","EndTime":"2022-11-23T18:16:35.0000000Z","ProductID":9,"Orders":8.0}
{"StartTime":"2022-11-23T18:16:35.0000000Z","EndTime":"2022-11-23T18:16:45.0000000Z","ProductID":6,"Orders":41.0}
{"StartTime":"2022-11-23T18:16:35.0000000Z","EndTime":"2022-11-23T18:16:45.0000000Z","ProductID":8,"Orders":29.0}
...

Dans le volet Azure Cloud Shell, attendez que l’application cliente de commande se termine.
Dans le portail Azure, actualisez le fichier pour afficher l’ensemble des résultats qui ont été produits.
Revenez au groupe de ressources dp203-xxxxxxx et rouvrez le travail Stream Analytique process-orders.
En haut de la page du travail Stream Analytique, utilisez le ⬜ bouton Arrêter pour arrêter le travail, en confirmant lorsque vous y êtes invité.

Supprimer des ressources Azure

Si vous avez terminé d’explorer Azure Stream Analytique, vous devez supprimer les ressources que vous avez créées pour éviter des coûts Azure inutiles.
Dans le portail Azure, sur la page d’accueil, sélectionnez Groupes de ressources.
Sélectionnez le groupe de ressources dp203-xxxxxxx contenant vos ressources Stockage Azure, Event Hubs et Stream Analytique.
En haut de la page Vue d’ensemble de votre groupe de ressources, sélectionnez Supprimer le groupe de ressources.
Entrez le nom du groupe de ressources dp203-xxxxxxx pour confirmer que vous souhaitez le supprimer, puis sélectionnez Supprimer.
Au bout de quelques minutes, les ressources créées dans cet exercice seront supprimées.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.