Passa ai contenuti principali

SAP HANA..e ora anche tu ti devi aggiornare



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

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. 
Quanto ci metti ora a raccogliere entrambi?
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. 
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 

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. 
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. 
Quando lo fa? Qui mi chiedi troppo. Non lo so.
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.

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. 
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. 
Esempio? BSIS: partite aperte dei documenti contabili.
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.
:-)
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.

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.
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

Commenti

  1. Non conosco Hana e apprezzo lo sforzo, del articolo, ma in pratica é una grande cache?
    anche 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.

    RispondiElimina
    Risposte
    1. 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)
      Oracle 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.

      Elimina
  2. 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

Posta un commento

Post popolari in questo blog

Estendere il report delle partite aperte (FBL1N, FBL5N, FBL3N)

certo le partite aperte aiutano ad analizzare la situazione contabile ma se si è appena partiti con il sistema SAP, come fa l'utente a riconosce a chi appartiene la partita? sul vecchio sistema era abituato ai codici del vecchio sistema, ma su SAP no. un aiutino bisogna darglielo all'utente, quindi perchè non aggiungere il nome fornitore, cliente e conto co.ge. alla lista delle parite? il nome aiuta anche a fare dei subtotali decenti per le fatture da ricevere non ne parliamo: che bello avere la lista con i subtotali per nome fornitore, numero ordine di acquisto e posizione di acquisto estendere il report è semplice. La nota oss 368310 lo spiega un paio di miei appunti alla nota: è necessario estendere sia la struttura RFPOS che RFPOSX con gli stessi campi, o il nome della stessa struttura append in BTE il function module è da aggiungere agli eventi, però attenzione che non troveri l'inserimento 00001650, quindi lo dovrai aggiungere come nuovo e ora un

Caricare e scaricare file su SAP

In questi giorni sono alle prese con un nuovo progetto ed ecco che mi è stata assegnata la patata bollente: il Piano dei Conti. Armato di tanta pazienza e corroborato da un supporto e collaborazione del key user effettuerò le modifiche su un foglio excel che poi carico con LSMW Naturalmente in sviluppo. E per gli altri sistemi? Trucchetto Il trasporto su altri sistemi del piano dei conti è facilitato dalla transazioni FS15 e FS16, pareggio società Ma, ed è qui che casca l'asino, l'invio del piano dei conti genera un file in formato txt sulla directory del server. Come estrarre il file e trasportarlo negli altri sistemi? Opzione 1: mi creo un programmino custom che mi porto dietro con me da bravo consulente; lo caric o in sviluppo, lo trasporto in test e poi in produzione. Noooooooooo, non è la soluzione migliore. Eureka: CG3Z e CG3Y! Due transazioni per scaricare e caricare i file dal server: CG3Y per scaricare e CG3Z per caricare Più nessun bisogno d

Caricare le anagrafiche banche

il caricamento delle anagrafiche banche su SAP è relativamente semplice. Esiste una transazione apposita basta caricare il file standard rilasciato dal corporate banking info ecco il link per scaricarlo:  http://www.querciacb.info/it-IT/archivio_abicabit.html aggiornamento ecco un nuovo link per scaricare il file https://tesoreria.unicreditbanca.it/tesoreria/abicab/abicab.html