Come Usare SQLScript in ABAP per SAP HANA | SapProfession gtag('config', 'AW-858385100');

Come Usare SQLScript in ABAP per SAP HANA

 Ogni sviluppatore SAP HANA dovrebbe essere esperto in SQL e, idealmente, in SQLScript.

Sebbene per comodità e velocità ci si affidi spesso agli strumenti di sviluppo per generare SQL, per funzionalità avanzate, per le ultime novità e per risolvere problemi di sicurezza o prestazioni, è necessario comprendere cosa fa il SQL e utilizzare SQLScript per ciò che SQL non può fare (o farebbe male).

More...



In questo post, descriveremo sia SQL che SQLScript in relazione a SAP HANA. Inoltre, spiegheremo come SQLScript può essere utilizzato nelle procedure di database gestite da ABAP (AMDP), che, come indica il nome, sono oggetti di sviluppo ABAP e procedure SAP HANA contemporaneamente, permettendo di includere SQLScript all'interno dei propri oggetti ABAP.

SQL

SQL è la lingua franca dei database, ma le implementazioni possono variare ampiamente. Per lavorare efficacemente con SQL in SAP HANA, avrai bisogno di una copia della SQL Reference Guide sulla tua scrivania (preferibilmente sul desktop del tuo computer, dato che la guida SPS 04 consiste di 2.259 pagine). In questa guida troverai i tipi di dati disponibili, operatori, espressioni, predicati, funzioni SQL, istruzioni, codici di errore (tutti 5.737) e limitazioni del sistema (ad esempio, 16.383 blocchi di tabelle, 4.095 tabelle in un'istruzione, lunghezza dell'istruzione SQL di 2 GB e dimensione totale di tutte le procedure memorizzate di 1.945 GB).

Il Structured Query Language (SQL) è vecchio quanto il System R di IBM, il primo sistema di gestione di database relazionale (RDBMS), e risale ai primi anni '70. SQL è uno standard ANSI/ISO dalla metà degli anni '80, e di tanto in tanto viene pubblicata una nuova versione (chiamata dialetto), l'ultima è SQL:2016. La maggior parte dei database è conforme a ANSI in una certa misura, più spesso SQL:1992, il che significa che puoi eseguire la stessa istruzione SQL su tutti i database conformi con lo stesso risultato e senza errori. In pratica, i database hanno estensioni specifiche del fornitore al linguaggio SQL per sfruttare caratteristiche specifiche, e SAP HANA non fa eccezione.

Ad esempio, l'istruzione:

 SQL SELECT TA.a1, TB.b1 FROM TA, LATERAL (SELECT b1, b2 FROM TB WHERE b3 = TA.a3) TB WHERE TA.a2 = TB.b2

utilizza join laterali e quindi verrà eseguita solo su SAP HANA e richiede un livello di rilascio specifico che supporta i join laterali (SPS 04 o successivo).

Le viste SQL sono ampiamente utilizzate nella modellazione di SAP HANA e presentano una tabella virtuale come input per l'analisi. Attraverso l'uso di funzioni SQL, filtri della clausola WHERE e istruzioni JOIN, è possibile restituire un set di risultati specifico e dinamico quando la vista viene accessa.

Sebbene tu possa creare viste a runtime con l'istruzione CREATE VIEW, più spesso le viste saranno definite dallo sviluppatore come artefatti di design-time (PurchaseOrderItem.hdbview) e distribuite nel repository o, nel caso di SAP HANA XS Advanced, in un container HDI.

SQLScript
L'obiettivo di SQLScript è incorporare la logica applicativa ad alta intensità di dati nel database. In un'architettura tradizionale a tre livelli, il livello intermedio, lo strato applicativo, tende a ridurre la complessità del database ed esegue tutta la logica aziendale. Ad esempio, l'applicazione potrebbe eseguire i seguenti passaggi: selezionare tutte le righe dalla tabella A, trasferirle al server applicativo e poi iterare attraverso ciascuna riga per eseguire qualche azione. Una copia massiccia di dati è un approccio comune con linguaggi imperativi come Java o ABAP, ma questo approccio non sfrutta le capacità di elaborazione parallela (massiccia) di SAP HANA con CPU multicore e tutti i dati residenti in memoria. È necessario un code pushdown per ottenere le migliori prestazioni, e SQLScript rende possibile il code pushdown.

Concettualmente, il linguaggio è correlato alle procedure memorizzate e utilizza una combinazione di logica dichiarativa e di orchestrazione (imperativa) (cicli e condizioni). Puoi utilizzare i tipi di dati SQL disponibili nel database così come creare i tuoi tipi definiti dall'utente, proprio come puoi creare funzioni definite dall'utente (UDF) e librerie. Sono supportati blocchi anonimi e transazioni autonome, così come funzionalità come la crittografia SQLScript.

Alcune buone pratiche chiave da tenere a mente quando si utilizza SQLScript includono:

- Scomporre query complesse in sottoespressioni: consente al compilatore di riconoscere i modelli e evitare di ripetere calcoli costosi.
- Ridurre le dipendenze ed evitare i cursori (cicli): massimizza le opportunità di elaborazione parallela.
- Evitare SQL dinamico: SQL dinamico viene generato a runtime e richiede compilazione e ottimizzazione della query per ogni chiamata. SQL statico viene compilato una volta e può essere eseguito molte volte, il che risulta in prestazioni molto più veloci.

Per aiutarti a scrivere codice SQLScript, l'SAP Web IDE per SAP HANA include un debugger SQLScript, disponibile anche in ADT per Eclipse.

Procedure di Database Gestite da ABAP (AMDP)
Per sfruttare l'elaborazione parallela e il database in-memory per applicazioni aziendali alimentate da SAP HANA, lo stesso paradigma di sviluppo del code pushdown trovato in SQLScript è stato promosso anche per lo sviluppo ABAP. AMDP è centrale per questo approccio.

Il linguaggio di programmazione ABAP, acronimo di Advanced Business Application Programming, è stato rilasciato per la prima volta nel 1983—nel mezzo tra C (1972) e Java (1995). Inizialmente, ABAP era un preprocessore generale di reportistica (Allgemeiner Berichtsaufbereitungsprozessor) per SAP R/2. Successivamente, ABAP si è evoluto come linguaggio di sviluppo per la piattaforma SAP R/3 (1992), principalmente per Report, Interfacce, Conversioni, Estensioni, Forme e Workflow (oggetti RICEFW). ABAP è un linguaggio proprietario con estensioni orientate agli oggetti aggiunte nel 1999.

I programmi ABAP sono memorizzati all'interno del database ma astraggono implementazioni specifiche del database utilizzando Open SQL, che funziona su qualsiasi altro database (AnyDB). Con lo sviluppo di applicazioni aziendali SAP che funzionano solo su SAP HANA, come SAP S/4HANA e SAP BW/4HANA, il code pushdown è il nuovo paradigma. Il code pushdown è anche noto come code-to-data, e richiede che le operazioni ad alta intensità di dati siano spinte verso il basso fino al database, sfruttando l'elaborazione parallela e il calcolo in-memory al livello del database il più possibile, il che è promosso dall'uso di CDS e AMDP.

AMDP è un framework che ti permette di chiamare SQLScript incorporato in oggetti ABAP. La figura sottostante mostra una procedura ABAP con tra le parentesi della chiamata della funzione ABAP execute_ddl il codice SQLScript. Lo sviluppo, la manutenzione e il trasporto del SQLScript sono tutti eseguiti sul lato ABAP.

Un buon punto di partenza è ABAP su SAP HANA, disponibile su https://www.sapprofessionacademy.com.

Click Here to Leave a Comment Below 0 comments
elenco Blog