In memory database management con SAP HANA · In memory database management con SAP HANA 4...
Transcript of In memory database management con SAP HANA · In memory database management con SAP HANA 4...
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 20132014 Candidato Angelo Maisto matr N46000645
III
Indice
Introduzione 4
Capitolo 1 Big Data 5
11 Le 3Vs 6
Capitolo 2 SAP HANA 7
21 Lrsquoazienda SAP 7
22 La piattaforma HANA 8
23 Lrsquoarchitettura 10
24 Lrsquoarchiviazione in tabelle 14
25 Backup amp Recovery 17
Capitolo 3 In-memory database 18
31 Proprietagrave ACID 18
32 Compressione 20
Sviluppi futuri 21
Bibliografia 22
In memory database management con SAP HANA
4
Introduzione
Il seguente elaborato dal titolo In memory database management con SAP HANA
tratteragrave nel primo capitolo una panoramica del concetto di Big Data
Nel secondo capitolo si esporragrave in maniera approfondita la piattaforma HANA
sviluppata dalla SAP incentrando lo studio sulla capacitagrave di poter analizzare ed
effettuare analisi in tempo reale
Seguiragrave la specifica dettagliata di tutti i componenti dellrsquoarchitettura delle tecniche
di compressione e di backup amp recovery adoperate dallrsquoappliance HANA
Nel terzo ed ultimo capitolo si parleragrave della relatagrave dirompente dei database in-
memory delle relative proprietagrave e caratteristiche e di come SAP HANA utilizza
tale tecnologia
5
Capitolo 1
Big Data
Lrsquoesplosione digitale del ventunesimo secolo ha generato unrsquoincrescente
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 globohellip
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 egrave piugrave sufficiente a garantire unrsquoanalisi
contemporanea di un data set cosigrave esteso di dati non strutturati
6
11 Le 3Vs
La descrizione piugrave 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 Velocitagrave e
Varietagrave
Volume fa riferimento allrsquoenorme quantitativo di dati da archiviare ed
analizzare
Velocitagrave esprime la possibilitagrave di poter effettuare analisi ed elaborazioni
quasi in tempo reale
Varietagrave grandi volumi di dati vuol dire anche enorme tipologia di dati
(strutturati e non strutturati) provenienti da fonti differenti
7
Capitolo 2
SAP HANA
21 Lrsquoazienda SAP
La multinazionale europea SAP (Systems Applications and Product in data
processing) la cui traduzione sta per Sistemi Applicazioni e Prodotti
nellrsquoelaborazione dati egrave leader mondiale nel settore enterpise ed ERP acronimo
che sta per ldquoEnterprise Resource Planningrdquo letteralmente pianificazione delle
risorse drsquoimpresa consiste in un sistema informativo che ingloba tutti i processi
aziendali che spaziano dal settore di vendita a quello di magazzino
Lrsquoazienda nasce in Germania nel 1972 dallrsquoidea di 5 ingegneri di nome Hasso
Plattner Dietmar Hopp Klaus Tschira Hans-Werner Hector e Claus Wellenreuther
lo scorso 2012 la societagrave ha compiuto 40 anni di attivitagrave divenendo tuttrsquooggi un
punto di riferimento per le imprese e conta ad oggi 55000 dipendenti in oltre 50
Paesi e si stimano 200000 clienti in tutto il mondo
8
Lrsquoazienda 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 R3
22 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP egrave 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 allrsquointerno 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 lrsquointroduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi un crescente
aumento della disponibilitagrave di archiviazione e notevole riduzione dei costi delle
memorie volatili nellrsquoultimo decennio e lrsquoelevata differenza di velocitagrave 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 velocitagrave elaborativa
da parte delle
memorie volatili e
permanenti
Lrsquoimmissione della
piattaforma SAP
HANA sul mercato
ha completamente
rivoluzionato in senso
positivo il settore
dellrsquoelaborazione dei
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
III
Indice
Introduzione 4
Capitolo 1 Big Data 5
11 Le 3Vs 6
Capitolo 2 SAP HANA 7
21 Lrsquoazienda SAP 7
22 La piattaforma HANA 8
23 Lrsquoarchitettura 10
24 Lrsquoarchiviazione in tabelle 14
25 Backup amp Recovery 17
Capitolo 3 In-memory database 18
31 Proprietagrave ACID 18
32 Compressione 20
Sviluppi futuri 21
Bibliografia 22
In memory database management con SAP HANA
4
Introduzione
Il seguente elaborato dal titolo In memory database management con SAP HANA
tratteragrave nel primo capitolo una panoramica del concetto di Big Data
Nel secondo capitolo si esporragrave in maniera approfondita la piattaforma HANA
sviluppata dalla SAP incentrando lo studio sulla capacitagrave di poter analizzare ed
effettuare analisi in tempo reale
Seguiragrave la specifica dettagliata di tutti i componenti dellrsquoarchitettura delle tecniche
di compressione e di backup amp recovery adoperate dallrsquoappliance HANA
Nel terzo ed ultimo capitolo si parleragrave della relatagrave dirompente dei database in-
memory delle relative proprietagrave e caratteristiche e di come SAP HANA utilizza
tale tecnologia
5
Capitolo 1
Big Data
Lrsquoesplosione digitale del ventunesimo secolo ha generato unrsquoincrescente
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 globohellip
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 egrave piugrave sufficiente a garantire unrsquoanalisi
contemporanea di un data set cosigrave esteso di dati non strutturati
6
11 Le 3Vs
La descrizione piugrave 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 Velocitagrave e
Varietagrave
Volume fa riferimento allrsquoenorme quantitativo di dati da archiviare ed
analizzare
Velocitagrave esprime la possibilitagrave di poter effettuare analisi ed elaborazioni
quasi in tempo reale
Varietagrave grandi volumi di dati vuol dire anche enorme tipologia di dati
(strutturati e non strutturati) provenienti da fonti differenti
7
Capitolo 2
SAP HANA
21 Lrsquoazienda SAP
La multinazionale europea SAP (Systems Applications and Product in data
processing) la cui traduzione sta per Sistemi Applicazioni e Prodotti
nellrsquoelaborazione dati egrave leader mondiale nel settore enterpise ed ERP acronimo
che sta per ldquoEnterprise Resource Planningrdquo letteralmente pianificazione delle
risorse drsquoimpresa consiste in un sistema informativo che ingloba tutti i processi
aziendali che spaziano dal settore di vendita a quello di magazzino
Lrsquoazienda nasce in Germania nel 1972 dallrsquoidea di 5 ingegneri di nome Hasso
Plattner Dietmar Hopp Klaus Tschira Hans-Werner Hector e Claus Wellenreuther
lo scorso 2012 la societagrave ha compiuto 40 anni di attivitagrave divenendo tuttrsquooggi un
punto di riferimento per le imprese e conta ad oggi 55000 dipendenti in oltre 50
Paesi e si stimano 200000 clienti in tutto il mondo
8
Lrsquoazienda 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 R3
22 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP egrave 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 allrsquointerno 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 lrsquointroduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi un crescente
aumento della disponibilitagrave di archiviazione e notevole riduzione dei costi delle
memorie volatili nellrsquoultimo decennio e lrsquoelevata differenza di velocitagrave 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 velocitagrave elaborativa
da parte delle
memorie volatili e
permanenti
Lrsquoimmissione della
piattaforma SAP
HANA sul mercato
ha completamente
rivoluzionato in senso
positivo il settore
dellrsquoelaborazione dei
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
In memory database management con SAP HANA
4
Introduzione
Il seguente elaborato dal titolo In memory database management con SAP HANA
tratteragrave nel primo capitolo una panoramica del concetto di Big Data
Nel secondo capitolo si esporragrave in maniera approfondita la piattaforma HANA
sviluppata dalla SAP incentrando lo studio sulla capacitagrave di poter analizzare ed
effettuare analisi in tempo reale
Seguiragrave la specifica dettagliata di tutti i componenti dellrsquoarchitettura delle tecniche
di compressione e di backup amp recovery adoperate dallrsquoappliance HANA
Nel terzo ed ultimo capitolo si parleragrave della relatagrave dirompente dei database in-
memory delle relative proprietagrave e caratteristiche e di come SAP HANA utilizza
tale tecnologia
5
Capitolo 1
Big Data
Lrsquoesplosione digitale del ventunesimo secolo ha generato unrsquoincrescente
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 globohellip
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 egrave piugrave sufficiente a garantire unrsquoanalisi
contemporanea di un data set cosigrave esteso di dati non strutturati
6
11 Le 3Vs
La descrizione piugrave 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 Velocitagrave e
Varietagrave
Volume fa riferimento allrsquoenorme quantitativo di dati da archiviare ed
analizzare
Velocitagrave esprime la possibilitagrave di poter effettuare analisi ed elaborazioni
quasi in tempo reale
Varietagrave grandi volumi di dati vuol dire anche enorme tipologia di dati
(strutturati e non strutturati) provenienti da fonti differenti
7
Capitolo 2
SAP HANA
21 Lrsquoazienda SAP
La multinazionale europea SAP (Systems Applications and Product in data
processing) la cui traduzione sta per Sistemi Applicazioni e Prodotti
nellrsquoelaborazione dati egrave leader mondiale nel settore enterpise ed ERP acronimo
che sta per ldquoEnterprise Resource Planningrdquo letteralmente pianificazione delle
risorse drsquoimpresa consiste in un sistema informativo che ingloba tutti i processi
aziendali che spaziano dal settore di vendita a quello di magazzino
Lrsquoazienda nasce in Germania nel 1972 dallrsquoidea di 5 ingegneri di nome Hasso
Plattner Dietmar Hopp Klaus Tschira Hans-Werner Hector e Claus Wellenreuther
lo scorso 2012 la societagrave ha compiuto 40 anni di attivitagrave divenendo tuttrsquooggi un
punto di riferimento per le imprese e conta ad oggi 55000 dipendenti in oltre 50
Paesi e si stimano 200000 clienti in tutto il mondo
8
Lrsquoazienda 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 R3
22 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP egrave 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 allrsquointerno 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 lrsquointroduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi un crescente
aumento della disponibilitagrave di archiviazione e notevole riduzione dei costi delle
memorie volatili nellrsquoultimo decennio e lrsquoelevata differenza di velocitagrave 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 velocitagrave elaborativa
da parte delle
memorie volatili e
permanenti
Lrsquoimmissione della
piattaforma SAP
HANA sul mercato
ha completamente
rivoluzionato in senso
positivo il settore
dellrsquoelaborazione dei
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
5
Capitolo 1
Big Data
Lrsquoesplosione digitale del ventunesimo secolo ha generato unrsquoincrescente
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 globohellip
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 egrave piugrave sufficiente a garantire unrsquoanalisi
contemporanea di un data set cosigrave esteso di dati non strutturati
6
11 Le 3Vs
La descrizione piugrave 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 Velocitagrave e
Varietagrave
Volume fa riferimento allrsquoenorme quantitativo di dati da archiviare ed
analizzare
Velocitagrave esprime la possibilitagrave di poter effettuare analisi ed elaborazioni
quasi in tempo reale
Varietagrave grandi volumi di dati vuol dire anche enorme tipologia di dati
(strutturati e non strutturati) provenienti da fonti differenti
7
Capitolo 2
SAP HANA
21 Lrsquoazienda SAP
La multinazionale europea SAP (Systems Applications and Product in data
processing) la cui traduzione sta per Sistemi Applicazioni e Prodotti
nellrsquoelaborazione dati egrave leader mondiale nel settore enterpise ed ERP acronimo
che sta per ldquoEnterprise Resource Planningrdquo letteralmente pianificazione delle
risorse drsquoimpresa consiste in un sistema informativo che ingloba tutti i processi
aziendali che spaziano dal settore di vendita a quello di magazzino
Lrsquoazienda nasce in Germania nel 1972 dallrsquoidea di 5 ingegneri di nome Hasso
Plattner Dietmar Hopp Klaus Tschira Hans-Werner Hector e Claus Wellenreuther
lo scorso 2012 la societagrave ha compiuto 40 anni di attivitagrave divenendo tuttrsquooggi un
punto di riferimento per le imprese e conta ad oggi 55000 dipendenti in oltre 50
Paesi e si stimano 200000 clienti in tutto il mondo
8
Lrsquoazienda 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 R3
22 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP egrave 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 allrsquointerno 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 lrsquointroduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi un crescente
aumento della disponibilitagrave di archiviazione e notevole riduzione dei costi delle
memorie volatili nellrsquoultimo decennio e lrsquoelevata differenza di velocitagrave 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 velocitagrave elaborativa
da parte delle
memorie volatili e
permanenti
Lrsquoimmissione della
piattaforma SAP
HANA sul mercato
ha completamente
rivoluzionato in senso
positivo il settore
dellrsquoelaborazione dei
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
6
11 Le 3Vs
La descrizione piugrave 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 Velocitagrave e
Varietagrave
Volume fa riferimento allrsquoenorme quantitativo di dati da archiviare ed
analizzare
Velocitagrave esprime la possibilitagrave di poter effettuare analisi ed elaborazioni
quasi in tempo reale
Varietagrave grandi volumi di dati vuol dire anche enorme tipologia di dati
(strutturati e non strutturati) provenienti da fonti differenti
7
Capitolo 2
SAP HANA
21 Lrsquoazienda SAP
La multinazionale europea SAP (Systems Applications and Product in data
processing) la cui traduzione sta per Sistemi Applicazioni e Prodotti
nellrsquoelaborazione dati egrave leader mondiale nel settore enterpise ed ERP acronimo
che sta per ldquoEnterprise Resource Planningrdquo letteralmente pianificazione delle
risorse drsquoimpresa consiste in un sistema informativo che ingloba tutti i processi
aziendali che spaziano dal settore di vendita a quello di magazzino
Lrsquoazienda nasce in Germania nel 1972 dallrsquoidea di 5 ingegneri di nome Hasso
Plattner Dietmar Hopp Klaus Tschira Hans-Werner Hector e Claus Wellenreuther
lo scorso 2012 la societagrave ha compiuto 40 anni di attivitagrave divenendo tuttrsquooggi un
punto di riferimento per le imprese e conta ad oggi 55000 dipendenti in oltre 50
Paesi e si stimano 200000 clienti in tutto il mondo
8
Lrsquoazienda 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 R3
22 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP egrave 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 allrsquointerno 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 lrsquointroduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi un crescente
aumento della disponibilitagrave di archiviazione e notevole riduzione dei costi delle
memorie volatili nellrsquoultimo decennio e lrsquoelevata differenza di velocitagrave 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 velocitagrave elaborativa
da parte delle
memorie volatili e
permanenti
Lrsquoimmissione della
piattaforma SAP
HANA sul mercato
ha completamente
rivoluzionato in senso
positivo il settore
dellrsquoelaborazione dei
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
7
Capitolo 2
SAP HANA
21 Lrsquoazienda SAP
La multinazionale europea SAP (Systems Applications and Product in data
processing) la cui traduzione sta per Sistemi Applicazioni e Prodotti
nellrsquoelaborazione dati egrave leader mondiale nel settore enterpise ed ERP acronimo
che sta per ldquoEnterprise Resource Planningrdquo letteralmente pianificazione delle
risorse drsquoimpresa consiste in un sistema informativo che ingloba tutti i processi
aziendali che spaziano dal settore di vendita a quello di magazzino
Lrsquoazienda nasce in Germania nel 1972 dallrsquoidea di 5 ingegneri di nome Hasso
Plattner Dietmar Hopp Klaus Tschira Hans-Werner Hector e Claus Wellenreuther
lo scorso 2012 la societagrave ha compiuto 40 anni di attivitagrave divenendo tuttrsquooggi un
punto di riferimento per le imprese e conta ad oggi 55000 dipendenti in oltre 50
Paesi e si stimano 200000 clienti in tutto il mondo
8
Lrsquoazienda 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 R3
22 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP egrave 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 allrsquointerno 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 lrsquointroduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi un crescente
aumento della disponibilitagrave di archiviazione e notevole riduzione dei costi delle
memorie volatili nellrsquoultimo decennio e lrsquoelevata differenza di velocitagrave 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 velocitagrave elaborativa
da parte delle
memorie volatili e
permanenti
Lrsquoimmissione della
piattaforma SAP
HANA sul mercato
ha completamente
rivoluzionato in senso
positivo il settore
dellrsquoelaborazione dei
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
8
Lrsquoazienda 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 R3
22 La piattaforma SAP HANA
La piattaforma HANA (High-Performance Analytic Appliance) di SAP egrave 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 allrsquointerno 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 lrsquointroduzione di tale innovazione sul mercato
possono essere essenzialmente racchiusi dalla seguente analisi un crescente
aumento della disponibilitagrave di archiviazione e notevole riduzione dei costi delle
memorie volatili nellrsquoultimo decennio e lrsquoelevata differenza di velocitagrave 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 velocitagrave elaborativa
da parte delle
memorie volatili e
permanenti
Lrsquoimmissione della
piattaforma SAP
HANA sul mercato
ha completamente
rivoluzionato in senso
positivo il settore
dellrsquoelaborazione dei
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
9
dati aziendali Con lrsquoausilio del database SAP HANA egrave 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 drsquoimpresa i
sistemi IT dovevano essere in grado fondamentalmente di garantire due compiti
essenziali garantire lrsquoOLTP 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 velocitagrave 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
Lrsquoelemento principale dellrsquoarchitettura OLAP egrave una particolare base di dati
chiamata data ware house letteralmente ldquomagazzino dei datirdquo in cui sono
contenuti dati che analizzati in maniera opportuna possono garantire un supporto
alle decisioni e una programmazione delle attivitagrave future di una data impresa
Elemento preponderante egrave 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 dallrsquoutente 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 piugrave 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 novitagrave 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
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
10
dati senza commettere errori e ritardi Tutti i dati sono sempre aggiornati e
facilmente accessibili
23 Architettura
SAP HANA egrave un database in-memory basato su approccio relazionale ottimizzato
per lrsquoarchiviazione dei dati in forma colonnare sinteticamente espressa attraverso
la dicitura ldquocolumn-orientedrdquo La tecnologia in-memory consente di elaborare
enormi volumi di dati compiere analisi operative e transazionali sulle informazioni
estratte SAP HANA egrave 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 lrsquoarchitettura della piattaforma
Analizziamo i componenti della piattaforma
Index Server egrave il componente principale del database SAP HANA in quanto
contiene i dati archiviati nella piattaforma e i motori che consentono di
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
11
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 egrave 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 egrave 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 egrave possibile ospitare sulla
piattaforma egrave possibile accedere al database via browser mediante XS
Engine
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
12
Lrsquoindex 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 nellrsquoappliance 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 lrsquoappliance mediante istruzioni SQL La sessione viene stabilita in seguito
allrsquoinserimento 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 egrave quello di accertarsi che un client sia in
possesso dei giusti privilegi per poter effettuare una determinata operazione
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
13
(creazione aggiornamento selezione inserimento) su un particolare oggetto
(vista tabella SQLScript) allrsquointerno della piattaforma
SQL Processor egrave 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 egrave che unrsquoestensione dellrsquoSQL
A supporto del processore di query vi sono quattro motori altrettanto
fondamentali per la fase di interrogazione allrsquointerno di SAP HANA
MDX Multidimensional Expression Engine egrave un linguaggio per
linterrogazione e la manipolazione dei dati multidimensionali
memorizzati in cubi OLAP
Planning Engine egrave il motore che si occupa di eseguire
operazioni di pianificazione di base tramite applicazioni
finanziarie allrsquointerno del database
Procedure Store Processor ha come ruolo quello di eseguire in
maniera efficiente le chiamate di procedure
Calculation Engine effettua tutti i calcoli allrsquointerno del database
nessun dato viene spostato a livello applicativo prima del termine
dellrsquoelaborazione Consente lrsquoelaborazione parallela e converte i
dati analizzati in modelli di calcolo creando una logica di
esecuzione
Transaction Manager si prende cura del coordinamento e dellrsquoisolamento
delle transazioni che avvengono allrsquointerno del database e tiene traccia sia
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
14
delle operazioni in corso che di quelle commited Informa i motori di
archiviazione dello stato delle transazioni e coopera con lo strato di
persistenza affincheacute siano garantite transazioni atomiche e durevoli
Metadata Manager egrave 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 egrave lo strato responsabile della durabilitagrave e dellrsquoatomicitagrave delle
transazioni che avvengono allrsquointerno dellrsquoappliance SAP HANA In caso di
commit mancato da parte di una transazione esegue il completo annullamento
dellrsquooperazione In seguito ad un riavvio dellrsquointero sistema si preoccupa di
garantire i punti di ripristino assicurandosi di riportare il database in uno stato
consistente
24 Lrsquoarchiviazione in tabelle
Le tecniche di archiviazione dei dati allrsquointerno 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 egrave gestita nel seguente modo in ciascuna
locazione contigua egrave presente un campo della riga ldquoin esamerdquo della tabella nella
modalitagrave column-stored invece in ciascuna locazione contigua della memoria egrave
presente un campo della colonna ldquoin esamerdquo della tabella
La seguente figura illustra quanto detto
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
15
Una delle caratteristiche che consente al database SAP HANA di essere
flessibile veloce e performante egrave proprio quella di adoperare un approccio
column-oriented rispetto ai tradizionali database relazionali che gestiscono i dati
in memoria mediante la forma row-oriented questrsquoultima 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
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
16
Ambedue i motori hanno in comune il Layer Persistence in modo tale da
garantire la persistenza dei dati in entrambe le modalitagrave di archiviazione
Lrsquoapproccio column based consente di avere
Rapido accesso ai dati ciascuna colonna puograve essere vista
come un indice allrsquoatto della richiesta di una query solo le
colonne interessate vengono esaminate per fornire una
risposta
Migliore livello di compressione la molteplice ripetitivitagrave delle
informazioni presenti nelle colonne garantisce un livello di
compressione molto efficiente
Miglior grado di parallelismo a ciascun core del processore
puograve 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 lrsquointero 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 piugrave
piccole del caso column-oriented garantendo una ridotta
dimensionalitagrave dellrsquointero database
Semplificazione delle operazioni di insert e update
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
17
25 Backup amp Recovery
La completa disponibilitagrave di tutti i dati in memoria centrale riduce al minimo
eventuali riduzioni delle prestazioni da parte dei dischi di IO tali pur sempre
necessari per ovviare ad unrsquoingente perdita di dati in caso di unrsquoimprovvisa
mancanza di alimentazione o eventuale catastrofe poicheacute 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 egrave suddivisa in pagine salvate sullrsquohard 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 unrsquoingente
perdita di dati in caso di
unrsquoimprovvisa assenza
di alimentazione In
caso di riavvio
improvviso del sistema
egrave possibile ripristinare il
database dal punto
precedente al guasto
interrotto con un
approccio basato su disco
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
18
Capitolo 3
In-memory database
Con lrsquoesponenziale aumento dei Big Data si egrave sentita sempre piugrave la necessitagrave se
non lrsquoesigenza di adoperare un cambio generazionale nel settore della gestione
dei dati puntando non piugrave su supporti di memorizzazione permanenti bensigrave su
memorie volatili
Dal concetto di database relazionale in cui i dati sono archiviati su disco si egrave
passati ad una gestione in-memory del database archiviando i dati direttamente
in memoria principale
Con lrsquoacronimo IMDB In-Memory DataBase srsquointende appunto un sistema di
gestione dei dati con la suddetta caratteristica
31 Proprietagrave ACID
Nellrsquoambito 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
Atomicitagrave lrsquoesecuzione di una transazione deve avvenire in maniera completa
e non parziale e la transazione durante tale fase deve essere indivisibile
atomica
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
19
Consistenza terminata una transazione il database si deve trovare in uno
stato coerente a quello iniziale devono essere garantiti eventuali vincoli di
integritagrave 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 egrave in esecuzione in
modo da non interferire con altre operazioni in corso
Durabilitagrave detta anche persistenza si riferisce al fatto che una volta che una
transazione abbia richiesto un 1commit work i cambiamenti apportati non
dovranno essere piugrave 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 lrsquounico parametro a non essere
soddisfatto egrave la persistenza in quanto un improvviso calo di alimentazione
dellrsquointera piattaforma su cui opera il database provocherebbe la perdita di tutti i
dati in memoria principale essendo questrsquoultima volatile La soluzione egrave quella di
adottare dischi astato solido o dispositivi flash
1Commit work in SQL si riferisce alla terminazione di una transazione
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
20
32 Compressione
Nei database in-memory nonostante sia possibile immagazzinare un enorme
quantitativo di dati allrsquointerno della memoria principale vengono comunque
adoperate tecniche di compressione lavorando mediante dizionari egrave possibile
associare a parti testuali numeri interi in modo da comprimere in maniera
significativa le informazioni e migliorare quindi le prestazioni dellrsquointero database
In figura egrave 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
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
21
Sviluppi Futuri
La Shell e Volkswagen prevedono che si possa stipulare un accordo per
lrsquoimplementazione di un progetto che prevede lrsquointerazione tra auto connesse ed
ambiente circostante con lrsquoausilio della piattaforma SAP HANA che prevede
interazioni quali la possibilitagrave di trovare e pagare il parcheggio tramite lo
smartphone o di prenotare il rifornimento di carburante alla stazione piugrave vicina
pagando il pieno grazie ai servizi cloud
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
22
Bbliografia
[1] Bachmaier M Krutov I In-memory Computing with SAP HANA on
IBM IBM ReedBooks 2014 286
[2] wwwmtfbscom httpwwwmtfbscomSoluzioniSAP-Business-
OneSAP-HANAhtml 21022015
[3] wwwnewslettertrackingit
httpwwwnewslettertrackingitmkgetUnderstanding20SAP20H
ANA20-
20Italianpdf_EL=JbXLNB3ibIynO9j_cTx5bYamp_EALANG=it_IT
18022015
[4] wwwgrupposistemait httpwwwgrupposistemaitdocsdefault-
sourcebrochureboard_hbmppdfsfvrsn=2 20022015
[5] robertocagliusoxoomit
httprobertocagliusoxoomitvirgiliowizardsap-
hanaSESS0012b289c5ad791e2d4a2bfe74652673=74d3f8ee0aebf4
9fcf40ad875289c96a 19022015
[6] itwikipediaorg httpitwikipediaorgwikiACID 21022015
[7] wwwfabbricafuturoit httpwwwfabbricafuturoitindexphpvelocita-
aziendale-e-tecnologie-in-memor 21022015
[8] wwwruntimeit httpwwwruntimeititsoluzionisap-hana
21022015
[9] scnsapcom httpscnsapcomdocsDOC-60338 16022015
[10] saphanatutorialcom httpsaphanatutorialcomsap-hana-sqlscript
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201
23
20022015
[11] Direction Dossier di soluzioni servizi e tecnologie ict5620121-32
[12] saphanaoltblogspotit httpsaphanaoltblogspotit201311sap-
hana-online-training-architecture-overviewhtml 21022015
[13] wwwsapcom httpswwwsapcomitalycmpppccrm-it14-3di-ppc-
aaindexhtmlq=hanaampcampaigncode=CRM-IT15-3DI-
PPC_ITDGampmid=stmVYmtQR|dc_1573q9y19629_47770047409_sap
20hana_eampKEY_ID=tmVYmtQR 15022015
[14] helpsapcom
httphelpsapcomhanaSAP_HANA_Developer_Guide_enpdf
2102201