In-memory database: archiviazione di Big Data

La comunicazione digitale genera quantità sempre maggiori di dati (parola chiave: Big Data. Questa è una grande opportunità per le aziende che lavorano con dati di questo tipo. Tuttavia, maggiore è la mole di dati a disposizione di un'azienda, più grande è la sfida di filtrare, interrelazionare, modellizzare e valorizzare questi dati. Per supportare le aziende nell'elaborazione del flusso di informazioni sono necessari soluzioni e sistemi informatici appositi. L'analisi dei dati mediante database tradizionali non è più sufficiente per archiviare, consultare ed elaborare grandi raccolte di dati. Gli in-memory database entrano in scena proprio quando i database classici raggiungono i loro limiti.

Cosa sono gli in-memory database?

Un in-memory database (IMDB) si basa su un sistema di gestione di database che archivia le raccolte di dati direttamente nella memoria centrale di uno o più computer. L'uso della memoria centrale ha un vantaggio decisivo, perché consente agli in-memory DB di raggiungere velocità di accesso significativamente più elevate e quindi di fornire i dati archiviati molto più rapidamente.

Fatto

La memoria centrale viene chiamata anche RAM (Random Access Memory) e contiene tutti i programmi, le parti di programma e i dati richiesti che sono attualmente in esecuzione. All'arresto del computer, tutti i dati memorizzati a breve termine vanno persi.

Come funzionano gli in-memory database?

Gli in-memory database memorizzano enormi quantità di dati e forniscono una serie di risultati di analisi. Ma come funziona esattamente l'archiviazione dei Big Data e quali sono le tecnologie necessarie?

Come avviene l'archiviazione dei dati

Nell'archiviazione dei dati con un in-memory database si distingue tra archiviazione basata su colonne e su righe (alcuni sistemi di database adottano entrambi i modelli). Le banche dati che sfruttano un modello a righe organizzano i record di dati raccolti in una sola riga. Se, ad esempio, vengono salvati i valori nome, città e paese, i dati saranno disposti come segue: nome 1, luogo 1, paese 1, nome 2, luogo 2, paese 2. Se invece viene adottato un modello di archiviazione a colonne, i rispettivi dati vengono assegnati alle categorie corrispondenti: nome 1, nome 2, luogo 1, luogo 2, paese 1, paese 2.

Il formato di archiviazione dei dati in colonna viene definito columnstore. Raggruppare i dati con valori identici consente al sistema di ridurre al minimo la quantità dei dati esistenti diminuendo, di conseguenza, lo spazio di archiviazione richiesto e i tempi di trasmissione. Questo favorisce inoltre le prestazioni di analisi, poiché non è necessario analizzare tutte le colonne, ma solo quelle rilevanti. Questa forma di valutazione dei dati è chiamata Columnar Projection.

Le tecnologie di archiviazione di Big Data

Il concetto di in-memory database non è nuovo. I fondamenti delle tecnologie dei database sono stati sviluppati già a metà degli anni '80, ma a causa dell'inadeguatezza delle infrastrutture informatiche non è stato possibile attuarle con successo. Le moderne architetture informatiche, come i data warehouse, la tecnologia a 64 bit e i processori multi core, hanno infine permesso di implementare il concetto in modo più concreto, anche grazie alla disponibilità di memorie centrali sempre più economiche, che ne ha favorito ulteriormente la diffusione.

  • Nella maggior parte dei casi gli in-memory database appartengono a un data warehouse. Questi sistemi di database raccolgono e comprimono dati provenienti da varie fonti, li archiviano a lungo termine e li preparano per la successiva analisi.
  • La tecnologia a 64 bit consente di aumentare la capacità della memoria centrale, che può raggiungere dimensioni fino a diversi terabyte. Gli in-memory DB sono quindi all'altezza di grandi quantità di dati.
  • I processori multi core sono composti da più core che lavorano in un unico chip, con conseguente miglioramento della potenza di calcolo e una maggiore velocità di trasmissione dei dati. Il flusso di dati indica la quantità netta di dati trasferiti per volta.

Quali sono i processi coinvolti nell'utilizzo degli in-memory database?

L'esecuzione pratica degli in-memory database prevede alcuni processi ricorrenti e identici. Un in-memory database esegue i seguenti passaggi per archiviare dati:

  1. Avvio del database: all'avvio del database il sistema carica l'intero set di dati dal disco rigido nella memoria centrale. Questo evita di dover caricare altri dati durante l'esecuzione del database.
  2. Sincronizzazione dei dati modificati: qualora i dati venissero modificati, il database li sincronizza a intervalli regolari.
  3. Backup nei log delle transazioni: le modifiche effettuate vengono salvate nei cosiddetti transaction log. Se si verifica un errore, il database può essere ripristinato al momento precedente la comparsa dell’errore. Questo processo viene definito "roll-forward".
  4. Elaborazione dei dati: come per le banche dati tradizionali, i dati vengono elaborati secondo il principio ACID (Atomicità, Consistenza, Isolamento e Durabilità), che descrive le proprietà desiderate dei processi nei sistemi di gestione dei database.
  5. Replicazione del database: a scopo di backup il processo copia continuamente i dati dal database su un computer o server.

Vantaggi e svantaggi degli in-memory database

Come già accennato, gli in-memory database sono in grado di raggiungere velocità di accesso significativamente più elevate archiviando i dati nella memoria centrale. Il vantaggio degli in-memory database è allo stesso tempo la causa del loro maggiore svantaggio, perché la memoria centrale non consente un'archiviazione permanente dei dati. Quali sono gli altri vantaggi e svantaggi?

In-memory database: i vantaggi

Il più grande vantaggio dell'utilizzo degli in-memory database è la velocità di accesso significativamente più elevata, resa possibile grazie all'uso della memoria centrale. Questo garantisce anche un'analisi più rapida dei dati e un calcolo preciso del tempo della query. L'accelerazione, tuttavia, non è l'unico elemento che contribuisce a ottimizzare l'analisi dei dati. Gli in-memory DB consentono di elaborare sia dati strutturati che non strutturati provenienti da qualsiasi sistema. Finora, l'archiviazione e l'elaborazione di una grande mole di dati non strutturati, come testi, immagini, file audio e video, rappresentavano processi piuttosto complicati per aziende e soluzioni software.

L'utilizzo di infrastrutture distribuite consente invece di archiviare dati non strutturati in un in-memory DB grazie alla collaborazione in parallelo di più unità di calcolo (computer, processori, ecc.) che lavorano su un compito comune (parallelismo) e distribuiscono i dati a diversi cluster di server. In questo modo vengono garantite una maggiore capacità di archiviazione e una più elevata velocità di elaborazione e trasmissione di dati non strutturati.

In-memory database: gli svantaggi

Da un lato l'utilizzo della memoria centrale garantisce una maggiore velocità di accesso, ma dall'altro comporta anche uno svantaggio considerevole, perché consente soltanto un'archiviazione a breve termine dei dati. In caso di crash del sistema tutti i dati volatili andrebbero persi. Sono stati elaborati i seguenti metodi per evitare la perdita di dati:

  • Snapshot del database: in determinati momenti, ad esempio a intervalli prestabiliti o prima dell'arresto, viene memorizzata la versione corrente del database. Tuttavia, il punto debole di questa misura è che tutti i file che vengono aggiunti dopo l'ultimo snapshot non vengono memorizzati.
  • Backup nei log delle transazioni: un metodo di backup integrato nel processo è il salvataggio delle modifiche nei transaction log. Questi, combinati con snapshot regolari, consentono di ripristinare l'ultima versione del database in caso di crash.
  • Replicazione: la maggior parte degli in-memory database dispone già della funzione per archiviare una copia esatta del database su un disco rigido tradizionale. In questo modo in caso di guasto è possibile ripristinare il database archiviato.
  • Memoria RAM non volatile: una memoria RAM, se combinata con un dispositivo di accumulo di energia, è in grado di recuperare i file anche dopo il riavvio del sistema.

L'uso della memoria centrale comporta anche un altro svantaggio, perché la RAM che rimane a disposizione del computer stesso si riduce. Il grid computing in rete può essere una soluzione per contrastare questa limitazione. Nel grid computing molti computer diversi si collegano tra loro. Per partecipare a questa rete è necessario installare un software apposito sul computer. Combinando le capacità inutilizzate viene creato un computer virtuale ad alte prestazioni.

In-memory database vs database tradizionali

Una banca dati è generalmente intesa come una raccolta di informazioni solitamente disponibile in formato elettronico. I database tradizionali archiviano unicamente dati strutturati. Si parla di dati strutturati quando campi di dati univoci vengono organizzati in record di dati concreti. I record di dati vengono disposti in tabelle, dove ogni campo rappresenta un attributo diverso, con una relativa denominazione. Il movimento Big Data ha spinto il modello ai suoi limiti, evidenziandone i punti deboli nell'archiviazione e nell'elaborazione di grandi quantità di dati. Un'altra sfida è la ridotta adattabilità del database. Dati non strutturati, come immagini e documenti in linguaggio naturale, non possono essere archiviati ed elaborati.

  In-memory database Banca dati tradizionale
Dati Strutturati e non strutturati Strutturati
Velocità di accesso In tempo reale Lenta
Sicurezza dei dati Ridotta Elevata

Quando scegliere un in-memory database per la propria azienda

Dopo aver presentato i vantaggi e gli svantaggi degli in-memory database e averli confrontati direttamente con i database tradizionali, dovreste avere già un'idea di quale sistema di gestione di database (DBMS) è più adatto alle vostre esigenze. Se lavorate con una mole di dati molto grande non avete altra opzione che scegliere un in-memory DB. Il database nella memoria centrale potrebbe tuttavia essere la scelta giusta anche in altri scenari.

Un in-memory database è il DBMS più adatto per voi, se:

  • disponente di un'ampia raccolta di dati;
  • necessitate di un accesso rapido e frequente ai vostri dati;
  • i vostri sistemi o server di gestione dei database esistenti sono sovraccarichi;
  • la persistenza dei vostri dati non ha la massima priorità;
  • potete tollerare il rischio di una possibile perdita dei vostri dati.

Esempi di in-memory database

Tra i più noti in-memory database ricordiamo SAP HANA e Oracle TimesTen. Per aziende alla ricerca di software aziendale con ricche funzionalità le soluzioni SAP e Oracle sono le più popolari. Entrambi i sistemi di gestione dei database raggiungono le massime prestazioni possibili. Cosa li distingue e qual è il loro uso pratico in azienda?

SAP HANA (High Performance Analytic Appliance)

L'in-memory database SAP HANA (High Performance Analytic Appliance) è una combinazione di hardware e software. Il software è stato sviluppato direttamente da SAP, mentre l'hardware (server) proviene da 10 produttori diversi. A differenza di altri in-memory database, SAP HANA non archivia i dati temporaneamente, ma permanentemente nella memoria centrale e salva i dati utilizzando i log delle transazioni.

L'elaborazione di transazioni e analisi in una banca dati comune consente di elaborare le informazioni in tempo reale. SAP HANA può essere utilizzato sia sul server aziendale che nel cloud, alleggerendo così le strutture informatiche dell'azienda. I costi dei metodi di gestione dati finora utilizzati vengono inoltre ridotti al minimo e i responsabili decisionali ricevono nuove e accurate previsioni.

Oracle TimesTen

Il database di Oracle e quello di SAP hanno molto in comune. Anche in questo caso l'elaborazione dei dati avviene in tempo reale e l'applicazione può essere utilizzata sia sul server che nel cloud. A differenza del database di SAP, il software e l'hardware di Oracle TimesTen vengono entrambi sviluppati da Oracle stessa.

Si tratta dunque di un'applicazione Oracle pura. Il vantaggio che ne deriva per l'utente è che in caso di errore si può agire internamente e l'azienda non dipende da diverse società hardware e software. Oracle non archivia i dati raccolti esclusivamente nella memoria centrale: i dati che non necessitano di prestazioni elevate possono, infatti, essere archiviati sul disco rigido o su un disco flash.

Confronto di in-memory database: SAP HANA e Oracle TimesTen

Le funzioni di SAP HANA e Oracle TimesTen sono sostanzialmente identiche. Questo significa che anche i vantaggi principali che le due soluzioni possono offrire alla vostra azienda sono identici:

  • Elaborazione più rapida dei dati
  • Riorientamento dell'azienda grazie ad applicazioni innovative
  • Maggiore agilità in termini di flessibilità, attività e adattabilità

La seguente tabella riassume le differenze e le similitudini tra i due in-memory database:

  Oracle TimesTen SAP HANA
Archiviazione dei dati Archiviazione dei dati su RAM, disco rigido e flash disk Archiviazione permanente dei dati nella memoria centrale
Software e hardware Software e hardware di Oracle Software di SAP, hardware di produttori vari
Installazione Hardware e servizio cloud Hardware e servizio cloud
Database Database colonnare Database colonnare
Gestione delle informazioni aziendali (EIM) Ottimizzazione dei processi aziendali attraverso varie funzioni di gestione dei dati Ottimizzazione dei processi aziendali attraverso varie funzioni di gestione dei dati
Big Data Sviluppato per Big Data Sviluppato per Big Data
Elaborazione dei dati In tempo reale In tempo reale
Analisi dei dati Direttamente nel database Direttamente nel database

Sfide degli in-memory database

Con l'avanzare della digitalizzazione le già ingenti quantità di dati continueranno a crescere. Il costante sviluppo dei sistemi esistenti è quindi un aspetto cruciale per gli sviluppatori di in-memory database. Questo sviluppo deve concentrarsi sui seguenti aspetti:

  • Acquisizione di dati da un numero crescente di fonti
  • Semplificazione ulteriore delle strutture informatiche, riduzione dei tempi di risposta e incremento delle velocità di analisi
  • Ottenere maggiori informazioni dall'analisi dei dati e sostenere le aziende nei processi decisionali
  • Sviluppo di applicazioni ancora più orientate alle sfide del cambiamento digitale

In sintesi

Gli in-memory database si sono affermati come una tecnologia di successo per l'archiviazione e l'elaborazione dei dati nella memoria centrale. Consentono per la prima volta alle aziende che devono gestire grandi quantità di dati di analizzare i Big Data il più rapidamente possibile e di accedervi in qualunque momento. Un uso efficace degli in-memory database è tuttavia possibile solo se il luogo di archiviazione dei dati non si limita esclusivamente a un in-memory database e se nei processi vengono integrati anche sistemi standardizzati per il backup dei dati.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top