Vai al contenuto
Registro ABAPIl riferimento italiano per programmare ABAP in SAP

HomeSistema e Sviluppo ModernoABAP moderno su SAP HANA

ABAP moderno su SAP HANA

ABAP moderno su SAP HANA: nuova sintassi, CDS view e ottimizzazioni Code Pushdown per letture veloci e consumi di memoria ridotti in scenari reali.

ABAP moderno su SAP HANA: illustrazione Registro ABAP
ABAP moderno su SAP HANA: illustrazione della guida.

01 La guida

Se sviluppi in ABAP e senti parlare di HANA come base moderna per i tuoi programmi, la prima domanda riguarda prestazioni e memoria: dove conviene leggere i dati e dove conviene farli elaborare. La pagina Wikipedia dedicata a HANA ti aiuta a rispondere perché descrive un sistema di gestione di basi di dati relazionali, colonnare e in memoria, sviluppato e commercializzato da SAP SE, che conserva e restituisce i dati richiesti dalle applicazioni e aggiunge analisi avanzate, funzioni di estrazione, trasformazione e caricamento e un server applicativo. In queste righe trovi come è fatto, come tiene insieme letture analitiche e scritture operative e quali motori e scelte di installazione devi considerare quando progetti un programma che legge molto e deve restare veloce.

La pagina Wikipedia non pubblica esempi di sintassi ABAP. Trovi invece la struttura del database, il modo in cui ordina i dati in memoria e su disco, il controllo della concorrenza, i motori per testo, dati spaziali, grafi e statistica, le opzioni di installazione in locale e nel cloud e le edizioni di licenza, con date, sigle e limiti che puoi usare per orientare le tue scelte di progettazione.

Cosa cambia quando i dati vivono in memoria

HANA conserva i dati nella memoria principale invece che su disco e per questo offre accesso, interrogazione ed elaborazione più rapidi. Tu che vieni da report che leggono tabelle grandi puoi capire il vantaggio: meno attese di lettura e viste consolidate calcolate al volo, senza mantenere viste aggregate ridondanti. La stessa pagina ricorda che la memoria costa di più rispetto al disco e che in un sistema gestionale fino all'85 per cento dei dati possono essere consultati di rado. Dal 2016 SAP supporta con il nome di Dynamic tiering un assetto a due temperature, con dati caldi consultati spesso tenuti in memoria e dati tiepidi meno consultati tenuti su disco. Quando pensi alle tabelle e viste del Dictionary che usi ogni giorno, ragiona così: tieni vicini i dati che il programma tocca sempre e lascia più lontani quelli che servono solo in certi periodi.

Perché le colonne aiutano le letture grandi?

Nei sistemi orientati alle righe tutti i valori di una riga si trovano nello stesso punto, mentre nei sistemi orientati alle colonne tutti i valori di una colonna si trovano nello stesso punto. Questa seconda scelta aiuta le interrogazioni analitiche su insiemi grandi e permette una maggiore compressione verticale di valori simili all'interno di una singola colonna. Se i tempi di lettura dei dati conservati per colonne sono abbastanza rapidi, puoi costruire viste consolidate al momento senza duplicare aggregati. Per te significa interrogazioni che scorrono poche colonne invece di intere righe larghe, con meno memoria occupata e meno dati spostati. La pagina segnala che i sistemi orientati alle righe erano tradizionalmente preferiti per le transazioni, ma la conservazione in memoria apre tecniche ibride adatte a entrambi gli usi.

OLTP e OLAP nello stesso sistema: cosa significa per te

La differenza chiave rispetto ai sistemi SAP di generazione precedente è che HANA unisce operazioni OLAP e OLTP in un solo sistema, descritto come online transaction and analytical processing e anche come hybrid transactional analytical processing. Non devi immaginare due sistemi separati, uno per le transazioni e uno per le analisi. Il server degli indici gestisce sessioni, autorizzazioni, transazioni ed esecuzione dei comandi e il database offre sia un deposito di riga sia un deposito di colonna. Puoi creare tabelle in entrambi i depositi, ma il deposito colonnare ha più capacità ed è quello usato più spesso. Lo stesso server gestisce la persistenza attraverso immagini in memoria degli oggetti, file di log e file di conservazione permanente, mentre il motore XS permette di costruire applicazioni web vicine ai dati.

Come resta ordinato il lavoro concorrente?

Quando molti utenti scrivono e leggono insieme, HANA governa la concorrenza con il controllo di concorrenza multiversione, che assegna a ogni transazione un'istantanea del database in un punto nel tempo. Se una transazione deve aggiornare un dato, non sovrascrive il valore precedente ma lo segna come obsoleto e aggiunge la versione nuova. Questo modo di lavorare riduce i conflitti tra lettori e scrittori e rende più prevedibile il comportamento dei programmi che leggono mentre altri modificano. La descrizione del database colonnare in memoria aiuta a collocare questa scelta nel resto dell'architettura, tra server degli indici, depositi di riga e di colonna e persistenza su log e archivi. Per i tuoi report ALV interattivi che scorrono elenchi mentre il gestionale continua a registrare documenti, questa istantanea spiega perché la lettura resta coerente senza bloccare chi scrive.

Quali motori di analisi trovi in HANA

Oltre a conservare dati, HANA include motori per diversi tipi di elaborazione. La Business Function Library mette a disposizione algoritmi per elaborazioni gestionali comuni come ammortamento dei cespiti, previsione scorrevole e media mobile. La Predictive Analytics Library include algoritmi nativi per misure statistiche comuni come clustering, classificazione e analisi delle serie storiche, e il linguaggio statistico R è supportato all'interno delle procedure memorizzate. Il database colonnare offre anche funzionalità di database a grafo, con un motore che elabora il linguaggio Cypher e con uno strumento visuale chiamato Graph Viewer, mentre le strutture a grafo sono conservate direttamente in tabelle relazionali nel deposito colonnare. Gli algoritmi preconfezionati includono ricerca di modelli, ricerca di vicinato, percorso minimo singolo e componenti fortemente connesse, con usi tipici come tracciabilità della catena di fornitura, individuazione di frodi, logistica e pianificazione dei percorsi.

Testo, posizioni e misura della rilevanza

HANA può eseguire analisi di testo e ricerca testuale aziendale con ricerca fuzzy tollerante agli errori, simile a quella dei motori di ricerca web. I risultati includono una misura statistica di rilevanza e i criteri di ricerca possono includere una soglia di accuratezza. Le analisi disponibili individuano entità come persone, date, luoghi, organizzazioni, richieste e problemi, con estrazioni orientate a casi come voce del cliente con preferenze e attese, ambito aziendale con fusioni e acquisizioni, prodotti e organizzazioni, e ambito pubblico con persone pubbliche, eventi e organizzazioni, oltre a estrazioni personalizzate e dizionari. Il motore spaziale implementa tipi di dati spaziali ed estensioni SQL per creare, leggere, aggiornare ed eliminare dati spaziali, è certificato dall'Open Geospatial Consortium e si integra con il sistema informativo geografico ArcGIS di ESRI. La modellazione con viste di calcolo, oggetti virtuali riutilizzabili che espongono i dati operativi all'utente finale, completa il quadro per chi prepara dati pronti alla lettura.

Dove gira HANA e quali edizioni devi conoscere

HANA può essere installato in locale o nel cloud. In locale può essere fornito come appliance nuova da un fornitore di hardware certificato oppure riusare componenti esistenti di conservazione e di rete con l'approccio chiamato Tailored Data Center Integration. Il sistema è certificato per più sistemi operativi, tra cui SUSE Linux Enterprise Server e Red Hat Enterprise Linux, e per piattaforme hardware Intel 64 e POWER Systems, con scalabilità orizzontale e verticale. Nel cloud è offerto come infrastruttura da SAP Cloud Infrastructure, Amazon Web Services, Microsoft Azure, Google Cloud Platform, IBM Softlayer e Huawei FusionSphere, mentre SAP offre il cloud privato gestito HANA Enterprise Cloud e la piattaforma Business Technology Platform, prima nota come Cloud Platform e HANA Cloud Platform. La licenza distingue Runtime, per applicazioni SAP come Business Warehouse su HANA e S/4HANA, e Full Use, per applicazioni SAP e non SAP anche personalizzate, con Base Edition per funzioni centrali senza applicazioni SAP, Platform Edition che aggiunge motori spaziali, predittivi, integrazione con R, ricerca, testo, analisi e grafi, ed Enterprise Edition che aggiunge componenti per caricamento dati e regole, mentre streaming ed ETL sono opzioni aggiuntive e la Express Edition del 9 marzo 2017 funziona anche sui portatili con uso gratuito fino a 32 GB di memoria e ampliamenti a pagamento fino a 128 GB.

La voce SAP HANA di Wikipedia è una pagina enciclopedica sul sistema di gestione di basi di dati di SAP, con la storia dal 2005 e dal primo prodotto di fine novembre 2010 fino a Business Suite su HANA, S/4HANA del 2015 e HANA 2 del novembre 2016, con architettura, concorrenza, analisi, sviluppo applicativo con XS Advanced Engine su Node.js e JavaEE e installazione. Vi trovi sigle come SPS con rilasci ogni sei mesi, regole di aggiornamento da SPS10 e da SPS9 tramite SPS12, e casi d'uso per grafi e testo.

Puoi aprire la voce, verificare le sigle della tua installazione e annotare su un foglio quali tabelle del tuo programma sono calde e quali sono tiepide prima di riprogettare le letture.

02 Prosegui la lettura

Altre guide della stessa rubrica e dei percorsi vicini.