23
Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati In memory database management con SAP HANA Anno Accademico 2013/2014 Candidato: Angelo Maisto matr. N46000645

In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

  • Upload
    hatu

  • View
    265

  • Download
    0

Embed Size (px)

Citation preview

Page 1: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 2: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 3: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 4: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 5: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 6: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 7: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 8: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 9: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 10: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 11: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 12: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 13: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 14: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 15: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 16: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 17: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 18: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 19: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 20: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 21: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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

Page 22: In memory database management con SAP HANA · In memory database management con SAP HANA 4 Introduzione Il seguente elaborato dal titolo In memory database management con SAP HANA,

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