Traiter les données d’événement avec l’éditeur du processeur d’événements
L'éditeur de processeur d'événements est une expérience sans code qui vous permet d'effectuer un glisser-déposer pour concevoir la logique de traitement des données d'événement. Cet article explique comment utiliser l'éditeur pour concevoir votre logique de traitement.
Remarque
Les fonctionnalités améliorées sont activées par défaut si vous créez des flux d’événements maintenant. Si des flux d’événements existants ont été créés en utilisant les fonctionnalités standard, ces flux d’événements continueront à fonctionner. Vous pouvez toujours les modifier et les utiliser comme d’habitude. Nous vous recommandons de créer un nouveau flux d’événements pour remplacer les flux d’événements standard afin que vous puissiez tirer parti des fonctionnalités supplémentaires et des avantages des flux d’événements améliorés.
Prérequis
Pour commencer, vous devez remplir les conditions préalables suivantes :
- Accès à un espace de travail en mode licence de capacité Fabric ou en mode licence d’évaluation avec des autorisations Collaborateur ou supérieures.
Concevoir le traitement des événements avec l’éditeur
Pour effectuer des opérations de traitement de flux sur vos flux de données à l’aide d’un éditeur sans code, procédez comme suit :
Sélectionnez Modifier sur le ruban si vous n’êtes pas déjà en mode Édition. Vérifiez que le nœud en amont pour les opérations connectées possède un schéma.
Pour insérer un opérateur de traitement d’événements entre le nœud de flux et la destination dans le mode Édition, vous pouvez utiliser l’une des deux méthodes suivantes :
Insérez l’opérateur directement à partir de la ligne de connexion. Survolez la ligne de connexion avec la souris, puis sélectionnez le bouton +. Un menu déroulant s’affiche sur la ligne de connexion. Vous pouvez y sélectionner un opérateur.
Insérez l’opérateur à partir du canevas ou du menu du ruban.
Vous pouvez sélectionner un opérateur dans le menu Événements de transformation du ruban.
Vous pouvez également survoler l’un des nœuds à l’aide de la souris, puis sélectionner le bouton + si vous avez supprimé la ligne de connexion. Un menu déroulant apparaît en regard de ce nœud. Vous pouvez y sélectionner un opérateur.
Après avoir inséré l’opérateur, vous devez reconnecter ces nœuds. Survolez le bord gauche du nœud de flux à l’aide de la souris, puis sélectionnez et faites glisser le cercle vert pour le connecter au nœud opérateur Gérer les champs. Suivez le même processus pour connecter le nœud d'opérateur Gérer les champs à votre destination.
Sélectionnez le nœud d’opérateur Gérer les champs. Dans le panneau de configuration Gérer les champs, sélectionnez les champs que vous souhaitez générer. Si vous souhaitez ajouter tous les champs, sélectionnez Ajouter tous les champs. Vous pouvez également ajouter un nouveau champ avec les fonctions intégrées pour agréger les données en amont. (Actuellement, les fonctions intégrées que nous prenons en charge sont certaines fonctions dans String Functions, Date and Time Functions, Mathematical Functions. Pour les trouver, recherchez
built-in
.)Après avoir configuré l’opérateur Gérer les champs, sélectionnez Actualiser pour valider le résultat du test généré par cet opérateur.
Si vous avez des erreurs de configuration, elles apparaissent dans l'onglet Erreurs de création dans le volet inférieur.
Si le résultat de votre test est correct, sélectionnez Publier pour enregistrer la logique de traitement des événements et revenir à l’Affichage en direct.
Une fois ces étapes terminées, vous pouvez visualiser la façon dont votre Eventstream démarre la diffusion en continu et le traitement des données en Affichage en direct.
Éditeur de traitement d’événements
L’éditeur du processeur d’événements (canevas en mode Édition) vous permet de transformer des données vers différentes destinations. Entrez en mode Édition pour concevoir des opérations de traitement de flux pour vos flux de données.
Le mode Éditeur comprend un canevas et un volet inférieur où vous pouvez :
- Créez la logique de transformation des données d'événement par glisser-déposer.
- Prévisualisez les résultats du test dans chacun des nœuds de traitement du début à la fin.
- Découvrez toutes les erreurs de création dans les nœuds de traitement.
Disposition de l’éditeur
- Menu du ruban et canevas (numéro un dans l’image) : dans ce volet, vous pouvez concevoir votre logique de transformation de données en sélectionnant un opérateur (dans le menu Événements de transformation) et en connectant le flux et les nœuds de destination via le nœud opérateur nouvellement créé. Vous pouvez faire glisser et déposer des lignes de connexion ou sélectionner et supprimer des connexions.
- Volet Édition droit (deux dans l’image) : ce volet vous permet de configurer le nœud sélectionné ou d’afficher le nom du flux.
- Volet inférieur avec onglets d'aperçu des données et d'erreur de création (trois dans l’image) : dans ce volet, prévisualisez les résultats du test dans un nœud sélectionné avec l'onglet Résultat du test. L'onglet Erreurs de création répertorie toute configuration incomplète ou incorrecte dans les nœuds d'opération.
Types de nœuds pris en charge et exemples
Voici les types de destination qui prennent en charge l’ajout d’opérateurs avant l’ingestion :
- Lakehouse
- Base de données KQL (Traitement des événements avant l’ingestion)
- Flux dérivé
- Activator
Remarque
Pour les destinations qui ne prennent pas en charge l’ajout d’opérateur de avant l’ingestion, vous pouvez d’abord ajouter un flux dérivé en tant que sortie de votre opérateur. Ensuite, ajoutez votre destination prévue à ce flux dérivé.
Le processeur d’événements dans Lakehouse et KQL Database (traitement des événements avant l’ingestion) vous permet de traiter vos données avant qu’elles ne sont ingérées dans votre destination.
Prérequis
Pour commencer, vous devez remplir les conditions préalables suivantes :
- Accès à un espace de travail en mode licence de capacité Fabric ou en mode licence d’évaluation avec des autorisations Collaborateur ou supérieures.
- Accédez à un espace de travail avec des autorisations Contributor ou supérieures là où se trouve votre Lakehouse ou KQL Database.
Concevoir le traitement des événements avec l’éditeur
Pour concevoir votre traitement d'événements avec l'éditeur de processeur d'événements :
Ajoutez une destination Lakehouse et entrez les paramètres nécessaires dans le volet de droite. (Voir Ajouter et gérer une destination dans un flux d'événements pour des instructions détaillées.)
Sélectionnez Ouvrir le processeur d'événements. L'écran de l'éditeur de traitement des événements apparaît.
Dans le canevas de l'éditeur de traitement d'événements, sélectionnez le nœud de flux d'événements. Vous pouvez prévisualiser le schéma de données ou modifier le type de données dans le volet Flux d’événements de droite.
Pour insérer un opérateur de traitement d’événements entre ce flux d’événements et la destination dans l’éditeur du processeur d’événements, vous pouvez utiliser l’une des deux méthodes suivantes :
Insérez l’opérateur directement à partir de la ligne de connexion. Survolez la ligne de connexion avec la souris, puis sélectionnez le bouton « + ». Un menu déroulant s’affiche sur la ligne de connexion. Vous pouvez y sélectionner un opérateur.
Insérez l’opérateur à partir du canevas ou du menu du ruban.
Vous pouvez sélectionner un opérateur dans le menu Opérations du ruban. Vous pouvez également survoler l’un des nœuds à l’aide de la souris, puis sélectionner le bouton « + » si vous avez supprimé la ligne de connexion. Un menu déroulant apparaît en regard de ce nœud. Vous pouvez y sélectionner un opérateur.
Pour finir, vous devez reconnecter ces nœuds. Passez la souris sur le bord gauche du nœud Eventstream, puis sélectionnez et faites glisser le cercle vert pour le connecter au nœud de l’opérateur Gérer les champs. Suivez le même processus pour connecter le nœud d'opérateur Gérer les champs au nœud Lakehouse.
Sélectionnez le nœud d’opérateur Gérer les champs. Dans le panneau de configuration Gérer les champs, sélectionnez les champs que vous souhaitez générer. Si vous souhaitez ajouter tous les champs, sélectionnez Ajouter tous les champs. Vous pouvez également ajouter un nouveau champ avec les fonctions intégrées pour agréger les données en amont. (Actuellement, les fonctions intégrées que nous prenons en charge sont certaines fonctions dans String Functions, Date and Time Functions, Mathematical Functions. Pour les trouver, recherchez « built-in ».)
Après avoir configuré l'opérateur Gérer les champs, sélectionnez Actualiser l'aperçu statique pour prévisualiser les données produites par cet opérateur.
Si vous avez des erreurs de configuration, elles apparaissent dans l'onglet Erreur de création dans le volet inférieur.
Si vos données prévisualisées semblent correctes, sélectionnez Terminé pour enregistrer la logique de traitement des événements et revenir à l'écran de configuration de la destination Lakehouse.
Sélectionnez Ajouter pour terminer la création de votre destination Lakehouse.
Éditeur de processeurs d’événements
Le processeur d'événements vous permet de transformer les données que vous ingérez en une destination Lakehouse. Lorsque vous configurez votre destination Lakehouse, vous trouvez l'option Ouvrir le processeur d'événements au milieu de l'écran de configuration de la destination Lakehouse.
La sélection de Ouvrir le processeur d'événement lance l'écran de l'éditeur de traitement d'événement, dans lequel vous pouvez définir votre logique de transformation de données.
L'éditeur de processeur d'événements comprend un canevas et un volet inférieur où vous pouvez :
- Créez la logique de transformation des données d'événement par glisser-déposer.
- Prévisualisez les données dans chacun des nœuds de traitement du début à la fin.
- Découvrez toutes les erreurs de création dans les nœuds de traitement.
La disposition de l'écran est comme l'éditeur principal. Il se compose de trois sections, illustrées dans l'image suivante :
Canevas avec vue diagramme : dans ce volet, vous pouvez concevoir votre logique de transformation de données en sélectionnant un opérateur (dans le menu Opérations) et en connectant le flux d'événements et les nœuds de destination via le nœud opérateur nouvellement créé. Vous pouvez faire glisser et déposer des lignes de connexion ou sélectionner et supprimer des connexions.
Volet d'édition de droite : ce volet vous permet de configurer le nœud d'opération sélectionné ou d'afficher le schéma du flux d'événements et de la destination.
Volet inférieur avec onglets d'aperçu des données et d'erreur de création : dans ce volet, prévisualisez les données dans un nœud sélectionné avec l'onglet Aperçu des données. L'onglet Erreurs de création répertorie toute configuration incomplète ou incorrecte dans les nœuds d'opération.
Erreurs de création
Les erreurs de création font référence aux erreurs qui se produisent dans l’éditeur du processeur d’événements en raison d’une configuration incomplète ou incorrecte des nœuds d’opération, ce qui vous permet de trouver et de résoudre les problèmes potentiels dans votre processeur d’événements.
Vous pouvez afficher les erreurs de création dans le volet inférieur de l’éditeur du processeur d’événements. Le volet inférieur répertorie toutes les erreurs de création, et chaque erreur de création comporte quatre colonnes :
- ID de nœud : indique l’ID du nœud d’opération où l’erreur de création s’est produite.
- Type de nœud : indique le type du nœud d’opération où l’erreur de création s’est produite.
- Niveau : indique la gravité de l’erreur de création, il existe deux niveaux, Irrécupérable et Information. Une erreur de création de niveau irrécupérable signifie que votre processeur d’événements présente de graves problèmes et ne peut pas être enregistré ou exécuté. L’erreur de création de niveau information signifie que votre processeur d’événements a des conseils ou des suggestions qui peuvent vous aider à optimiser ou améliorer votre processeur d’événements.
- Erreur : indique les informations spécifiques de l’erreur de création, décrivant brièvement la cause et l’impact de l’erreur de création. Vous pouvez sélectionner l’onglet Afficher les détails pour afficher les détails.
Étant donné qu’Eventstream et la base de données KQL prennent en charge différents types de données, le processus de conversion de type de données peut générer des erreurs de création.
Le tableau suivant présente les résultats de la conversion de type de données d’Eventstream vers la base de données KQL. Les colonnes représentent les types de données pris en charge par Eventstream, et les lignes représentent les types de données pris en charge par la base de données KQL. Les cellules indiquent les résultats de conversion, qui peuvent être l’un des trois suivants :
✔️ Indique la réussite de la conversion, aucune erreur ou avertissement n’est généré.
❌ indique une conversion impossible : une erreur de création de niveau irrécupérable est générée. Le message d’erreur est similaire au suivant : le type de données « {1} » de la colonne « {0} » ne correspond pas au type attendu « {2} » dans la table KQL sélectionnée et ne peut pas être converti automatiquement.
⚠️ indique la conversion possible mais inexacte, l’erreur de création de niveau information est générée. Le message d’erreur est similaire au suivant : le type de données « {1} » de la colonne « {0} » ne correspond pas exactement au type attendu « {2} » dans la table KQL sélectionnée. Il est automatiquement converti en « {2} ».
string | bool | DATETIME | dynamic | guid | int | long | real | intervalle de temps | decimal | |
---|---|---|---|---|---|---|---|---|---|---|
Int64 | ❌ | ❌ | ❌ | ✔️ | ❌ | ⚠️ | ✔️ | ⚠️ | ❌ | ✔️ |
Double | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ⚠️ |
Chaîne | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Datetime | ⚠️ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Enregistrer | ⚠️ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Tableau | ⚠️ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Comme vous pouvez le voir à partir de la table, certaines conversions de type de données réussissent, telles que chaîne (string) vers chaîne. Ces conversions ne génèrent aucune erreur de création et n’affectent pas l’opération de votre processeur d’événements.
Certaines conversions de types de données sont impossibles, comme entier (int) vers chaîne. Ces conversions génèrent des erreurs de création de niveau irrécupérable, ce qui entraîne l’échec de l’enregistrement de votre processeur d’événements. Vous devez modifier votre type de données dans votre Eventstream ou dans la table KQL pour éviter ces erreurs.
Certaines conversions de types de données sont possibles, mais pas précises, telles que entier vers réel (real). Ces conversions génèrent des erreurs de création de niveau information, indiquant l’incompatibilité entre les types de données et les résultats de conversion automatique. Ces conversions peuvent entraîner la perte de précision ou de structure de vos données. Vous pouvez choisir d’ignorer ces erreurs ou de modifier votre type de données dans votre Eventstream ou dans la table KQL pour optimiser votre processeur d’événements.
Opérateurs de transformation
Le processeur d’événements fournit six opérateurs, que vous pouvez utiliser pour transformer vos données d’événements en fonction des besoins de votre entreprise.
Agrégat
Utilisez la transformation Aggregate pour calculer une agrégation (Sum, Minimum, Maximum ou Average) chaque fois qu'un nouvel événement se produit sur une période donnée. Cette opération permet également de renommer ces colonnes calculées et de filtrer ou de découper l’agrégation en fonction d’autres dimensions de vos données. Il peut y avoir plusieurs agrégations dans la même transformation.
- Nom de l’opérateur : spécifiez le nom de l’opération d’agrégation.
- Ajouter une fonction d’agrégation : ajoutez une ou plusieurs agrégations dans l’opération d’agrégation.
- Type : choisissez un type d’agrégation : Somme, Minimum, Maximum ou Moyenne.
- Champ : sélectionnez la colonne à traiter.
- Nom : définissez un nom pour cette fonction d’agrégation.
- Partitionner par : sélectionnez une colonne pour regrouper l’agrégation.
- Agréger les valeurs dans le dernier : spécifiez une fenêtre de temps pour l’agrégation (la valeur par défaut est de 5 secondes).
Développer
Utilisez la transformation Développer le tableau pour créer une ligne pour chaque valeur dans un tableau. Vous pouvez choisir Créer une ligne pour un tableau manquant/vide ou Ne pas créer de ligne pour un tableau manquant/vide.
Filter
Utilisez la transformation Filtrer pour filtrer les événements en fonction de la valeur d’un champ dans l’entrée. Selon le type de données (nombre ou texte), la transformation conserve les valeurs qui correspondent à la condition sélectionnée, par exemple est nul ou n’est pas nul.
Regrouper par
Utilisez la transformation Regrouper par pour calculer les agrégations sur tous les événements d’une fenêtre de temps donnée. Vous pouvez regrouper par les valeurs d’un ou plusieurs champs. Il s'agit d'une transformation similaire à la transformation Aggregate qui permet de renommer les colonnes, mais qui offre davantage d'options d'agrégation et des options plus complexes pour les fenêtres temporelles. Comme Aggregate, vous pouvez ajouter plusieurs agrégations par transformation.
Voici les agrégations disponibles dans la transformation :
- Average
- Count
- Maximale
- Minimum
- Centile (continu et discret)
- Écart type
- Somme
- Variance
Dans les scénarios de streaming en temps réel, il est courant d’effectuer des opérations sur les données contenues dans des fenêtres temporelles. Le processeur d'événements prend en charge les fonctions de fenêtrage, qui sont intégrées au groupe par opérateur. Vous pouvez le définir dans le paramètre de cet opérateur.
Gérer les champs
La transformation Gérer les champs permet d’ajouter, de supprimer, de changer le type de données et de renommer des champs provenant d’une entrée ou d’une autre transformation. Les paramètres du volet latéral vous permettent d'ajouter un nouveau champ en sélectionnant Ajouter un champ, d'ajouter plusieurs champs ou d'ajouter tous les champs en même temps.
En outre, vous pouvez ajouter un nouveau champ à l'aide des fonctions intégrées pour agréger les données en amont. (Actuellement, les fonctions intégrées que nous prenons en charge sont certaines fonctions dans String Functions, Date and Time Functions et Mathematical Functions. Pour les trouver, recherchez « built-in ».)
Le tableau suivant présente les résultats de la modification du type de données à l’aide des champs de gestion. Les colonnes représentent les types de données d’origine, et les lignes représentent le type de données cible.
- Si la cellule contient un ✔️, cela signifie qu’elle peut être convertie directement et que l’option de type de données cible est affichée dans la liste déroulante.
- Si la cellule contient un ❌, cela signifie qu’elle ne peut pas être convertie et que l’option de type de données cible n’est pas affichée dans la liste déroulante.
- Si la cellule contient un ⚠, cela signifie qu’elle peut être convertie, mais qu’elle doit répondre à certaines conditions, telles que le format de chaîne doit être conforme aux exigences du type de données cible. Par exemple, lors de la conversion de chaîne en entier, la chaîne doit être une forme d’entier valide, tel que
123
, et nonabc
.
Int64 | Double | Chaîne | Datetime | Enregistrer | Tableau | |
---|---|---|---|---|---|---|
Int64 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ❌ |
Double | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ❌ |
Chaîne | ⚠️ | ⚠️ | ✔️ | ⚠️ | ❌ | ❌ |
Datetime | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ |
Enregistrer | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
Tableau | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ |
Union
Utilisez la transformation Union pour connecter deux nœuds ou plus et ajouter des événements qui ont des champs partagés (avec le même nom et le même type de données) dans une table. Les champs qui ne correspondent pas ne sont pas inclus dans la sortie.
Join
Utilisez la transformation Jointure pour combiner des événements de deux entrées en fonction des paires de champs que vous sélectionnez. Si vous ne sélectionnez pas de paire de champs, la jointure est basée par défaut sur l’heure. La valeur par défaut est ce qui rend cette transformation différente de celle d’un lot.
Comme avec les jointures classiques, vous disposez d’options pour votre logique de jointure :
- Jointure interne : inclure uniquement les enregistrements des deux tables correspondant à la paire.
- Jointure externe gauche : inclure tous les enregistrements de la table de gauche (la première) et uniquement les enregistrements de la deuxième table correspondant à la paire de champs. Si aucune correspondance n’est trouvée, les champs de la deuxième entrée sont vides.