Elaborare i dati degli eventi con l'editor del processore di eventi
L'editor del processore di eventi è un'esperienza senza codice che consente di trascinare e rilasciare per progettare la logica di elaborazione dati dell'evento. Questo articolo descrive come usare l'editor per progettare la logica di elaborazione.
Nota
Le funzionalità avanzate sono abilitate per impostazione predefinita quando si creano flussi di eventi. Se sono stati creati flussi di eventi che usano funzionalità standard, tali flussi di eventi continueranno a funzionare. È comunque possibile modificarli e usarli come di consueto. È consigliabile creare un nuovo flusso di eventi per sostituire i flussi di eventi standard in modo da poter sfruttare funzionalità aggiuntive e vantaggi dei flussi di eventi avanzati.
Prerequisiti
Prima di iniziare, è necessario soddisfare i seguenti prerequisiti:
- Accesso a un'area di lavoro in modalità di licenza della capacità di Infrastruttura (o) modalità licenza di valutazione con autorizzazioni di collaboratore o superiore.
Progettare l'elaborazione degli eventi con l'editor
Per eseguire operazioni di elaborazione dello stream sui flussi di dati usando un editor senza codice, seguire questa procedura:
Selezionare Modifica sulla barra multifunzione se non si è già in modalità di modifica. Verificare che il nodo upstream per le operazioni connesse abbia uno schema.
Per inserire un operatore di elaborazione eventi tra il nodo del flusso e la destinazione nella modalità di modifica, è possibile usare uno dei due metodi seguenti:
Inserire l'operatore direttamente dalla riga di collegamento. Passare il puntatore del mouse sulla riga di connessione e quindi selezionare il + pulsante. Nella riga di collegamento viene visualizzato un menu a discesa ed è possibile selezionare un operatore da questo menu.
Inserire l'operatore dal menu della barra multifunzione o dall'area di lavoro.
È possibile selezionare un operatore dal menu Trasforma eventi nella barra multifunzione.
In alternativa, è possibile passare il puntatore del mouse su uno dei nodi e quindi selezionare il + pulsante se è stata eliminata la riga di connessione. Accanto al nodo viene visualizzato un menu a discesa dal quale è possibile selezionare un operatore.
Dopo aver inserito l'operatore, è necessario riconnettere questi nodi. Passare il puntatore del mouse sul bordo sinistro del nodo dello stream e poi selezionare e trascinare il cerchio verde per connetterlo al nodo dell'operatore Gestisci campi. Seguire la stessa procedura per connettere il nodo dell'operatore Gestisci campi alla destinazione.
Selezionare il nodo dell'operatore Gestisci campi. Nel pannello di configurazione Gestisci campi selezionare i campi desiderati. Per aggiungere tutti i campi, selezionare Aggiungi tutti i campi. È anche possibile aggiungere un nuovo campo con le funzioni predefinite per aggregare i dati da upstream. (Attualmente le funzioni predefinite supportate sono alcune funzioni in Funzioni di stringa,Funzioni di data e ora, funzioni matematiche. Per trovarle, cerca su
built-in
.)Dopo aver configurato l'operatore Gestisci campi, selezionare Aggiorna per convalidare i risultati dei test prodotti da questo operatore.
Se si verificano errori di configurazione, vengono visualizzati nella scheda Errori di creazione nel riquadro inferiore.
Se il risultato del test è corretto, selezionare Pubblica per salvare la logica di elaborazione degli eventi e tornare alla Visualizzazione in diretta.
Dopo aver completato questi passaggi, è possibile visualizzare il modo in cui il flusso di eventi avvia lo streaming ed elabora i dati nella Visualizzazione in diretta.
Editor elaborazione eventi
L'editor del processore di eventi (l'area di lavoro in modalità di Modifica) consente di trasformare i dati in varie destinazioni. Immettere la modalità di Modifica per progettare le operazioni di elaborazione dei flussi di dati.
La modalità di Modifica include un'area di lavoro e un riquadro inferiore in cui è possibile:
- Costruire la logica di trasformazione dei dati degli eventi con il drag and drop.
- Risultato del test di anteprima in ognuno dei nodi di elaborazione dall'inizio alla fine.
- Individuare eventuali errori di creazione all'interno dei nodi di elaborazione.
Layout editor
- Menu della barra multifunzione e Area di lavoro (numero uno nell'immagine): in questo riquadro è possibile progettare la logica di trasformazione dei dati selezionando un operatore (dal menu Trasforma eventi) e connettendo il flusso e i nodi di destinazione tramite il nodo dell'operatore appena creato. È possibile trascinare e rilasciare le linee di connessione oppure selezionare ed eliminare le connessioni.
- Riquadro di modifica a destra (due nell'immagine): questo riquadro consente di configurare il nome del nodo o dello stream di visualizzazione selezionato.
- Riquadro inferiore con le schede Anteprima dati ed Errore di creazione (tre nell'immagine): In questo riquadro è possibile visualizzare l'anteprima del risultato del test in un nodo selezionato con la scheda Risultato del test. La scheda Errori di creazione elenca le configurazioni incomplete o errate nei nodi dell’operazione.
Esempi e tipi di nodo supportati
Ecco i tipi di destinazione che supportano l'aggiunta di operatori prima dell'inserimento:
- Lakehouse
- Eventhouse (elaborazione dei dati di eventi prima dell'inserimento)
- Flusso derivato
- Attivatore
Nota
Per le destinazioni che non supportano l'aggiunta dell'operatore di pre-inserimento, è prima possibile aggiungere uno stream derivato come output dell'operatore. Aggiungere quindi la destinazione desiderata a questo stream derivato.
Il processore di eventi in Lakehouse e nel database KQL (elaborazione degli eventi prima dell'inserimento) consente di elaborare i dati prima che vengano inseriti nella destinazione.
Prerequisiti
Prima di iniziare, è necessario soddisfare i seguenti prerequisiti:
- Accesso a un'area di lavoro in modalità di licenza della capacità di Infrastruttura (o) modalità licenza di valutazione con autorizzazioni di collaboratore o superiore.
- Ottenere l'accesso a un'area di lavoro con autorizzazioni di collaboratore o superiore in cui si trova il lakehouse o il database KQL.
Progettare l'elaborazione degli eventi con l'editor
Per progettare l'elaborazione degli eventi con l'editor del processore di eventi:
Aggiungere una destinazione Lakehouse e immettere i parametri necessari nel riquadro a destra. (Vedere Aggiungere e gestire una destinazione in un eventstream per istruzioni dettagliate. )
Selezionare Apri processore di eventi. Viene visualizzata la schermata Editor elaborazione eventi.
Nell'area di lavoro dell'editor di elaborazione eventi selezionare il nodo eventstream. È possibile visualizzare in anteprima lo schema dei dati o modificare il tipo di dati nel riquadro Eventstream a destra.
Per inserire un operatore di elaborazione eventi tra questo flusso di eventi e la destinazione nell'editor del processore di eventi, è possibile utilizzare uno dei due metodi seguenti:
Inserire l'operatore direttamente dalla riga di collegamento. Passare il puntatore del mouse sulla linea di connessione e quindi selezionare il pulsante "+". Nella riga di collegamento viene visualizzato un menu a discesa ed è possibile selezionare un operatore da questo menu.
Inserire l'operatore dal menu della barra multifunzione o dall'area di lavoro.
È possibile selezionare un operatore dal menu Operazioni nella barra multifunzione. In alternativa, è possibile passare il puntatore del mouse su uno dei nodi e quindi selezionare il pulsante "+" se è stata eliminata la riga di connessione. Accanto al nodo viene visualizzato un menu a discesa dal quale è possibile selezionare un operatore.
Infine, è necessario riconnettere questi nodi. Passare il puntatore del mouse sul bordo sinistro del nodo eventstream e quindi selezionare e trascinare il cerchio verde per connetterlo al nodo dell'operatore Gestisci campi . Seguire lo stesso processo per connettere il nodo dell'operatore Gestisci campi al nodo lakehouse.
Selezionare il nodo dell'operatore Gestisci campi. Nel pannello di configurazione Gestisci campi selezionare i campi desiderati. Per aggiungere tutti i campi, selezionare Aggiungi tutti i campi. È anche possibile aggiungere un nuovo campo con le funzioni predefinite per aggregare i dati da upstream. (Alcune delle funzioni predefinite attualmente supportate sono funzioni in Funzioni stringa,Funzioni di data e ora, funzioni matematiche. Per trovarle, cercare in “predefinite”)
Dopo aver configurato l'operatore Gestisci campi, selezionare Aggiorna anteprima statica per prevedere i dati prodotti da questo operatore.
Se si verificano errori di configurazione, vengono visualizzati nella scheda Errore di creazione nel riquadro inferiore.
Se i dati visualizzati in anteprima sono corretti, selezionare Fine per salvare la logica di elaborazione degli eventi e tornare alla schermata di configurazione della destinazione Lakehouse.
Selezionare Aggiungi per completare la creazione della destinazione lakehouse.
Editor processore di eventi
Il processore di Eventi consente di trasformare i dati inseriti in una destinazione lakehouse. Quando si configura la destinazione lakehouse, si trova l'opzione Apri processore eventi al centro della schermata di configurazione della destinazione Lakehouse.
Selezionando Apri processore di eventi si apre la schermata Editor elaborazione eventi, in cui è possibile definire la logica di trasformazione dei dati.
L'editor dell'elaboratore di eventi comprende un'area di lavoro e un riquadro inferiore in cui è possibile:
- Costruire la logica di trasformazione dei dati degli eventi con il drag and drop.
- Visualizzare in anteprima i dati in ognuno dei nodi di elaborazione dall'inizio alla fine.
- Individuare eventuali errori di creazione all'interno dei nodi di elaborazione.
Il layout dello schermo è simile all'editor principale. È costituito da tre sezioni, illustrate nell'immagine seguente:
Area di lavoro con vista diagramma: in questo riquadro è possibile progettare la logica di trasformazione dei dati selezionando un operatore (dal menu Operazioni) e connettendo il flusso di eventi e i nodi di destinazione tramite il nodo dell'operatore appena creato. È possibile trascinare e rilasciare le linee di connessione oppure selezionare ed eliminare le connessioni.
Riquadro di modifica a destra: questo riquadro consente di configurare il nodo dell'operazione selezionato o di visualizzare lo schema del flusso di eventi e della destinazione.
Riquadro inferiore con le schede Anteprima dati ed Errore di creazione: In questo riquadro è possibile visualizzare l'anteprima dei dati in un nodo selezionato con la scheda Anteprima dati. La scheda Errori di creazione elenca qualsiasi configurazione incompleta o errata nei nodi operativi.
Errori di creazione
Gli errori di creazione si riferiscono agli errori che si verificano nell'editor del processore di eventi a causa di una configurazione incompleta o errata dei nodi dell'operazione, consentendo di individuare e risolvere potenziali problemi nel processore di eventi.
È possibile visualizzare gli errori di creazione nel pannello inferiore dell'editor del processore di eventi. Nel pannello inferiore sono elencati tutti gli errori di creazione, ogni errore di creazione ha quattro colonne:
- ID nodo: indica l'ID del nodo dell'operazione in cui si è verificato l'errore di creazione.
- Tipo di nodo: indica il tipo di nodo dell'operazione in cui si è verificato l'errore di creazione.
- Livello: indica la gravità dell'errore di creazione, sono presenti due livelli, Fatale e Informativo. Errore di creazione a livello fatale significa che il processore di eventi presenta gravi problemi e non può essere salvato o eseguito. Errore di creazione a livello informativo indica che il processore di eventi include alcuni suggerimenti che consentono di ottimizzare o migliorare il processore di eventi.
- Errore: indica le informazioni specifiche dell'errore di creazione, descrivendo brevemente la causa e l'impatto dell'errore di creazione. È possibile selezionare la scheda Mostra dettagli per visualizzare i dettagli.
Poiché Eventstream e Eventhouse supportano tipi di dati diversi, il processo di conversione del tipo di dati potrebbe generare errori di creazione.
La tabella seguente mostra i risultati della conversione del tipo di dati da Eventstream a Eventhouse. Le colonne rappresentano i tipi di dati supportati da Eventstream e le righe rappresentano i tipi di dati supportati da Eventhouse. Le celle indicano i risultati della conversione, che possono essere uno dei tre seguenti:
✔️ Indica la corretta conversione, non vengono generati errori o avvisi.
❌ Indica la conversione impossibile, viene generato un errore di creazione fatale. Il messaggio di errore è simile al seguente: il tipo di dati "{1}" per la colonna "{0}" non corrisponde al tipo previsto "{2}" nella tabella KQL selezionata e non può essere convertito automaticamente.
⚠️ Indica la conversione possibile ma imprecisa, viene generato un errore di creazione delle informazioni. Il messaggio di errore è simile al seguente: il tipo di dati "{1}" per la colonna "{0}" non corrisponde esattamente al tipo previsto "{2}" nella tabella KQL selezionata. Viene convertito automaticamente in "{2}".
string | bool | datetime | dynamic | guid | int | long | real | timespan | decimale | |
---|---|---|---|---|---|---|---|---|---|---|
Int64 | ❌ | ❌ | ❌ | ✔️ | ❌ | ⚠️ | ✔️ | ⚠️ | ❌ | ✔️ |
Double | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ⚠️ |
Stringa | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Datetime | ⚠️ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Record | ⚠️ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Array | ⚠️ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Come si può notare dalla tabella, alcune conversioni dei tipi di dati hanno esito positivo, ad esempio stringa in stringa. Queste conversioni non generano errori di creazione e non influiscono sul funzionamento del processore di eventi.
Alcune conversioni dei tipi di dati sono impossibili, ad esempio int in stringa. Queste conversioni generano errori di creazione a livello irreversibile, causando il mancato salvataggio del processore di eventi. Per evitare questi errori, è necessario modificare il tipo di dati nella tabella Eventstream o nella tabella KQL.
Alcune conversioni dei tipi di dati sono possibili, ma non precise, ad esempio int a real. Queste conversioni generano errori di creazione a livello di informazioni, che indicano la mancata corrispondenza tra i tipi di dati e i risultati della conversione automatica. Queste conversioni potrebbero causare la perdita di precisione o struttura dei dati. È possibile scegliere se ignorare questi errori o modificare il tipo di dati nella tabella Eventstream o nella tabella KQL per ottimizzare il processore di eventi.
Operatori di trasformazione
Il processore di eventi fornisce sei operatori, che è possibile usare per trasformare i dati degli eventi in base alle esigenze aziendali.
Aggregazione
È possibile usare la trasformazione Aggrega per calcolare un'aggregazione (Somma, Minimo, Massimo o Media) ogni volta che si verifica un nuovo evento in un periodo di tempo. Questa operazione consente anche la ridenominazione di queste colonne calcolate e il filtro o il sezionamento dell'aggregazione in base ad altre dimensioni nei dati. È possibile avere una o più aggregazioni nella stessa trasformazione.
- Nome operatore: specificare il nome dell'operazione di aggregazione.
- Aggiungere una funzione di aggregazione: aggiungere una o più aggregazioni nell'operazione di aggregazione.
- Tipo: scegliere un tipo di aggregazione: Somma, Minimo, Massimo o Media.
- Campo: selezionare la colonna da elaborare.
- Nome: definire un nome per questa funzione di aggregazione.
- Partizione per: selezionare una colonna per raggruppare l'aggregazione.
- Valori aggregati nell'ultimo: specificare un intervallo di tempo per l'aggregazione (il valore predefinito è 5 secondi).
Espandi
Usare la trasformazione Espandi matrice per creare una nuova riga per ogni valore all'interno di una matrice. È possibile scegliere crea riga per matrice mancante/vuota oppure non creare una riga per una matrice mancante o vuota.
Filtro
Usare la trasformazione Filtro per filtrare gli eventi in base al valore di un campo nell'input. A seconda del tipo di dati (numero o testo), la trasformazione mantiene i valori corrispondenti alla condizione selezionata, ad esempio è nullo o non è nullo.
Raggruppa per
Usare la trasformazione Raggruppa per per calcolare le aggregazioni in tutti gli eventi in un determinato intervallo di tempo. Puoi raggruppare i valori di uno o più campi. È come la trasformazione Aggregazione che consente di rinominare le colonne, ma offre altre opzioni per l'aggregazione e include opzioni più complesse per le finestre temporali. Come Aggregazione, puoi aggiungere più aggregazioni per trasformazione.
Le aggregazioni disponibili nella trasformazione sono:
- Average
- Count
- Massimo
- Minimo
- Percentile (continuo e discreto)
- Deviazione standard
- Sum
- Variance
Negli scenari di flusso tempo eseguire operazioni solo sui dati contenuti in finestre temporali è un modello comune. Il processore di eventi supporta le funzioni di windowing, integrate con l'operatore Group by. È possibile definirlo nell'impostazione di questo operatore.
Gestire i campi
La trasformazione Gestisci campi consente di aggiungere, rimuovere, cambiare il tipo di dati o rinominare i campi provenienti da un input o da un'altra trasformazione. Le impostazioni nel riquadro laterale offrono la possibilità di aggiungere un nuovo campo selezionando Aggiungi campo, aggiungendo molteplici campi o tutti i campi contemporaneamente.
In più, è possibile aggiungere un nuovo campo con le Funzioni predefinite per aggregare i dati da upstream. (Alcune delle funzioni predefinite attualmente supportate sono funzioni in Funzioni stringa,Funzioni di data e ora, funzioni matematiche. Per trovarle, cercare in “predefinite”)
Nella tabella seguente vengono illustrati i risultati della modifica del tipo di dati usando gestisci campi. Le colonne rappresentano i tipi di dati originali e le righe rappresentano il tipo di dati di destinazione.
- Se è presente una ✔️ nella cella, significa che può essere convertita direttamente e l'opzione tipo di dati di destinazione viene visualizzata nell'elenco a discesa.
- Se è presente un ❌ nella cella, significa che può essere convertita direttamente e l'opzione tipo di dati di destinazione viene visualizzata nell'elenco a discesa.
- Se è presente un ⚠️ nella cella, significa che può essere convertita, ma deve soddisfare determinate condizioni, ad esempio il formato stringa deve essere conforme ai requisiti del tipo di dati di destinazione. Ad esempio, quando si esegue la conversione da stringa a int, la stringa deve essere un formato intero valido, ad esempio
123
, nonabc
.
Int64 | Double | Stringa | Datetime | Registra | Array | |
---|---|---|---|---|---|---|
Int64 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ❌ |
Double | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ❌ |
Stringa | ⚠️ | ⚠️ | ✔️ | ⚠️ | ❌ | ❌ |
Datetime | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ |
Record | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
Array | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ |
Union
Usa la trasformazione Unione per connettere due o più nodi e aggiungere eventi con campi condivisi (con lo stesso nome e tipo di dati) in una tabella. I campi che non corrispondono vengono rimossi e non vengono inclusi nell'output.
Join.
Usare la trasformazione Join per combinare gli eventi di due input in base alle coppie di campi selezionate. Se non si seleziona una coppia di campi, il join si basa sul tempo per impostazione predefinita. Il valore predefinito è ciò che rende questa trasformazione diversa da una trasformazione batch.
Come per i normali join, sono disponibili opzioni per la logica di join:
- Inner join: includere solo i record di entrambe le tabelle dove la coppia corrisponde.
- Left outer join: consente di includere tutti i record della tabella fi sinistra (prima) e solo i record della seconda che corrispondono alla coppia di campi. Se non esiste alcuna corrispondenza, i campi del secondo input sono vuoti.