Azure Data Explorer è un servizio di analisi ad alte prestazioni offerto da Microsoft, progettato per esplorare e analizzare rapidamente grandi volumi di dati. Utilizzato principalmente per applicazioni che richiedono la gestione e l'elaborazione di dati in tempo reale, questo strumento consente alle aziende di ottenere insight approfonditi attraverso query e visualizzazioni avanzate. In questo articolo andremo a vedere meglio cos’è Azure Data Explorer, capiremo meglio come funziona anche attraverso un esempio pratico e daremo un’occhiata ai fattori che ne influenzano il costo.
Le aziende generano e memorizzano enormi quantità di dati, ogni giorno.
Questi dati possono essere non strutturati (come audio, video), semi-strutturati (come XML, JSON) o strutturati (come numeri, date, stringhe) e i professionisti che ci lavorano sono incessantemente alla ricerca di tecniche efficaci per gestire volumi massicci di tutti questi tipi di informazioni.
Anche se possiamo certamente farlo con i tradizionali data warehouse, strumenti di analisi come Hadoop, Spark, ecc., ciò comporterebbe l'approccio convenzionale di ETL su terabyte e petabyte di dati prima di poterli esplorare e analizzare.
In molti casi, occorre una piattaforma che permetta agli utenti di utilizzare e analizzare rapidamente dati grezzi diversi con un'ingestione rapida e prestazioni ottimali e Microsoft potrebbe avere una proposta interessante per tutti i professionisti dei dati che si ritrovano in questo tipo di situazioni.
Azure Data Explorer, noto anche come ADX, è un servizio di analisi dei dati veloce, altamente scalabile e completamente gestito per dati di log, telemetria e streaming.
Questo servizio di esplorazione dei dati consente di raccogliere, archiviare e interrogare terabyte di dati in pochi secondi, dando la possibilità di effettuare rapide query ad hoc su dati eterogenei. Permette di combinare enormi quantità di dati da varie fonti e di eseguire analisi su di essi, anche in tempo reale con dati in streaming e, come molti servizi di Azure, è veloce e può scalare automaticamente secondo le necessità.
Vediamolo più da vicino nelle prossime sezioni.
Azure Data Explorer è un database distribuito che gira su due cluster di nodi di calcolo in Microsoft Azure (Engine cluster e Data Management cluster) che operano insieme. È basato su sistemi di gestione di database relazionali (RDBMS), supportando entità come database, tabelle, funzioni e colonne. Supporta operatori di query analitiche complesse, come colonne calcolate, ricerca e filtraggio di righe, aggregazioni con group by e join.
Alla base, ADX funziona come un motore a micro-batch, dove i dati ingeriti (ovvero caricati la prima volta) che possono provenire da varie fonti come Azure Blob Storage, Azure Event Hub, Azure IoT Hub e database SQL, in formati diversi come JSON, CSV, Parquet e Avro) vengono raggruppati in batch, archiviati in file noti come "extents" (frammenti orizzontali di dati che rappresentano l'unità fondamentale di archiviazione in ADX) e indicizzati.
ADX offre grande scalabilità orizzontale, gestendo petabyte di dati e distribuendo il carico su più nodi, mentre l'uso di indici, cache e tecniche di ottimizzazione automatica garantisce tempi di risposta rapidi anche per query complesse.
Come per quasi tutti i servizi di Azure, è possibile svolgere il proprio lavoro direttamente nell'Azure Portal, dalla riga di comando tramite API REST o SDK per diverse piattaforme come .NET, Java, Node, GO, PowerShell e altre.
La piattaforma dispone di più componenti che lavorano in armonia per offrire un servizio di esplorazione dei dati efficiente, che sono rispettivamente:
Abbiamo creato il team Infra&Security, verticale sul cloud Azure, per rispondere alle esigenze dei clienti che ci coinvolgono nelle decisioni tecniche e strategiche. Oltre a configurare e gestire il loro tenant, ci occupiamo di:
Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.
In generale, quando si lavora con Azure Data Explorer, si seguono questi passaggi:
Per comprendere in maniera più approfondita come opera Azure Data Explorer, osserviamo questi passaggi fondamentali uno per uno con un esempio pratico.
Nel portale di Azure, dopo aver effettuato l’accesso con le nostre credenziali, clicchiamo su “Crea una risorsa” e cerchiamo Azure Data Explorer.
Clicca sul pulsante “Crea” e nella pagina che appare e forniamo i dettagli di base. Dovremo selezionare l'abbonamento, il gruppo di risorse, fornire un nome per il cluster, selezionare la regione e poi scegliere le specifiche di calcolo tra le risorse disponibili per il cluster.
Sono disponibili 2 diverse fasce di calcolo tra cui scegliere. Esse sono:
Dopo aver fornito le informazioni di base, clicchiamo sul pulsante Avanti per fornire informazioni sul ridimensionamento del cluster.
Si può scegliere tra ridimensionamento manuale o selezionare l'autoscale ottimizzato. L'autoscale ottimizzato è il metodo consigliato poiché le risorse verranno ridimensionate automaticamente in base al carico di lavoro e alle regole predefinite.
Clicchiamo sul pulsante Avanti per configurare le impostazioni.
Qui possiamo abilitare le funzionalità del cluster Azure Data Explorer per impostare l'ingestione in streaming e la pulizia. Per impostazione predefinita, sono disattivate.
Nel caso si desideri utilizzare queste capacità di ADX, le si può abilitare da questa scheda, ma dovranno essere configurate correttamente dopo che il cluster è stato distribuito.
Il passo successivo è configurare le impostazioni di sicurezza per il cluster ed è possibile scegliere di avere un'identità gestita assegnata al sistema e il cluster verrà registrato con Azure Active Directory, permettendo di controllare il suo accesso ad altre risorse Azure.
La crittografia del disco può essere configurata una volta completata la distribuzione del cluster.
Il passo successivo è configurare i requisiti di rete. Se si desidera che il cluster sia collegato alla propria rete virtuale si possono configurare i dettagli nella scheda Networking.
Una volta completate le impostazioni, si possono fornire i dettagli per il tagging (una buona pratica che dovrebbe essere sempre adottata) e infine cliccare su Create.
Dopo il completamento della distribuzione, si vedrà il messaggio che indica che la distribuzione è terminata. Da qui possiamo andare alla pagina del nuovo cluster ADX creato.
Ora che il cluster è pronto, è il momento di creare un database per il cluster. Dalla pagina di panoramica del cluster ADX, clicchiamo sul pulsante "Crea Database".
Qui dovremo fornire il nome del database, il periodo di retention (in giorni) e il periodo di cache. Il periodo di retention stabilisce il numero di giorni per cui si desidera che i dati siano mantenuti nel cluster, mentre il periodo di cache determina per quanti giorni si vogliono conservare i dati nella cache hot per query ad alte prestazioni.
Queste opzioni possono essere successivamente modificate andando nella schermata delle impostazioni del database.
Ora che i passaggi per la creazione del cluster ADX e del database sono completati, il passo successivo è l'ingestione dei dati.
A questo punto è necessario descrivere un po’ più approfonditamente le basi dell'ingestione dei dati. Ci sono due tipi di ingestione basati sulla natura dei dati:
Tutti i dati ingeriti nelle tabelle vengono partizionati in sezioni orizzontali o shard. Ogni shard contiene alcuni milioni di record. I record in ciascuno shard vengono codificati e indicizzati. Gli shard sono distribuiti nei diversi nodi del cluster per un'elaborazione efficiente.
Inoltre, i dati vengono memorizzati nella cache su SSD locali e in memoria, in base alla politica di caching selezionata al momento della creazione del cluster. Il motore di query esegue query altamente distribuite e parallele sul dataset per ottenere le migliori prestazioni.
Chiusa la parentesi esplicativa, ci sono due opzioni per l'ingestione dei dati. In questo caso, scegliamo l'opzione rapida per l'ingestione dei dati e clicchiamo sull'opzione “Ingest New Data”.
Nella schermata successiva, dobbiamo dare un nome alla tabella in cui i dati possono essere inseriti nel database selezionato. Qui andremo a creare una nuova tabella. In alternativa, è possibile anche selezionare una tabella esistente per il caricamento dei dati.
Successivamente, dovremo selezionare il tipo di fonte dei dati da un elenco a discesa. Selezioniamo in questo caso la fonte come file e poi selezioniamo il file dopo aver esplorato la struttura delle cartelle. In questo caso potremo allegare fino a 10 file. Alleghiamo qui un file chiamato FILE_ESEMPIO.csv dal disco locale.
Alla fine, premiamo il pulsante 'Edit Schema'.
Nella schermata successiva lo schema della tabella viene creato automaticamente dal file di dati fornito. Questa mappatura viene definita ufficialmente Schema Mapping. I nomi delle colonne e i tipi di dati vengono creati in base alle colonne del file e ai loro valori. È possibile creare, modificare o eliminare qualsiasi colonna in questa schermata.
Anche il tipo di dato di una colonna può essere modificato in base alle tue esigenze. A questa mappatura tra i dati del file e la struttura della tabella viene assegnato un nome. Alla fine, premiamo il pulsante 'Start Ingestion'.
Una volta completata l'ingestione dei dati, i dati sono pronti per l'anteprima e per l'esecuzione di query.
I passaggi e i dettagli dell'ingestione sono disponibili nella pagina di conclusione del processo per riferimento. Sono anche disponibili alcune opzioni rapide per le query e in questo caso andremo a selezionare l'opzione di query "Numero di righe".
Nella scheda Query, vengono mostrati la query e il risultato relativo al numero di righe nella tabella lsdata creata e popolata nei passaggi precedenti.
Una query Kusto è una richiesta di sola lettura per elaborare i dati e restituire i risultati. Questa query è composta da una sequenza di istruzioni di query, separate da un punto e virgola. In ogni query, ci deve essere almeno un'istruzione di espressione tabellare che restituisce dati in formato tabella-colonna. KQL consente di inviare query sui dati e utilizzare comandi di controllo.
Una query è una richiesta di sola lettura per elaborare i dati. Restituisce i risultati dell'elaborazione, ma non modifica i dati o i metadati. I comandi di controllo sono richieste a Kusto per elaborare e potenzialmente modificare dati o metadati.
Dopo aver scritto la query, premiamo il pulsante "Esegui". L'output della query verrà generato nella finestra inferiore. Oltre all'output grafico, verrà generato anche l'output tabellare. I dettagli sulle prestazioni della query sono disponibili insieme al risultato della query. È inoltre possibile salvare e scaricare i dati dell'output della query in file.
Il modello di pricing di Azure Data Explorer si basa su un approccio pay-as-you-go, dove i clienti vengono fatturati in base al loro utilizzo del servizio. Il prezzo è determinato da fattori come la quantità di dati ingeriti, la quantità di dati memorizzati e il numero di query eseguite.
I clienti possono scegliere tra diverse fasce di prezzo che offrono livelli variabili di prestazioni e funzionalità e il servizio offre anche opzioni di capacità riservata (Reserved Instances), che consentono ai clienti di riservare risorse per un periodo di tempo fisso a un prezzo scontato.
Azure Data Explorer offre inoltre un livello gratuito (Free Cluster) che consente di esplorare le funzionalità di base della piattaforma senza costi iniziali. Questo livello è limitato sia in termini di capacità di calcolo (ad esempio, un numero ridotto di nodi o capacità di storage) che di volume di dati (ad esempio, un limite al numero di GB che puoi ingerire e conservare). Questo è utile per test e progetti pilota. Non richiede abbonamento Azure o carta di credito e permette di provare il servizio per un anno (eventualmente rinnovabile).
La pagina ufficiale del servizio sul sito di Azure include un calcolatore dei costi (disponibile qui) che permette di stimare i prezzi del servizio in base a fattori come il tipo di workload, la regione, la valuta utilizzata e il tempo di utilizzo (ore o mesi).
Per capire meglio i fattori principali che influenzano il pricing di Azure Data Explorer andiamo ad esaminarli più da vicino uno per uno.
Il primo che andremo ad esaminare è l’uso che si fa e la configurazione scelta dei cluster di ADX.
I fattori che influenzano il costo sono:
Il secondo fattore che influenza il costo complessivo del servizio è quello dell’ingestione dei dati, in particolare:
Infine, abbiamo la ritenzione dei dati e in questo particolare caso i fattori che vanno a influire sul costo complessivo del servizio sono:
Per tutte le aziende, avere la possibilità di sfruttare al massimo la mole di informazioni generata ogni giorno non è un vantaggio marginale, ma una necessità con cui fare i conti se si vuole che il proprio business rimanga sano e competitivo.
Soluzioni come Azure Data Explorer servono proprio a questo e con la sua capacità di analizzare quantità impressionanti di dati in tempo reale può dare a organizzazioni di ogni tipo e dimensione la possibilità di prendere decisioni rapide basate su insight chiave e delineare così strategie adeguate alle loro reali esigenze.
L’utilizzo di Kusto Querying Language permette poi un approccio più elegante ai processi di querying, dando la possibilità anche a utenti meno esperti di poter lavorare con le funzionalità della piattaforma senza complicarsi la vita.
Non ci resta dunque che invitare a provarlo mediante il livello gratuito messo a disposizione da Microsoft e lasciare che sia la piattaforma stessa a convincere se è la soluzione giusta per le proprie esigenze.
Azure Data Explorer, abbreviato in ADX, è un servizio gestito da Microsoft che consente di analizzare in modo rapido grandi quantità di dati. È particolarmente indicato per scenari in cui è necessario esplorare e ottenere insight da dati eterogenei come log, telemetria o flussi in tempo reale, utilizzando query interattive e strumenti di visualizzazione avanzati.
Questo servizio trova applicazione in contesti dove la velocità di analisi è cruciale, ad esempio nel monitoraggio di infrastrutture IT, nella gestione di dispositivi IoT, nella raccolta di telemetria continua o nella ricerca su dati non strutturati. La sua capacità di lavorare in tempo reale lo rende adatto anche per attività di troubleshooting o analisi comportamentale degli utenti.
Azure Data Explorer è in grado di trattare dati di varia natura. Supporta dati strutturati come tabelle con colonne e tipi ben definiti, dati semi-strutturati come file in formato JSON o XML, e può accettare anche dati originariamente non strutturati, come video o audio, purché convertiti in metadati utilizzabili a fini analitici.
Il sistema permette di caricare dati tramite modalità batch o streaming. I dati batch sono caricati a lotti, con una maggiore capacità di ingestione, mentre quelli in streaming vengono processati quasi in tempo reale. Tutti i dati vengono suddivisi in frammenti, indicizzati e distribuiti in modo efficiente sui nodi del cluster per garantire prestazioni elevate nelle fasi successive di interrogazione.
Le query vengono scritte utilizzando il linguaggio KQL, ovvero Kusto Query Language. Questo linguaggio, pensato appositamente per l’esplorazione dei dati, consente di eseguire interrogazioni potenti e sofisticate in maniera chiara e leggibile, anche da utenti con competenze tecniche non avanzate.
I risultati delle query possono essere visualizzati direttamente nel portale di Azure attraverso dashboard interattivi. È inoltre possibile collegarsi a strumenti esterni come Power BI e Grafana per creare visualizzazioni personalizzate, oppure esportare i dati in formato tabellare per ulteriori elaborazioni.
Il modello di prezzo di Azure Data Explorer è basato sull’uso effettivo del servizio. Il costo varia a seconda del numero e del tipo di nodi impiegati nel cluster, della quantità di dati caricati, del tempo per cui vengono conservati e del tipo di memoria utilizzata. Microsoft mette anche a disposizione un calcolatore online per stimare i costi in base al carico di lavoro e alla regione di utilizzo.
Sì, è disponibile un livello gratuito chiamato Free Cluster che consente di sperimentare le funzionalità di base senza costi iniziali. Questo livello è pensato per test, apprendimento o piccoli progetti pilota e può essere utilizzato anche senza carta di credito.
Puoi accedere a questo servizio direttamente dal portale Azure, ma hai anche la possibilità di interagire con esso tramite API REST o utilizzando uno dei numerosi SDK disponibili per diversi linguaggi e piattaforme, come .NET, Java, Node.js, PowerShell e altri ancora.
La risposta è sì. L’interfaccia del portale, la chiarezza della sintassi del linguaggio KQL e la possibilità di creare rapidamente query di esempio rendono questa piattaforma accessibile anche a chi non è un esperto di analisi dei dati. La curva di apprendimento è graduale e ben supportata dalla documentazione ufficiale.
Il team Infra & Security è verticale sulla gestione ed evoluzione dei tenant Microsoft Azure dei nostri clienti. Oltre a configurare e gestire il tenant, si occupa della creazione dei deployment applicativi tramite le pipelines di DevOps, monitora e gestisce tutti gli aspetti di sicurezza del tenant, supportando i Security Operations Centers (SOC).