Hana | |
---|---|
Tip de | SGBD relațional și bază de date rezidentă |
Dezvoltator | SAP SE |
Scris in | C și C++ |
Sistem de operare | linux |
ultima versiune |
|
Stat | activ |
Licență | acord de proprietate și de utilizare |
Site-ul web | sap.com/products/hana.ht… |
Hana ( Aplicație analitică de înaltă performanță ) este un SGBD relațional rezident de la SAP care oferă lucru atât în scenarii OLTP , cât și OLAP . Este furnizat doar pentru a lucra pe un set limitat de echipamente: producătorul certifică anumite modele de noduri de server cu o configurație specifică. Sistemul include, de asemenea, un server web și un depozit de control al versiunilor necesare pentru dezvoltarea aplicațiilor. Aplicațiile Hana pot fi create folosind codul JavaScript și codul HTML pe partea de server .
Sistemul se bazează pe motorul de căutare TREX rezident pe coloană, DBMS tranzacțional rezident P*TIME (achiziționat de SAP în 2005) și MaxDB DBMS cu procesor liveCache încorporat [3] [4] . Arhitectura noului sistem a fost prezentată în 2008 de un grup de specialiști de la SAP , Institutul Hasso Plattner și Universitatea Stanford [5] [6] .
Prima lansare a produsului a avut loc la sfârșitul lunii noiembrie 2010 [4] [7] . În ciuda faptului că până la jumătatea anului 2011 soluția a atras atenția pieței, clienții de afaceri conservatori au continuat să creadă că tehnologia nu era încă „coaptă” [8] .
În octombrie 2012, SAP a anunțat lansarea unei variante a sistemului Hana One, care folosea o cantitate mică de memorie găzduită în Amazon Web Services pe oră [9] .
În ianuarie 2013 a fost anunțat suport pentru SAP Hana ca DBMS pentru produsul principal al corporației - SAP ERP , în luna mai a aceluiași an au început livrările [10] [11] . Hana Enterprise Cloud a fost lansat în mai 2013 [12]
În loc de a lansa versiuni succesive, se folosește practica pachetelor de servicii [13] [14] , de exemplu, în august 2015, a fost lansat pachetul de actualizare SPS10 [15] [16] .
Sistemul acceptă stocarea de date atât pe rând, cât și pe coloană : prima este utilizată pentru încărcări tranzacționale, cea din urmă pentru cele analitice. Serverul de index oferă gestionarea sesiunilor, autorizarea, gestionarea tranzacțiilor și procesarea comenzilor. Managerul de autorizare oferă servicii de autentificare și autorizare și asigură securitate utilizând protocoalele de autentificare SAML , OAuth sau Kerberos .
Servicii extinse subsistem ( Extended Services, XS ) - un server web cu acces privilegiat la baza de date. Aplicațiile pot fi implementate pe XS utilizând servlet-uri Java sau aplicații JavaScript de pe server. Aceste aplicații pot fi aplicații web sau puncte finale de servicii web accesate prin API-uri în stil REST . Serverul JavaScript include extensii bazate pe jQuery pentru accesarea bazei de date și a mesajelor HTTP. Motorul JavaScript se bazează pe proiectul Mozilla SpiderMonkey . Aplicațiile client accesează baza de date direct folosind JDBC sau prin subsistemul XS folosind HTTP. Aplicațiile pot ocoli procesorul SQL accesând direct subsistemul de calcul folosind interogări bazate pe XML. Există trei tipuri de obiecte non-SQL: Vizualizări de atribut, Vizualizări de calcul și Vizualizări analitice. În multe cazuri, utilizarea acestor obiecte în loc de interogări SQL îmbunătățește performanța aplicației.
Pentru a asigura toleranța la erori, sistemul menține jurnalele de scriere anticipată .
Dezvoltarea aplicațiilor folosește plug-in-ul Hana Studio pentru mediul de dezvoltare Eclipse .
Hana Server include un sistem de control al versiunilor. Aplicațiile dezvoltate în Hana Studio sunt implementate folosind un depozit care menține un istoric al versiunilor pentru fiecare obiect de implementare artificială (tabel, vizualizare, procedură, fișier JavaScript și altele). Mutarea aplicațiilor de la un server la altul se face prin crearea așa-numitelor unități de distribuție ( Distribution Unit, DU ).
În ciuda suportului JDBC, SAP promovează mutarea logicii de la aplicații client-server sau cu mai multe niveluri la serverul Hana ca aplicații XS pentru a reduce cantitatea de date transferate de la serverul bazei de date la serverul de aplicații.