4 parole per descriverlo: cloud; fine della ridondanza dati; accesso istantaneo ai dati; predittività.
Ne più ne meno di quello che sta accadendo nel web.
Finalmente anche voi, consulente e società, siiete ad un bivio: o nuovi paradigmi o fuori.
Data in memory
SAP HANA si basa sul concerto di data in memory. Perché? Per una questione semplice: un DB basato su hard disk è lento.
Fai un raffronto con il tuo pc: se hai 2gb di memoria e windows installato, il tuo PC è un chiodo? Si.
Se hai un Macbook Air con 256gb di memoria solida e 8gb di memoria SSD e sistema operativo ottimizzato, hai una Ferrari.
Qui il primo segreto di SAP HANA: eliminazione del DB basato su HD. Per farla semplice.
Stabilità
Ma senza db su hd, come fa HANA ad essere sicuro? Abbandona i paradigmi del DB e introduce un concetto di restore tramite log.
Mi spiego.
Se il sistema va in crash mentre stai chiudendo il bilancio, i dati sono ripristinati in base alle azioni fatte. Per ogni attività SAP HANA scrive un log di quello che fa e marca lo stato come save point.
Dopo un crash recupera l'ultimo save point e ricostruisce le azioni e i dati.
Questo in breve
Dopo un crash recupera l'ultimo save point e ricostruisce le azioni e i dati.
Questo in breve
Column Data Memory
Un altro trucchetto è sfruttare l'organizzazione a colonne (un esempio non SAP che descrive il funzionamento) dei dati invece che a righe.
Supponi di avere questa tabella:
Guarda la figura qui sotto:
A livello di colonne le operazioni di aggregazione, somme etc, e lettura, come la ricerca, sono più veloci con l'organizzazione a colonne perché i dati sono contigui. Ergo il processore non deve saltare da un punto all'altro della memoria.
Fai un esperimento.
Prendi due mouse e ponili su due piastrelle contigue sul pavimento.
Quanto tempo ci metti a raccogliere entrambi? ;-)
Ora metti un mouse su una piastrella più lontana.
Ora metti un mouse su una piastrella più lontana.
Quanto ci metti ora a raccogliere entrambi?
Ecco il primo aspetto positivo nell'utilizzare i dati in colonna.
Ecco il primo aspetto positivo nell'utilizzare i dati in colonna.
Secondo aspetto: le CPU disponibili.
Il server non ha un solo core, ma molteplici.
Supponiamo 8 core: un PC standard di oggi che acquisti al supermercato.
Le operazioni in colonna se sono suddivise per core diventano ancora più veloci.
Le operazioni in colonna se sono suddivise per core diventano ancora più veloci.
Esegui l'esperimenti di prima con i mouse, ma invece di essere da solo chiedi ad un collega di aiutarti. Di sicuro suddividerai i compiti e sarai più veloce nel raccogliere i mouse.
Comunque SAP HANA supporta anche l'organizzazione per righe.
:-P
Comunque SAP HANA supporta anche l'organizzazione per righe.
:-P
Inserimento nuovi dati
Tutti i dati in colonna sono ordinati per una ricerca binario più veloce.
Se i dati sono ordinati, come fa SAP HANA ad inserire nuovi dati in memoria e per giunta ordinati?
Semplice non lo fa.
Semplice non lo fa.
Si appoggia tabella, speculare all'originale, fantasma dove inserisce le nuove righe.
In fase di lettura legge entrambe le tabelle.
Poi prima che questa tabella fantasma diventi troppo grande la incorpora riordinando i dati.
Poi prima che questa tabella fantasma diventi troppo grande la incorpora riordinando i dati.
Quando lo fa? Qui mi chiedi troppo. Non lo so.
Comunque dopo un tot di tempo e prima che la tabella fantasma diventi grande.
Comunque dopo un tot di tempo e prima che la tabella fantasma diventi grande.
Compressione
Poi sono utilizzate una serie di tecniche per la compressione dei dai.
Ad esempio: se c'è un dato in formato testo, come il nome del cliente, questo dato viene sostituito da un id e viene creata una tabella di appoggio id-nome cliente. Come una tabellina custom.
Perché questo? In fase di operazioni sulla colonna, il sistema tratta più velocemente i dati compressi che i dati non compressi, come il testo.
Misteri dell'informatica. Mi fermo qui, ma se c'è un ingegnere informatico che vuole dettagliare il funzionamento è il benvenuto.
Misteri dell'informatica. Mi fermo qui, ma se c'è un ingegnere informatico che vuole dettagliare il funzionamento è il benvenuto.
No Ridondanza
E ora l'aspetto più importante: l'eliminazione della ridondanza.
Cos'è la ridondanza? Chiarisco subito con un esempio.
Cash Management
I dati prodotti dal report di CM sono letti da tabelle di totali.
Cos'è la ridondanza? Chiarisco subito con un esempio.
Cash Management
I dati prodotti dal report di CM sono letti da tabelle di totali.
Ogni volta che si registra una fattura fornitore, il valore viene sommato nell'aggregato della tabella totali in corrispondenza del gruppo di cash management.
Questo perché l'aggregazione live dei documenti prodotti è tale che la lettura dei singoli documenti comporterebbe un tempo esoso. Ergo sommo subito e mi tolgo il dente.
Questa è una parte del problema della ridondanza, un vecchio concetto degli anni '60 creato per far fronte alla potenza limitata delle macchine.
L'altra ridondanza è la duplicazione del dato su altre tabelle.
Questa è una parte del problema della ridondanza, un vecchio concetto degli anni '60 creato per far fronte alla potenza limitata delle macchine.
L'altra ridondanza è la duplicazione del dato su altre tabelle.
Esempio? BSIS: partite aperte dei documenti contabili.
Ora supponiamo per assurdo che il cliente.....
Ora supponiamo per assurdo che il cliente.....
Ho sbagliato ad abbinare il gruppo di cash management al fornitore. Ho dimenticato di impostare il flag partite singole e aperte sul conto. Cosa devo fare?
Non c'è problema. Nel primo caso lancia un programma di ristrutturazione che cancella e ricrea i totali leggendo il documenti.
Nel secondo un programma che legge i documenti e li scrive sulla bsis.
Poco efficiente se ho milioni di documenti.
SAP HANA permette l'eliminazione di questi accrocchi, le tabelle totali etc, perché è tutto live e in memory quindi la velocità di lettura dei documenti è migliaia di volte superiore allo standard usato finora.
:-)
Poco efficiente se ho milioni di documenti.
SAP HANA permette l'eliminazione di questi accrocchi, le tabelle totali etc, perché è tutto live e in memory quindi la velocità di lettura dei documenti è migliaia di volte superiore allo standard usato finora.
:-)
Scusatemi ma questa è una vera figata. Mi esalta. Voi sapete come funziona Google? In modo simile, ma ridondato (! jijij controsenso) in più data center. Ma qui la ridondanza aumenta la velocità di accesso. Vi spiegherò un altro giorno.
Compatibilità
Ma l'ultima questione è: la compatibilità? I miei programmi custom che si basavano su BSIS&c.?
SAP supporta la compatibilità perché ha creato delle in memory view che hanno il nome delle vecchie tabelle e ne simulano i campi, ma si basano sulla stessa e unica tabella in memory, mi riferisco alla BSEG come esempio. Forte no?
Per farla breve ...
Ho aggiunto un po' di più delle 4 parole iniziali, mi sono fatto prendere la mano.
Completo brevemente, di nuovo?, con cloud e predittività o machine learning.
Completo brevemente, di nuovo?, con cloud e predittività o machine learning.
Cloud
Il cloud non è nuvola, ma scalabilità. Se oggi ho 4 CPU e 500 GB di memoria, domani me ne servono il doppio cosa devo fare? Comprare un nuovo server e migrare? No. Troppo lungo. Uso il cloud: setto i nuovi parametri e sono pronto. Live in un minuto.Non ci credete? Amazon Web Services, o AWS per gli amici, e Google Cloud sono gli esempi più comuni. Su AWS è possibile installare una macchina SAP e poi aumentarne la potenza su richiesta. E paghi solo c ciò che consumi.
Difficile da digerire vero? Il mondo che conoscevi fatto di moduli, abap, processi, server e tabelle pivot scricchiola.
Predittività e machine learning
E la predittività? Il machine learning?
Esempio: quando scoppierà l'influenza? Google ha rilasciato un servizio che in base alle ricerche degli utenti determina quando ci data il piccolo dell'influenza.
In base si dati storici, tanta statistica nonché un buon programma in R, ]:), con l'aggiunta di un pizzico di cloud e velocità in memory, ottengo delle analisi in tempo reale e quindi proiezioni sul futuro delle vendite o delle spedizioni o altro, predittività, e la possibilità di istruire la macchina, job?, a effettuare determinate azioni.
Esempio: quando scoppierà l'influenza? Google ha rilasciato un servizio che in base alle ricerche degli utenti determina quando ci data il piccolo dell'influenza.
In base si dati storici, tanta statistica nonché un buon programma in R, ]:), con l'aggiunta di un pizzico di cloud e velocità in memory, ottengo delle analisi in tempo reale e quindi proiezioni sul futuro delle vendite o delle spedizioni o altro, predittività, e la possibilità di istruire la macchina, job?, a effettuare determinate azioni.
Per ora basta.
Per finire
Sto approfondendo l'argomento studiando. Ok i corsi SAP, che costano un tantino, ma il buon vecchio libro aiuta sempre. Nonché documentazione ufficiale, blog e video.Il libro, ufficiale, si compra. Il resto si cerca in rete.
Tempo per studiare? Quando tuo figlio è in piscina e tu aspetti; quando mangi un panino a pranzo; quando in TV non ci sono film etc etc etc. Il tempo c'è :-)
Il prossimo articolo sarà su SAP Simple Finance. E altro ancora: Fiori, ABAP con eclipse etc...
Spero di non averti annoiato: se sei un developer e riscontri qualcosa che non torna apprezzo una tua indicazione per la correzione; se sei un funzionale e non conosci gli aspetti tecnici ora hai un'infarinatura; se sei un esperto HANA e riscontri errori, chiedo venia e attendo tue correzioni.
Alla prossima
Non conosco Hana e apprezzo lo sforzo, del articolo, ma in pratica é una grande cache?
RispondiEliminaanche i Db a tabelle dovrebbero avere ottimizzazione a livello di processi/cpu altrimenti Oracle tutti questi anni che ha fatto?
Sap ha sempre avuto problemi con transazioni di dati enormi , traferire i dati su ram mi sembra un pò una paraculata per girare intorno al problema.
Se uno lavora bene anche r3 é veloce, il grosso problema di sap sono gli "abbapisti" che non sanno che cosa sia una join e i funzionali che non sanno usare neanche excel.
Concorso con te che una buona progettazione permette di creare report veloci ( news..http://sapinsider.wispubs.com/Assets/Articles/2014/October/SPI-where-ABAP-meets-SAP-HANA)
EliminaOracle ha la sua soluzione in memory ma solo per le chiavi in tabella quindi si autorallenta interrogando il DB su HD.
Hana risolve il grosso problema della ridondanza e riconciliazione
Infine, la metafora della grande cache è adatta. Concordo.
Ecco una novità http://www.webnews.it/2015/03/27/ssd-da-10-tb-con-le-nuove-memorie-3d-nand-di-intel/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Webnews
RispondiElimina