Azure Data Explorer: cos'è, quanto costa e come funziona

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.

Cosa troverai in questo articolo

  • Azure Data Explorer: un’introduzione
  • Che cos’è Azure Data Explorer
  • Azure Data Explorer: funzionalità e casi d’uso reali
  • Azure Data Explorer Pricing: quanto costa accedere al servizio?
Azure Data Explorer: cos'è, quanto costa e come funziona

Azure Data Explorer: un’introduzione

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.

Che cos’è Azure Data Explorer

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.

Panoramica del funzionamento di Azure Data Explorer

La piattaforma dispone di più componenti che lavorano in armonia per offrire un servizio di esplorazione dei dati efficiente, che sono rispettivamente:

  • Cluster: l'unità fondamentale di risorse di calcolo e di archiviazione in ADX. Un cluster funge da contenitore per uno o più database. Ogni cluster è composto da un insieme di nodi di calcolo e fornisce le risorse necessarie per eseguire le query e gestire i dati.
  • Database: all'interno di un cluster, i dati sono memorizzati nei database. Un database è l'unità principale per la gestione delle risorse in ADX. Contiene le tabelle, i metadati e i dati che si importano.
  • Tabelle: i database sono ulteriormente organizzati in tabelle. Ogni tabella in ADX ha uno schema che definisce la struttura dei dati, inclusi colonne e relativi tipi di dati. Le tabelle memorizzano i dati in un formato strutturato.
  • Mapping: quando si importano dati da diverse fonti, i mapping definiscono le regole di trasformazione. Questi aiutano a tradurre il formato dei dati sorgente nello schema della tabella, assicurando che i dati importati aderiscano alla struttura della tabella nel database.
  • Kusto Query Language (KQL): il cuore della capacità di esplorazione dei dati in ADX. Kusto era il nome in codice originale di Azure Data Explorer, un omaggio al famoso esploratore oceanico, regista e ricercatore Jacques Cousteau, questo perché Azure Data Explorer mira, nelle parole di Microsoft a "esplorare un oceano di dati". KQL è un linguaggio ricco ed espressivo che consente agli utenti di interrogare grandi set di dati e ottenere risultati significativi in tempo reale e offre una vasta gamma di operatori e funzioni per manipolarli e visualizzarli.

Sai che aiutiamo i nostri clienti nella gestione dei loro tenant Azure?

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:

  • ottimizzare i costi delle risorse
  • implementare procedure di scaling e high availability
  • creare deployment applicativi tramite le pipeline di DevOps
  • monitoring
  • e soprattutto security!

Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.

Azure Data Explorer: funzionalità e casi d’uso reali

In generale, quando si lavora con Azure Data Explorer, si seguono questi passaggi:

  1. Creazione di un cluster ADX con database: per utilizzare Azure Data Explorer devi prima creare un cluster, l'unità di base che funge da contenitore per i database. Ogni cluster ha uno o più database al suo interno. Ogni cluster di Azure Data Explorer può contenere fino a 10.000 database e ogni database fino a 10.000 tabelle.
  2. Ingestione dei dati: si caricano poi i dati nelle tabelle del database in modo da poter eseguire query su di essi. Azure Data Explorer supporta diversi metodi di ingestione dei dati.
  3. Querying dei dati: dopo l’ingestione dei dati si passa alla loro interrogazione mediante KQL. Usando l'applicazione web si possono eseguire, rivedere e condividere query e risultati. Si possono anche inviare query in modo programmatico (utilizzando un SDK) o a un endpoint REST API.
  4. Visualizzazione dei risultati: si possono utilizzare diverse visualizzazioni dei propri dati nei dashboard nativi di Azure Data Explorer e anche visualizzare i risultati utilizzando i connettori ad alcuni dei principali servizi di visualizzazione, come Power BI e Grafana.

Per comprendere in maniera più approfondita come opera Azure Data Explorer, osserviamo questi passaggi fondamentali uno per uno con un esempio pratico.

"Decision Tree" per capire se conviene adottare Azure Data Explorer in azienda

Creazione di un cluster con database

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:

  1. Storage Optimized: queste sono rappresentate dalle risorse di calcolo delle serie L e DS (le serie variano nel tempo quindi è possibile che le cose cambino). Esse sono utili quando hai la necessità di avere più dati memorizzati nella cache rispetto alla quantità di CPU necessaria per l'elaborazione delle query e l'ingestione.
  2. Compute Optimized: questa fascia è in netto contrasto con la fascia ottimizzata per lo storage ed è utile quando la quantità di CPU necessaria per l'elaborazione di query complesse e per l'ingestione è maggiore rispetto ai dati che devono essere memorizzati nella cache. Il costo dello storage in questa fascia è più elevato, ma il costo computazionale è inferiore.

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.

Ingestione dei dati

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:

  1. Ingestione per Batch (batch ingestion): questo è il tipo di ingestione preferito. Qui, i dati vengono ingeriti in batch e si ottiene un'elevata capacità di ingestione.
  2. Ingestione in Streaming (streaming ingestion): questa tipologia è usata generalmente per i dati in tempo reale e consente una latenza quasi in tempo reale per piccoli set di dati per tabella.

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'.

Querying dei dati

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.

Azure Data Explorer Pricing: quanto costa accedere al servizio?

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.

Cluster Usage

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:

  • Nodi del cluster: Azure Data Explorer richiede l'uso di cluster per l'elaborazione e la gestione dei dati. Ogni cluster è composto da nodi, che sono essenzialmente unità computazionali. Il costo è calcolato su base oraria per ciascun nodo.
  • Tipi di nodi: esistono vari tipi di nodi disponibili, ciascuno con capacità di calcolo e memoria diverse. I prezzi variano a seconda del tipo di nodo selezionato, con nodi più potenti che comportano costi maggiori.
  • Dimensioni del cluster: si può scegliere il numero di nodi nel proprio cluster. Più grande è il cluster, più alta sarà la potenza di calcolo disponibile, ma anche il costo totale.

Data Ingestion

Il secondo fattore che influenza il costo complessivo del servizio è quello dell’ingestione dei dati, in particolare:

  • Volume dei dati: Azure addebita un costo per l'ingestione dei dati, che si riferisce al processo di caricamento dei dati nel sistema. Il prezzo è solitamente espresso per gigabyte (GB) di dati caricati.
  • Tipologia di ingestione: esistono vari metodi di ingestione, inclusi l’ingestione in batch e in streaming. Ogni metodo potrebbe avere costi leggermente diversi a seconda della complessità e delle risorse richieste.

Data Retention

Infine, abbiamo la ritenzione dei dati e in questo particolare caso i fattori che vanno a influire sul costo complessivo del servizio sono:

  • Archiviazione dei dati: i dati caricati su Azure Data Explorer possono essere archiviati per un certo periodo. Il costo per l'archiviazione dipende dal volume dei dati e dalla durata per cui vengono mantenuti nel sistema.
  • Livelli di caching: Azure offre diverse opzioni di caching, come "caldo" (hot) e "freddo" (cold), dove i dati più frequentemente accessibili costano di più da conservare rispetto ai dati archiviati in modo meno accessibile.

Conclusioni

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.

FAQ su Azure Data Explorer

Che cos’è Azure Data Explorer?

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.

Quali sono i principali casi d’uso di Azure Data Explorer?

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.

Quali tipi di dati può gestire Azure Data Explorer?

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.

Come funziona l’ingestione dei dati in Azure Data Explorer?

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.

Qual è il linguaggio di query usato in Azure Data Explorer?

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.

Come si visualizzano i dati in Azure Data Explorer?

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.

Quanto costa Azure Data Explorer?

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.

Posso provare Azure Data Explorer gratuitamente?

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.

Come si accede ad Azure Data Explorer?

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.

Azure Data Explorer è adatto anche a utenti non esperti?

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.

Scopri perché scegliere il team

Infra & Sec

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).