Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Basi di Dati
In memory database management con
SAP HANA
Anno Accademico 2013/2014
Candidato:
Angelo Maisto
matr. N46000645
Indice
Introduzione
4
Capitolo 1. Big Data
5
1.1
Le 3Vs
6
Capitolo 2. SAP HANA
2.1
2.2
2.3
2.4
2.5
Capitolo 3.
3.1
3.2
7
L’azienda SAP
La piattaforma HANA
L’architettura
L’archiviazione in tabelle
Backup & Recovery
7
8
10
14
17
In-memory database
18
Proprietà ACID
Compressione
18
20
Sviluppi futuri
Bibliografia
21
22
III
In memory database management con SAP HANA
Introduzione
Il seguente elaborato dal titolo In memory database management con SAP HANA,
tratterà nel primo capitolo, una panoramica del concetto di Big Data.
Nel secondo capitolo si esporrà in maniera approfondita la piattaforma HANA,
sviluppata dalla SAP, incentrando lo studio sulla capacità di poter analizzare ed
effettuare analisi in tempo reale.
Seguirà la specifica dettagliata di tutti i componenti dell’architettura, delle tecniche
di compressione e di backup & recovery, adoperate dall’appliance HANA.
Nel terzo ed ultimo capitolo si parlerà della relatà dirompente dei database inmemory, delle relative proprietà e caratteristiche e di come SAP HANA utilizza
tale tecnologia.
4
Capitolo 1
Big Data
L’esplosione digitale del ventunesimo secolo ha generato un’increscente
proliferazione di dati: e-mail inviate da smartphone, post provenienti dai social
network, transazioni di pagamenti gestiti tramite circuiti e-banking, misure attuate
da sensori sparsi in ogni angolo del globo…
Il quantitativo di dati prodotto da individui e dispositivi connessi in rete, si stima in
zettabyte, ordine di grandezza pari ad un triliardo di byte.
Il termine adatto a descrivere un enorme quantitativo di dati strutturati e non,
estremamente complesso, prende il nome di Big Data.
Il concetto di database tradizionale non è più sufficiente a garantire un’analisi
contemporanea di un data set così esteso di dati non strutturati.
5
1.1 Le 3Vs
La descrizione più diffusa del termine Big Data, si riferisce ad un modello 3Vs, in
cui si descrivono i Big Data come set di dati che necessitano di Volume, Velocità e
Varietà.

Volume: fa riferimento all’enorme quantitativo di dati da archiviare ed
analizzare.

Velocità: esprime la possibilità di poter effettuare analisi ed elaborazioni
quasi in tempo reale.

Varietà: grandi volumi di dati, vuol dire anche enorme tipologia di dati
(strutturati e non strutturati) provenienti da fonti differenti.
6
Capitolo 2
SAP HANA
2.1 L’azienda SAP
La multinazionale europea SAP (Systems, Applications, and Product in data
processing)
la
cui
traduzione
sta
per
Sistemi,
Applicazioni
e
Prodotti
nell’elaborazione dati, è leader mondiale nel settore enterpise ed ERP, acronimo
che sta per “Enterprise Resource Planning”, letteralmente pianificazione delle
risorse d’impresa; consiste in un sistema informativo che ingloba tutti i processi
aziendali che spaziano dal settore di vendita a quello di magazzino.
L’azienda nasce in Germania nel 1972 dall’idea di 5 ingegneri di nome: Hasso
Plattner, Dietmar Hopp, Klaus Tschira, Hans-Werner Hector e Claus Wellenreuther;
lo scorso 2012 la società ha compiuto 40 anni di attività, divenendo tutt’oggi un
punto di riferimento per le imprese e conta ad oggi 55.000 dipendenti in oltre 50
Paesi e si stimano 200.000 clienti in tutto il mondo.
7
L’azienda ha definito un proprio linguaggio di programmazione di nome ABAP e nel
1992, ha prodotto la versione client - server del software SAP ERP, rinominato
SAP R/3.
2.2 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP, è un data
ware house in grado di analizzare in tempo reale ingenti volumi di dati operativi e
transazionali provenienti dal settore enterpise.
Sviluppata in sostituzione dei sistemi di gestione di database relazionali su
disco, consente di archiviare all’interno della memoria principale terabyte di dati e
informazioni, analizzarli ed elaborarli in maniera efficiente e performante,
riducendo notevolmente i tempi e i costi ai fini di un processo decisionale. I fattori
predominanti che hanno consentito l’introduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi: un crescente
aumento della disponibilità di archiviazione e notevole riduzione dei costi delle
memorie volatili nell’ultimo decennio e l’elevata differenza di velocità che sussiste
tra
le
memorie
RAM
e
i
supporti
di
archiviazione
persistenti.
Il grafico seguente, mostra la notevole differenza di ordini di grandezza in termini
di velocità elaborativa
da
parte
memorie
delle
volatili
e
permanenti.
L’immissione
della
piattaforma
SAP
HANA sul mercato,
ha
completamente
rivoluzionato in senso
positivo,
il
settore
dell’elaborazione
dei
8
dati aziendali. Con l’ausilio del database SAP HANA è possibile eseguire analisi
approfondite, aggiornamenti dei dati al minuto, svolgere in modo molto rapido ed
efficiente, processi che prima richiedevano giorni se non mesi.
Prima della sua introduzione nello scenario di elaborazione dei dati d’impresa, i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali: garantire l’OLTP, acronimo di On-Line Transaction Protection ovvero
funzionare come sistema di gestione dei dati, essere in grado di catturare ed
elaborare in maniera precisa le transazioni alla velocità del mercato, classificarle
correttamente, immagazzinarle e renderle rapidamente accessibili.
Il secondo obiettivo era quello di raccogliere i dati, analizzarli e presentarli
mediante sistemi informativi e di gestione, operazione che odiernamente va sotto
il nome di business intelligence o tecnicamente OLAP, acronimo di On-Line
Analytical Processing.
L’elemento principale dell’architettura OLAP è una particolare base di dati
chiamata data ware house, letteralmente “magazzino dei dati”, in cui sono
contenuti dati che analizzati in maniera opportuna, possono garantire un supporto
alle decisioni e una programmazione delle attività future di una data impresa.
Elemento preponderante è che mentre nelle tradizionali tecnologie, il processo di
elaborazione dei dati avviene a livello applicativo, con SAP HANA tale fase viene
effettuata direttamente a livello del database e solo il risultato delle query viene
trasferito e visualizzato dall’utente. La seguente appliance consente di eseguire
query complesse su miliardi di record in pochi secondi; le fasi di aggiornamento,
inserimento e caricamento dei dati nel database sono rese ancora più snelle dal
fatto che in memoria, i dati non sono aggregati o indicizzati e inoltre tutte le
operazioni a run-time, ad eccezione del logging, vengono eseguite in-memory.
La grande novità di SAP HANA consiste nel fatto che supporta sia OLTP che
OLAP custodendo tutti i dati in una copia e sempre in memoria. In tal modo, i
diversi programmi che devono attingere ai dati possono utilizzare le stesse basi di
9
dati senza commettere errori e ritardi. Tutti i dati sono sempre aggiornati e
facilmente accessibili.
2.3 Architettura
SAP HANA è un database in-memory, basato su approccio relazionale, ottimizzato
per l’archiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura “column-oriented”. La tecnologia in-memory consente di elaborare
enormi volumi di dati, compiere analisi operative e transazionali sulle informazioni
estratte. SAP HANA è stato sviluppato principalmente nel linguaggio di
programmazione C++ e progettato per essere eseguito su sistema operativo
SUSE
Linux
Enterprise
Server.
La seguente figura mostra nei particolari, l’architettura della piattaforma.
Analizziamo i componenti della piattaforma:

Index Server: è il componente principale del database SAP HANA, in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
10
effettuare un processo elaborativo su di essi. Il server di indicizzazione
gestisce anche le richieste SQL o MDX in caso di sessioni e transazioni
autenticate.

Preprocessor Server: viene adoperato dal server di indicizzazione per
analizzare dati testuali ed estrarre informazioni sulla base di ricerche mirate.

Statistical Server: effettua una raccolta di dati inerenti allo stato attuale del
sistema, metriche per la valutazione delle prestazioni, allocazione e
consumo delle risorse. Il compito principale è quello di garantire un continuo
monitoraggio della piattaforma.

Name Server: contiene le informazioni riguardanti la topologia di database
SAP HANA. In un sistema multi - server distribuito, tiene traccia del numero
e del tipo di componenti in esecuzione e su quale server essi sono operativi.
Il name server registra al suo interno anche quali dati sono in fase di
elaborazione e qual è il server in questione.

XS Engine: il termine XS, sta per extended service; tale motore, fornisce una
estensione del modello di database in un modello di consumo, consentendo
alle applicazioni esterne di comunicare con la piattaforma mediante richieste
http.

Client Application: sono le applicazioni che è possibile ospitare sulla
piattaforma; è possibile accedere al database via browser mediante XS
Engine.
11
L’index server, svolge una serie di funzioni atte ad ottimizzare, velocizzare e
rendere performante la fase analitica dei dati, garantendo un elevato livello di
sicurezza e protezione delle informazioni contenute nell’appliance SAP HANA. I
componenti essenziali che sono racchiusi nel server di indicizzazione sono elencati
nella prossima figura.

Connection and Session Management: si occupa di gestire le sessioni e le
connessioni ad opera dei client di database, consentendo loro di comunicare
con l’appliance mediante istruzioni SQL. La sessione viene stabilita in seguito
all’inserimento delle proprie credenziali o demandando la richiesta di accesso
ad un provider di autenticazione esterno come ad esempio una directory
LDAP.

Authorization Manager: il suo compito è quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
12
(creazione, aggiornamento, selezione, inserimento) su un particolare oggetto
(vista, tabella, SQLScript) all’interno della piattaforma.

SQL Processor: è un altro elemento essenziale del server di indicizzazione in
quanto gestisce la fase di creazione e invio delle query, garantendo elevati
livelli di prestazioni ed efficienza. Il database possiede un proprio linguaggio di
scripting, denominato SQLScript, altro non è che un’estensione dell’SQL.
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione all’interno di SAP HANA:

MDX, Multidimensional Expression Engine: è un linguaggio per
l'interrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP.

Planning Engine: è il motore che si occupa di eseguire
operazioni
di
pianificazione
di
base
tramite
applicazioni
finanziarie all’interno del database.

Procedure Store Processor: ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure.

Calculation Engine: effettua tutti i calcoli all’interno del database;
nessun dato viene spostato a livello applicativo prima del termine
dell’elaborazione. Consente l’elaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione.
 Transaction Manager: si prende cura del coordinamento e dell’isolamento
delle transazioni che avvengono all’interno del database e tiene traccia sia
13
delle operazioni in corso che di quelle commited. Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affinché siano garantite transazioni atomiche e durevoli.
 Metadata Manager: è il gestore che si occupa di accedere ai metadati
presente nella piattaforma; essi sono tutti archiviati in un catalogo comune
a tutti i motori del database, sotto forma di tabelle, viste, indici e definizioni
di funzioni di script.
Persistence Layer: è lo strato responsabile della durabilità e dell’atomicità delle
transazioni che avvengono all’interno dell’appliance SAP HANA. In caso di
commit mancato da parte di una transazione, esegue il completo annullamento
dell’operazione. In seguito ad un riavvio dell’intero sistema, si preoccupa di
garantire i punti di ripristino, assicurandosi di riportare il database in uno stato
consistente.
2.4 L’archiviazione in tabelle
Le tecniche di archiviazione dei dati all’interno del database, in forma tabellare
sono le seguenti:

Row-based: i dati sono archiviati in tabelle sotto forma di riga.

Column based: lo storage dei dati avviene in maniera colonnare.
In memoria la tecnica row-stored è gestita nel seguente modo: in ciascuna
locazione contigua, è presente un campo della riga “in esame”, della tabella; nella
modalità column-stored, invece, in ciascuna locazione contigua della memoria, è
presente un campo della colonna “in esame” della tabella.
La seguente figura, illustra quanto detto:
14
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile, veloce e performante, è proprio quella di adoperare un approccio
column-oriented, rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented, quest’ultima comunque supportata
dalla piattaforma HANA.
I componenti del database SAP HANA che si occupano di gestire le due tecniche
di archiviazione sono i seguenti:

Row-store engine: gestisce la tecnica row-based.

Column-store engine: gestisce la tecnica column-based.
15
Ambedue i motori, hanno in comune il Layer Persistence, in modo tale da
garantire la persistenza dei dati in entrambe le modalità di archiviazione.
L’approccio column based, consente di avere:

Rapido accesso ai dati: ciascuna colonna può essere vista
come un indice; all’atto della richiesta di una query, solo le
colonne interessate vengono esaminate per fornire una
risposta.

Migliore livello di compressione: la molteplice ripetitività delle
informazioni presenti nelle colonne, garantisce un livello di
compressione molto efficiente.

Miglior grado di parallelismo: a ciascun core del processore
può essere assegnata una colonna di una tabella.
Nel caso di row-based, invece si ha:

Ridotto tempo di elaborazione: in un unico ciclo di esecuzione
viene esaminato l’intero record, riducendo il tempo di analisi
dei dati.

Ridotte dimensioni della struttura: le dimensioni delle tabelle
nel caso di archiviazioni basate su righe, sono molto più
piccole del caso column-oriented, garantendo una ridotta
dimensionalità dell’intero database.

Semplificazione delle operazioni di insert e update.
16
2.5 Backup & Recovery
La completa disponibilità di tutti i dati in memoria centrale, riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di I/O, tali, pur sempre
necessari per
ovviare ad un’ingente perdita di dati in caso di un’improvvisa
mancanza di alimentazione o eventuale catastrofe, poiché a differenza della
memoria RAM, volatile, essi sono in grado di memorizzare in maniera persistente
e
permanente
i
dati
al
loro
interno.
La memoria in SAP HANA è suddivisa in pagine salvate sull’hard disk in seguito
ad una modifica dei dati ad opera di una transazione. Per tenere traccia di tutte le
modifiche apportate ai dati, viene adoperato un registro in cui sono annotate tutte
le variazioni. Ogni transazione committed, genera un log entry che viene scritto su
disco; questo approccio, assicura che tutte le transazioni siano permanenti. In
maniera del tutto indipendente, ad intervalli con cadenze regolare, avviene il
salvataggio dei dati su
disco, in modo tale da
ovviare
ad
un’ingente
perdita di dati in caso di
un’improvvisa
di
assenza
alimentazione.
caso
di
In
riavvio
improvviso del sistema,
è possibile ripristinare il
database
dal
punto
precedente
al
guasto
interrotto,
con
un
approccio basato su disco.
17
Capitolo 3
In-memory database
Con l’esponenziale aumento dei Big Data, si è sentita sempre più la necessità se
non l’esigenza, di adoperare un cambio generazionale nel settore della gestione
dei dati, puntando non più su supporti di memorizzazione permanenti, bensì su
memorie volatili.
Dal concetto di database relazionale in cui i dati sono archiviati su disco, si è
passati ad una gestione in-memory del database, archiviando i dati direttamente
in memoria principale.
Con l’acronimo IMDB, In-Memory DataBase, s’intende appunto un sistema di
gestione dei dati con la suddetta caratteristica.
3.1 Proprietà ACID
Nell’ambito dei database, le caratteristiche a cui devono sottostare le transazioni
che avvengono al loro interno, sono inglobate nel termine ACID, acronimo che sta
per: Atomicity, Consistency, Isolation e Durability. In dettaglio, esprimono quanto
segue:

Atomicità: l’esecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile,
atomica.
18

Consistenza: terminata una transazione, il database si deve trovare in uno
stato coerente a quello iniziale; devono essere garantiti eventuali vincoli di
integrità; non si devono verificare condizioni di inconsistenza tra i dati
archiviati.

Isolamento: deve essere garantita la completa indipendenza e il totale
isolamento della transazione nel momento in cui essa è in esecuzione, in
modo da non interferire con altre operazioni in corso.

Durabilità: detta anche persistenza, si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work, i cambiamenti apportati non
dovranno essere più persi. Per evitare che nel lasso di tempo fra il momento in
cui la base di dati si impegna a scrivere le modifiche e quello in cui li scrive
effettivamente si verifichino perdite di dati dovuti a malfunzionamenti, vengono
tenuti dei registri di log dove sono annotate tutte le operazioni sul DB.
Per quanto riguarda i database in-memory, l’unico parametro a non essere
soddisfatto è la persistenza, in quanto un improvviso calo di alimentazione
dell’intera piattaforma su cui opera il database, provocherebbe la perdita di tutti i
dati in memoria principale, essendo quest’ultima volatile. La soluzione è quella di
adottare dischi astato solido o dispositivi flash.
1
Commit work: in SQL si riferisce alla terminazione di una transazione.
19
3.2 Compressione
Nei database in-.memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati all’interno della memoria principale, vengono comunque
adoperate tecniche di compressione; lavorando mediante dizionari, è possibile
associare a parti testuali, numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dell’intero database.
In figura è mostrato un esempio in cui avviene tale tecnica.
Il livello di compressione che si ottiene, dipende dalla tipologia di dati presenti
nelle tabelle del database: attributi con pochi valori distinti consentono una
compressione migliore rispetto a dati con molti valori differenti.
20
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
l’implementazione di un progetto che prevede l’interazione tra auto connesse ed
ambiente circostante con l’ausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilità di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione più vicina,
pagando il pieno grazie ai servizi cloud.
21
Bbliografia
[1]
Bachmaier M., Krutov I., In-memory Computing with SAP HANA on
IBM, IBM ReedBooks, 2014, 286.
[2]
www.mtfbs.com,
http://www.mtfbs.com/Soluzioni/SAP-Business-
One/SAP-HANA.html, 21/02/2015.
[3]
www.newslettertracking.it,
http://www.newslettertracking.it/mk/get/Understanding%20SAP%20H
ANA%20%20Italian.pdf?_EL=JbXLNB3ibIynO9j_cTx5bY&_EALANG=it_IT,
18/02/2015.
[4]
www.grupposistema.it,
http://www.grupposistema.it/docs/default-
source/brochure/board_hbmp.pdf?sfvrsn=2 , 20/02/2015.
[5]
robertocagliuso.xoom.it,
http://robertocagliuso.xoom.it/virgiliowizard/saphana?SESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a, 19/02/2015.
[6]
it.wikipedia.org, http://it.wikipedia.org/wiki/ACID, 21/02/2015.
[7]
www.fabbricafuturo.it , http://www.fabbricafuturo.it/index.php/velocitaaziendale-e-tecnologie-in-memor, 21/02/2015.
[8]
www.runtime.it,
http://www.runtime.it/it/soluzioni/sap-hana
,
21/02/2015.
[9]
scn.sap.com, http://scn.sap.com/docs/DOC-60338, 16/02/2015.
[10]
saphanatutorial.com,
http://saphanatutorial.com/sap-hana-sqlscript/,
22
20/02/2015.
[11]
Direction Dossier di soluzioni, servizi e tecnologie ict,56,2012,1-32.
[12]
saphanaolt.blogspot.it,
http://saphanaolt.blogspot.it/2013/11/sap-
hana-online-training-architecture-overview.html, 21/02/2015.
[13]
www.sap.com,
https://www.sap.com/italy/cmp/ppc/crm-it14-3di-ppc-
aa/index.html?q=hana&campaigncode=CRM-IT15-3DIPPC_ITDG&mid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
%20hana_e&KEY_ID=tmVYmtQR, 15/02/2015.
[14]
help.sap.com,
http://help.sap.com/hana/SAP_HANA_Developer_Guide_en.pdf,
21/02/201.
23