How To – Domande & Risposte sulla Architettura di Sap HANA®
Domanda: Cos’è l’architettura SAP HANA ®?
Cosa e’ SAP HANA fondamentalmente: è un database in memoria centrale.
- È una combinazione di hardware e software che ha lo scopo di processare significative quantità di dati in tempo reale, usando l’elaborazione In-Memory.
- Combina la tecnologia di gestione di basi di dati orientato alle colonne e alle righe
- I dati risiedono ora nella memoria principale (RAM) e non più sul disco rigido.
- È adatto a svolgere analisi in tempo reale e sviluppare e realizzare applicazioni in tempo reale.
Un database con memoria centrale significa che tutti i dati vengono immagazzinati nella memoria (RAM). Quindi non c’è perdita di tempo nel caricamento dati dal disco rigido alla RAM, o durante il processo che mantiene alcuni dati sulla RAM e sul disco rigido contemporaneamente. Tutto è in-memory per tutto il tempo, il che consente alla CPU l’accesso immediato ai dati per l’elaborazione.
L’ architettura SAP HANA dispone di un “multiengine query processing environment” che supporta i dati relazionali così come quelli grafici e testuali all’interno dello stesso sistema.
Comprende funzioni che supportano una significativa velocità di elaborazione, gestione di grandi dati e capacità di text mining.
Domanda: Quindi SAP producevende il software o il hardware?
SAP è associata con i principali fornitori di hardware (HP, Fujitsu, IBM, Dell ecc.) per vendere il hardware certificato SAP HANA.
SAP vende licenze e servizi collegati per il prodotti SAP HANA che includono il database SAP HANA, SAP HANA Studio e altro software per caricare dati nei database.
Domanda: In quale linguaggio è sviluppato SAP HANA?
Il database SAP HANA è sviluppato in C++.
Domanda: Qual’è il sistema operativo supportato da HANA?
Al momento SUSE Linux Enterprise Server x86-64 (SLES) 11 SP1 è il sistema operativo supportato da SAP HANA.
Domanda: se aumento la memoria del mio db tradizionale Oracle fino a 2TB posso ottenere una simile prestazione?
NO.
Potresti ottenere miglioramenti di prestazioni dovuti a una maggior memoria disponibile per i tuoi database Oracle/Microsoft/Teradata, ma HANA non se soltanto un database con RAM più grande.
È una combinazione di molte tecnologie hardware e software.
Il modo in cui i dati vengono inseriti e processati dal motore In-Memory (IMCE) è il vero differenziatore.
Avere i dati disponibili sulla RAM è soltanto la ciliegina sulla torta.
Domanda: Cosa sono l’approccio orientato a righe e a colonne?
Tabelle orientate a righe:
- Sono il tradizionale approccio di basi di dati relazionali
- memorizzano una tabella nella sequenza di righe
Tabelle orientate a colonne:
- Memorizzano una tabella in sequenza di colonne, ossia le entrate della colonna sono memorizzate nella memoria contigua.
- SAP HANA è particolarmente ottimizzato per l’immagazzinamento a colonne. SAP HANA supporta sia l’orientamento a colonna che quello a righe.
La seguente tabella spiega la differenza tra i due meccanismi.
Domanda: Quali sono i vantaggi e gli svantaggi delle tabelle orientate a riga?
Le tabelle orientate a riga presentano vantaggi nelle seguenti circostanze:
- Quando l’applicazione deve processare una singola nota alla volta (molte selezioni e/o aggiornamenti di singole note)
- Quando l’applicazione di solito deve accedere a una nota completa (o riga).
- Quando non sono richiesti assembramenti o ricerche veloci.
- Quando la tabella ha un numero limitato di righe (ad es. tabelle di configurazione, tabelle di sistema)
Le tabelle orientate a riga presentano svantaggi nelle seguenti circostanze:
- Nei casi di applicazioni analitiche dove le aggregazioni sono usate e dove è richiesta la ricerca veloce. Nelle tabelle orientate a riga in cui tutti i dati devono venire letti anche se potrebbe essere sufficiente l’accesso ai dati di poche colonne.
Domanda: Quali sono i vantaggi delle tabelle orientate a colonna?
Vantaggi:
- Accesso dati più veloce:
Solo le colonne considerate devono venire lette durante la selezione del processo di query.
Qualsiasi colonna può servire come indice.
- Miglior Compressione:
L’immagazzinamento dati a colonna consente una compressione molto efficiente, poiché la maggior parte delle colonne contiene solo pochi valori distinti (in confronto al numero delle righe).
- Miglior Processo parallelo
In un orientamento a colonna, i dati sono già divisi verticalmente. Ciò significa che le operazioni su differenti colonne possono essere processati in parallelo. Se più colonne devono essere ricercate o aggregate, ognuna di queste operazioni può essere assegnata a un diverso nucleo di processo.
Domanda: In HANA quale tipo di tabella è preferibile – A riga o A colonna?
Le query SQL con funzioni di aggregazione richiedono maggior tempo su grossi dati poiché ogni singola riga è coinvolta nella raccolta dei dati per la risposta query. Nelle tabelle a colonna, questa informazione è contenuta l’una all’altra, e di conseguenza aumenta la velocità di alcune data query. I dati vengono anche compressi, consentendo un intervallo di caricamento più breve.
Conclusione:
Per attivare aggregazioni veloci, rapporti ad hoc e godere dei meccanismi di compressione si raccomanda la trascrizione dei dati in una tabella orientata a colonna.
Il database SAP HANA consente l’unione tra tabelle orientate a riga con tabelle orientate a colonna. Comunque, è più efficiente unire tabelle localizzate nella stessa memoria a riga o a colonna. Per esempio, i dati master che spesso vengono uniti ai dati di transazione dovrebbero venire archiviati nelle tabelle orientate a colonna.
Ulteriori note importanti sulla tabella orientata a colonna:
- La visione dei modelli HANA è possibile solo nelle tabelle a colonna.
Le tabelle orientate a riga non possono usare la visione di modelli.
2. Per questa ragione i Replication Server creano tabelle SAP HANA in colonna come valore predefinito.
3. Data Services pure crea tabelle target in colonna come predefinite per il database SAP HANA 4.
4. Il commando SQL per creare la tabella orientata a colonna è: “CREATE COLUMN TABLE Table_Name..”
5. Il tipo di inserimento della tabella può venire modificato da Riga a Colonna con il commando SQL ” ALTER TABLE Table_Name COLUMN”.
Domanda: Perché gli aggregati materializzati non sono richiesti in HANA?
Dato che il database SAP HANA è perennemente in-memory, addizionali calcoli complessi, funzioni e operazioni intensive di dati si possono svolgere direttamente sul database. Perciò le aggregazioni materializzate non sono richieste.
Inoltre fornisce vantaggi quali:
- Modello di dati semplificato
- Logica di applicazione semplificata
- Maggior livello di concorrenza dei processi
Domanda: Come fa SAP HANA a supportare il Massively Parallel Processing?
Con la disponibilità di CPU Multi-Core, si possono ottenere maggiori velocità di esecuzione CPU. Inoltre l’archiviazione HANA basata a colonna consente facilmente di eseguire operazioni in parallelo, usando molteplici processori. In un archivio a colonna i dati vengono partizionati verticalmente. Ciò significa che le operazioni su differenti colonne possono essere processati in parallelo. Se più colonne devono venire consultate o aggregate, ciascuna di queste operazioni può venire assegnata a un differente nucleo del processore. Inoltre le operazioni su una colonna possono venire svolte in parallelo con la divisione della colonna in molteplici sezioni che possono venire processate da diversi nuclei del processore. Con il database SAP HANA, le query possono venire eseguite rapidamente e in parallelo.
Domanda: Descrivi brevemente l’architettura del database SAP HANA

Il database SAP HANA è sviluppato in C++ e usa SUSE Linux Enterprise Server.
Il database SAP HANA consiste di molteplici server di cui la componente più importante è l’Index Server.
Il SAP HANA database è composto dall’Index Server, Name Server, Statistics Server, Preprocessor Server e dal XS Engine.
Index Server:
- L’Index Server è la componente principale del SAP HANA database
- Contiene il corrente archivio dati e i motori per il processo dei dati.
- L’Index Server processa gli statement SQL o MDX in entrata nel contesto di sessioni autenticate o transazioni.
Persistence Layer:
La persistenza del database è responsabile della durata e della atomicità della transazione. Ciò assicura che il database venga ripristinato dalla più recente entrata dopo un riavvio e che le transazioni siano completamente eseguite o completamente annullate.
Preprocessor Server:
L’index server utilizza il preprocessor server per analizzare i dati testuali ed estrarre le informazioni sulle quali le capacità di ricerca testuale sono basate.
Name Server:
Il name server possiede le informazioni riguardanti la topologia del sistema SAP HANA. In un sistema distribuito, il name server sa dove si trovano le componenti in funzione e quale dato è locato su quale server.
Statistic Server:
Lo statistic server raccoglie informazioni riguardanti lo stato, la prestazione e il consumo di risorse dagli altri server nel sistema. Lo statistic server fornisce inoltre la cronologia delle misurazioni dei dati per ulteriori analisi.
Session and Transaction Manager:
Il Transaction manager coordina le transazioni del database e tiene conto delle transazioni chiuse e quelle in corso. Quando la transazione è in corso o rollback, il transaction manager informa i motori di archiviazione in questione di ciò, affinché questi ultimi possano eseguire le necessarie azioni.
XS Engine:
L’XS Engine è una componente opzionale. L’utilizzo del client dell’XS Engine può connettere il database SAP HANA per la raccolta dati via HTTP.
Domanda: Cos’è l’analisi ad hoc?
Nei data warehouses tradizionali, come ad esempio SAP BW, viene svolta molta pre-aggregazione per velocizzare i risultati. Ciò significa che l’amministratore (il dipartimento IT) decide quali informazioni potrebbero servire per l’analisi e prepara i risultati per gli utenti finali. Si ottiene così una prestazione veloce ma l’utente non ha flessibilità.
La performance si riduce drasticamente se l’utente vuole svolgere l’analisi su alcuni dati che non sono pre-aggregati. Con SAP HANA e il suo motore veloce, non è richiesta alcuna pre-aggregazione. L’utente può svolgere qualsiasi tipo di operazione nei propri rapporti e non deve attendere ore per avere dati pronti per l’analisi.