Azure Databricks: cos’è, architettura e costi

Azure Databricks è la versione ottimizzata per l’ambiente cloud Azure di Apache Spark ed è una delle migliori piattaforme in ambito analytics. La piattaforma è in grado di processare grandi volumi di dati che permettono a data scientists, ingegneri e business analyst di elaborare grossi volumi di dati in modo efficiente. Azure Databricks combina la potenza di Apache Spark con la scalabilità e la sicurezza di Azure, fornendo un ambiente collaborativo per una gestione ottimale dei big data. In questo articolo, vedremo più da vicino cos’è Azure Databricks, quali sono le particolarità della sua architettura, cosa lo differenzia da altri servizi di Azure dedicati all’elaborazione dati e quali sono i costi associati al suo utilizzo.

Cosa troverai in questo articolo

  • Cos’è Azure Databricks
  • Azure Databricks Architecture: componenti principali e funzionamento
  • Azure Databricks: differenze con servizi di Microsoft Azure simili
  • Azure Databricks Pricing: come ottimizzare i costi
Azure Databricks: cos’è, architettura e costi

Cos’è Azure Databricks

Le organizzazioni accumulano enormi quantità di dati relativi a operazioni, marketing, vendite e altro ancora ogni giorno. Per sfruttarne appieno il potenziale, è essenziale per una compagnia appoggiarsi a piattaforme e servizi che permettano l’integrazione e l'analisi di questi dati, al fine di poterne ricavare informazioni utili per la salute e la crescita del proprio business. È qui che entra in gioco Azure Databricks, una piattaforma avanzata di analisi dei dati basata su Apache Spark e integrata nel cloud di Microsoft Azure.

Il servizio integra tutte le componenti e le capacità di Databricks, permettendo anche l'integrazione con altri servizi Azure. Questo consente alle aziende di sfruttare le funzionalità avanzate di elaborazione dei dati e machine learning di Databricks, insieme alla robustezza, alla scalabilità e alle opzioni di integrazione della piattaforma di cloud computing di Microsoft.

Grazie alla sua capacità di gestire dataset complessi e di supportare vari linguaggi di programmazione come Python, Scala e R, Azure Databricks è particolarmente adatto per applicazioni che richiedono scalabilità e affidabilità elevate, rendendolo una scelta ideale per le aziende che cercano di ottimizzare i loro processi di analisi dei dati nel cloud.

Azure Databricks permette agli utenti di accedere e lavorare in un ambiente collaborativo basato sulla tecnologia di Apache Spark, offrendo agli utenti tutta la potenza di calcolo dei data center Microsoft per lavorare su grandi quantità di dati in modo astratto e semplificato e permettendogli di creare, gestire e distribuire flussi di lavoro di elaborazione dei dati ed eseguire compiti di machine learning in modo efficiente. Vediamo insieme come qui sotto.

Azure Databricks Architecture: componenti principali e funzionamento

Azure Databricks è una piattaforma lakehouse che offre una soluzione conveniente per la gestione e la governance dei dati. Una data lakehouse è un'architettura moderna di gestione dei dati che combina i punti di forza di due modelli tradizionali di archiviazione e analisi dei dati: il data lake e il data warehouse.

Tradizionalmente, un data lake è uno spazio di archiviazione che consente di conservare dati grezzi e non strutturati provenienti da diverse fonti. È ideale per analisi avanzate, machine learning e big data, grazie alla sua capacità di gestire grandi volumi di dati di qualsiasi formato (testo, audio, video, ecc.). Tuttavia, questa flessibilità spesso comporta una gestione dei dati meno rigorosa, con potenziali problemi di qualità e governance.

D'altra parte, un data warehouse è progettato per l'analisi strutturata dei dati. Archivia dati in modo ordinato, consentendo query rapide e precise su dati strutturati. È perfetto per reporting aziendale e analisi operativa, ma può risultare costoso e limitante quando si tratta di gestire dati non strutturati o semi-strutturati.

La data lakehouse combina questi due approcci e al suo interno i dati possono essere inizialmente memorizzati in modo grezzo, come farebbe un data lake, ma sono gestiti e organizzati in modo tale da poter essere trasformati, indicizzati e ottimizzati per l'analisi strutturata, tipica di un data warehouse.

Questo approccio consente alle organizzazioni di creare un unico sistema continuo di data management, evitando la complessità di dover gestire contemporaneamente più architetture di dati.

Panoramica dell'architettura di Azure Databricks

Componenti principali di Azure Databricks

Per poter comprendere il funzionamento di Azure Databricks è necessario familiarizzare prima con alcuni elementi fondamentali della sua struttura. Per farlo, lasciamo qui sotto un elenco dei più importanti con una breve descrizione per ciascuno:

  • Workspace: il fulcro centrale di Azure Databricks, dove tutti gli utenti possono collaborare. Questo ambiente permette ai team di creare e gestire notebook, librerie e dati in un contesto integrato e interattivo. I team possono condividere e lavorare sui progetti in tempo reale, facilitando la collaborazione e la condivisione delle conoscenze.
  • Notebooks: interfacce web interattive che permettono agli utenti di scrivere ed eseguire codice, visualizzare i dati e documentare le loro analisi. Sono strumenti essenziali per l'elaborazione iterativa e la prototipazione rapida e supportano vari linguaggi di programmazione come Python, Scala, R e SQL.
  • Clusters: le unità computazionali di Azure Databricks. Questi cluster eseguono il codice scritto nei notebook e possono essere configurati per scalare automaticamente in base alle necessità di elaborazione, garantendo prestazioni ottimali anche con carichi di lavoro variabili. I cluster possono essere temporanei per l'esecuzione di specifici compiti o persistenti per l'uso continuo.
  • Jobs: consentono agli utenti di programmare e automatizzare l'esecuzione di notebook o script. Gli utenti possono definire parametri per i job, impostare intervalli di pianificazione e monitorare lo stato dei job tramite il portale di Azure o le API REST. Particolarmente utile per operazioni ricorrenti o per la gestione di flussi di lavoro complessi.
  • Libraries: pacchetti o dipendenze riutilizzabili che possono essere installati sui cluster per estendere le funzionalità di Azure Databricks. Queste possono includere librerie di machine learning, strumenti di visualizzazione dei dati o altre risorse necessarie per specifici progetti di analisi dei dati.
  • Data Sources: Azure Databricks supporta una vasta gamma di fonti di dati, sia strutturate che non strutturate, tra cui Azure Blob Storage, Azure Data Lake Store, SQL Data Warehouse e molte altre.

L'architettura di Azure Databricks

Azure Databricks è progettato attorno a due componenti architetturali principali: il Piano di Controllo e il Piano di Calcolo.

Il piano di controllo è uno strato di gestione in cui Azure Databricks gestisce l'applicazione del workspace e gestisce i notebook, le configurazioni e i cluster. Questo piano include i servizi di backend operati da Azure Databricks all'interno del tuo account. Ad esempio, l'applicazione web con cui interagisci fa parte del Piano di Controllo.

Il piano di calcolo è dove invece avvengono i task di elaborazione dati. Il Piano di Calcolo è suddiviso in due categorie basate sull'uso:

  • Piano di Calcolo Classico: permette di utilizzare le risorse di calcolo di Azure Databricks come parte del proprio abbonamento Azure. Le risorse di calcolo vengono generate all'interno della rete virtuale di ciascun workspace situato nell'abbonamento Azure del cliente. Ciò garantisce che il Piano di Calcolo Classico operi con isolamento intrinseco, poiché viene eseguito all'interno dell'ambiente controllato dal cliente.
  • Piano di Calcolo Serverless: nel modello serverless, Azure Databricks gestisce le risorse di calcolo all'interno di un'infrastruttura condivisa. Questo piano è progettato per semplificare le operazioni eliminando la necessità di gestire le risorse di calcolo sottostanti. Presenta più livelli di sicurezza per proteggere i dati e isolare i workspaces. Ciò aiuta a garantire che l'infrastruttura sia condivisa mentre i dati e le risorse di ciascun cliente rimangono privati.

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 Databricks: differenze con servizi di Microsoft Azure simili

L’offerta notevole di Microsoft Azure comprende al suo interno altri servizi dedicati alla gestione ed elaborazione dei dati oltre a Azure Databricks, ognuno utile a coprire diversi tipi di compiti e soddisfare le esigenze specifiche della propria compagnia.

Una buona notizia per tutti gli utenti della piattaforma di cloud computing di Microsoft, tuttavia questa mole di strumenti può potenzialmente mandare in confusione gli utenti alle prime armi che potrebbero perdersi tra i numerosi servizi offerti, senza comprendere nello specifico cosa in quali contesti sarebbe preferibile utilizzare un servizio piuttosto che un altro.

In questa sezione ci concentreremo dunque sul chiarire le differenze tra Azure Databricks e altri due dei più importanti servizi messi a disposizione da Azure, rispettivamente Synapse e Data Factory, per comprendere meglio in quali situazioni Databricks sia la scelta migliore per le proprie esigenze.

Azure Synapse vs. Azure Databricks

Azure Synapse ed Azure Databricks offrono funzionalità simili, tuttavia ci sono delle nette differenze tra loro. Databricks è un motore di elaborazione dati batch e in-stream costruito sull'affidabile Apache Spark, che consente la distribuzione su più nodi. Azure Synapse (precedentemente Azure SQL Data Warehouse), al contrario, pur potendo sfruttare a sua volta le capacità di Spark, può essere considerato una piattaforma unificata di analisi dati per sistemi big data e data warehouse.

Se l'esperienza dell'utente finale è orientata più verso la data science, se si lavora con molte librerie open source o si opera più strettamente nell’ambito del machine learning, Databricks potrebbe essere la scelta ideale.

Non solo ha le sue utilità di database per widget, dashboard e grafici, tutto basato su Jupyter Notebooks ma è anche piuttosto universale a livello di linguaggi di programmazione supportati, permettendo di eseguire Python, Spark Scholar, SQL, NC SQL e altro ancora. Inoltre, Databricks è progettato per funzionare come piattaforma centralizzata, il che significa che ha la sua UI unica e sistemi per la connessione tramite vari endpoint, come i connettori JDBC.

Tra i punti di forza di Synapse invece c'è la sua suite completa di strumenti. Fondamentalmente, Microsoft ha preso il tradizionale Azure SQL Data Warehouse e ha integrato tutti i componenti di integrazione di Data Factory per il movimento dei dati ETL e ELT ed è inoltre integrato Power BI per la componente di visualizzazione dei dati.

Poiché Synapse è basato su SQL tradizionale, la familiarità può essere vantaggiosa per le organizzazioni già esperte nella piattaforma di sviluppo, tuttavia la sua integrazione con Spark è sempre un po' indietro rispetto a Databricks per quanto riguarda gli aggiornamenti e le nuove funzionalità.

Il ritardo nell'aggiornamento delle nuove funzionalità è in parte compensato da uno degli strumenti principali di Synapse, che è Purview: essenzialmente un sistema di catalogazione utilizzabile per la governance dei dati. Ciò significa che un utente può prendere dati da due fonti e semplicemente inserirli in un data lake dove le informazioni possono essere trasformate, curate e addirittura ripulite prima di essere distribuite ad altri utenti per l'analisi.

Questa capacità di governance integrata facilita il tracciamento della linea di dati, permettendo a qualcuno di vedere facilmente uno schema di tabelle, sia su un sistema di file sia su un database e capire lo spostamento dei dati tra il punto di partenza e la destinazione.

Architettura moderna di data warehouse proposta da Microsoft

Azure Data Factory vs. Azure Databricks

Azure Data Factory è principalmente utilizzato per i servizi di integrazione dati, eseguire processi ETL e orchestrare movimenti di dati su larga scala mentre Azure Databricks è più orientato a fornire una piattaforma collaborativa per Data Engineer e Data Scientist per eseguire ETL e costruire modelli di Machine Learning sotto una piattaforma unica.

Databricks utilizza Python, Spark, R, Java o SQL per eseguire attività di Data Engineering e Data Science utilizzando i notebooks. ADF invece fornisce una funzionalità drag-and-drop e strumenti a interfaccia grafica più user-friendly per creare e gestire visualmente le data pipelines, consentendo di distribuire applicazioni a una velocità superiore.

Sebbene Data Factory faciliti il processo di pipeline ETL utilizzando strumenti GUI, gli sviluppatori hanno meno flessibilità in quanto non possono modificare il codice backend. Al contrario, Databricks implementa un approccio programmato che fornisce la flessibilità di ottimizzare le prestazioni regolando il codice.

Le aziende spesso eseguono il processamento batch o streaming quando lavorano con grandi volumi di dati. Mentre il batch tratta dati in blocco, lo streaming gestisce dati in tempo reale o di archivio (meno di dodici ore) in base alle applicazioni.

ADF e Databricks supportano entrambe le opzioni di batch e streaming, ma ADF non supporta lo streaming live, a differenza di Databricks che invece supporta entrambe le opzioni di streaming attraverso l'API di Spark.

Se un'azienda desidera sperimentare una pipeline ETL senza codice per l'integrazione dati, Azure Data Factory è la scelta migliore, dove Databricks fornisce invece ai suoi utenti più tecnici una piattaforma unificata di analytics per integrare vari ecosistemi per reporting BI, Data Science e Machine Learning al prezzo di una minore facilità d’uso.

Flusso di lavoro e pianificazione delle pipeline con Azure Databricks e Azure Data Factory

Azure Databricks Pricing: come ottimizzare i costi

Azure Databricks utilizza un modello di pagamento "pay-as-you-go", che consente di pagare solo per le risorse effettivamente utilizzate senza impegni a lungo termine. Questo modello è molto flessibile e adatto per le aziende che hanno carichi di lavoro variabili.

Tuttavia, per chi ha esigenze prevedibili e volumi di utilizzo stabili, Azure offre anche opzioni di "pre-acquisto" con sconti significativi per impegni a lungo termine. Questi piani consentono di ottenere tariffe più basse rispetto al modello pay-as-you-go in cambio di un impegno per un certo periodo di tempo (tipicamente uno o tre anni) e portare a risparmiare fino al 37% sulla spesa per l’utilizzo del servizio.

Il pricing si articola principalmente attorno al concetto di "DBU" (Databricks Unit), che è una misura di potenza di calcolo. Ogni attività computazionale su Azure Databricks consuma un certo numero di DBU, e il costo per DBU varia in base al livello di servizio e al tipo di istanza del cluster utilizzato.

Oltre al costo per DBU, è necessario considerare il costo delle risorse cloud utilizzate dai cluster. Azure addebita separatamente per il calcolo delle macchine virtuali (VM) e lo storage utilizzato. Il prezzo delle VM dipende dal tipo di istanza scelto (ad esempio, istanze standard, istanze ottimizzate per la memoria o per il calcolo), e può variare significativamente. Anche l'archiviazione ha un costo variabile, basato sulla quantità di dati memorizzati e sul tipo di storage (ad esempio, SSD o HDD).

Ci sono due livelli di servizio disponibili per l’acquisto e sono rispettivamente:

  • Standard: adatto per carichi di lavoro generali e fornisce un buon equilibrio tra costo e prestazioni. È l'opzione più economica ed è ideale per progetti di sviluppo e test.
  • Premium: con un costo leggermente superiore, offre funzionalità avanzate di sicurezza e gestione, come il controllo dell'accesso basato sui ruoli e il supporto per l'autenticazione a due fattori. È indicato per ambienti di produzione che richiedono un livello più alto di sicurezza e gestione.

Azure Databricks offre anche diversi componenti aggiuntivi e servizi complementari che possono influenzare il costo finale. Questi includono il supporto per i Data Engineering, che è ottimizzato per l'elaborazione ETL su larga scala, e il supporto per le Data Science e le Machine Learning. Anche questi componenti vengono addebitati in base all'uso e possono aggiungere un ulteriore livello di complessità al modello di pricing complessivo.

Per informazioni più dettagliate sui prezzi del servizio vi rimandiamo alla pagina ufficiale Microsoft (disponibile qui), dove il comodo strumento messo a disposizione vi permetterà di calcolare le opzioni di pricing in base a regione geografica, valuta, tipologia di servizio e tempo di impiego (calcolabile in ore o mesi).

Best practice per ottimizzare i costi di Azure Databricks

Come con tutti i servizi pay-as-you-go, è fondamentale per le aziende imparare ad ottimizzare i costi durante l'utilizzo della piattaforma, al fine di evitare sprechi e modulare la spesa complessiva in maniera intelligente.

Per farlo vi lasciamo qui sotto un elenco delle migliori pratiche e strategie che è possibile implementare per poter utilizzare le funzionalità di Azure Databricks senza scialacquare il proprio budget:

  • Scegliere il giusto livello di servizio: è necessario valutare le esigenze della propria organizzazione e selezionare il livello che offre le funzionalità necessarie senza incorrere in costi superflui.
  • Autoscaling: attivare l'autoscaling per i propri cluster Databricks, in modo da regolare dinamicamente il numero di nodi di lavoro in base al carico di lavoro aiuta a garantire l'uso ottimale delle risorse, riducendo i costi grazie a una gestione più oculata delle risorse di calcolo.
  • Terminare i cluster inattivi: impostare politiche di terminazione automatica dei cluster dopo un periodo di inattività evita di pagare per risorse non utilizzate quando i cluster sono inattivi.
  • Utilizzare istanze spot: le istanze spot sono risorse Azure non utilizzate offerte a tariffe scontate e possono essere utilizzate per i propri cluster databricks per ridurre i costi di calcolo, anche se possono essere reclamate da Azure con breve preavviso. Sono adatte per carichi di lavoro tolleranti ai guasti o per ambienti di sviluppo e test.
  • Ottimizzare l'archiviazione dei dati: è consigliato utilizzare formati dati efficienti come Parquet o Delta Lake, che offrono compressione integrata e riducono i costi di archiviazione e conservare i propri dati in servizi di archiviazione economici come Azure Blob Storage o Azure Data Lake Storage.
  • Cache dei dati: memorizzare nella cache i dati a cui si accede frequentemente per ridurre il numero di operazioni di I/O su disco e migliorare le prestazioni porta a un’esecuzione più veloce e a una riduzione significativa del tempo di esecuzione del cluster e, di conseguenza, a costi di utilizzo inferiori.
  • Ottimizzare le query e le trasformazioni: per minimizzare lo spostamento dei dati e ridurre il tempo di esecuzione dei tuoi job si può ottimizzare la scrittura delle query e delle trasformazioni utilizzando tecniche come il pruning delle partizioni, il pushdown dei predicati e i join broadcast per migliorare le prestazioni.
  • Monitorare e analizzare l'uso: scontato dirlo, ma è necessario tenere sempre sotto controllo e analizzare regolarmente l’utilizzo di Databricks mediante gli strumenti messi a disposizione da Azure come Cost Management, Azure Monitor e le metriche di utilizzo di Databricks, per identificare rapidamente le aree di inefficienza e ottimizzare di conseguenza i costi operativi.

Conclusioni

Azure Databricks è al momento tra i servizi dedicati all’ambito analytics di Azure più utilizzati e apprezzati da compagnie di ogni tipo e dimensione, che può soddisfare le esigenze sia degli ingegneri dei dati che dei data scientist per la creazione di soluzioni complete di big data end-to-end e il loro deploy in produzione.

Utilizzato dagli ingegneri dei dati per configurare l'intera architettura, creando cluster, pianificando ed eseguendo job, stabilendo connessioni con le fonti di dati, ecc., e dai data scientist per eseguire operazioni di machine learning e analisi in tempo reale, Azure Databricks mette a loro disposizione un largo numero di opzioni di customizzazione e la versatilità di una piattaforma compatibile con i maggiori linguaggi di programmazione utilizzati nel settore.

La piattaforma si conferma dunque come una delle scelte migliori per tutte quelle aziende che hanno bisogno di eseguire analisi dati complesse o compiti di machine learning in maniera efficiente e scalabile, dandogli modo di soddisfare le loro esigenze sfruttando la potenza dei data center messi a disposizione dalla piattaforma di cloud computing di Microsoft.

FAQ su Azure Databricks

Che cos'è Azure Databricks?

Azure Databricks è una piattaforma avanzata di analisi basata su Apache Spark e integrata in Microsoft Azure, che facilita l'ingegneria dei dati, il machine learning e l'analisi dei big data.

Quali sono i principali componenti di Azure Databricks?

I principali componenti di Azure Databricks includono Workspace, Notebook, Cluster, Job, Librerie e Fonti di Dati.

Come funziona l'architettura di Azure Databricks?

L'architettura di Azure Databricks è suddivisa in Control Plane, che gestisce i workspace, e Computing Plane, che gestisce l'elaborazione dei dati.

In cosa Azure Databricks differisce da Azure Synapse?

Azure Databricks è ottimizzato per data science e machine learning con Apache Spark, mentre Azure Synapse è una piattaforma di analisi dati più completa.

In cosa Azure Databricks differisce da Azure Data Factory?

Azure Data Factory è principalmente per i processi ETL, mentre Azure Databricks è una piattaforma collaborativa per ingegneria dei dati e data science.

Qual è il modello di pricing per Azure Databricks?

Azure Databricks utilizza un modello "pay-as-you-go" basato su Databricks Units (DBU), con opzioni di pre-acquisto scontate disponibili.

Come posso ottimizzare i costi in Azure Databricks?

Puoi ottimizzare i costi scegliendo il livello di servizio corretto, utilizzando l'autoscaling, terminando i cluster inattivi e sfruttando formati dati efficienti.

Quali linguaggi di programmazione supporta Azure Databricks?

Azure Databricks supporta Python, Scala, R e SQL, offrendo flessibilità per vari compiti di elaborazione dei dati e machine learning.

Quali sono le best practice per usare Azure Databricks?

Le best practice includono ottimizzare le query, memorizzare nella cache i dati frequentemente accessibili e monitorare regolarmente l'uso per ridurre i costi.

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