Databáze SAP HANA

5. října 2025

Lang: cs en de es

SAP HANA je in-memory platforma, která slouží jako základ moderních podnikových řešení typicky od firmy SAP. Tato technologie umožňuje zpracování dat v reálném čase. Tento článek poskytuje přehled základních informací o SAP HANA a detailní návod, jak s ní pracovat. Bude zahrnovat následující kroky: instalace platformy SAP HANA, postupy pro její používání, návod na zálohování dat.

SAP HANA je in-memory platforma, která v sobě integruje databázi a aplikační server. Klíčová je její schopnost ukládat a zpracovávat data přímo v operační paměti serveru (RAM), což ji odlišuje od tradičních databází, které ukládají data na pevný disk.

Proč je SAP HANA víc než jen databáze? 🧐

SAP HANA je navržena tak, aby eliminovala oddělené systémy pro transakční zpracování (OLTP) a analytické zpracování (OLAP). Díky své architektuře "in-memory" (data jsou uložená a zpracovávaná v operační paměti) a sloupcovému ukládání dat umožňuje provádět oba typy operací souběžně a s mimořádnou rychlostí.

Zde jsou hlavní důvody, proč SAP HANA přesahuje tradiční databázi:

  • Jednotná platforma: SAP HANA integruje databázi, aplikační server a nástroje pro datovou integraci a modelování. To zjednodušuje IT architekturu a snižuje latenci, protože není potřeba přesouvat data mezi různými systémy.
  • Aplikační vývoj: Nabízí kompletní prostředí pro vývoj aplikací. Programátoři mohou vytvářet a spouštět aplikace přímo na platformě, využívající její vysoký výkon pro analýzy a transakce v reálném čase.
  • Pokročilé analytické funkce: SAP HANA obsahuje vestavěné knihovny pro zpracování textu, prediktivní analýzy, geodata, grafovou analýzu a strojové učení. To umožňuje firmám provádět komplexní analýzy a získávat hluboké vhledy do svých dat bez nutnosti migrace dat do jiných specializovaných nástrojů.
  • Zpracování v reálném čase: Díky uložení dat v paměti dokáže SAP HANA zpracovat obrovské objemy dat v řádu sekund. To je klíčové pro podniky, které potřebují okamžitý přehled o stavu svých operací, zákaznickém chování nebo finančních výsledcích.

V podstatě, zatímco tradiční databáze pouze ukládá a poskytuje data, SAP HANA je kompletní ekosystém, který data nejen ukládá, ale také je v reálném čase zpracovává, analyzuje a umožňuje na nich stavět komplexní aplikace.

Hlavní vlastnosti SAP HANA

  • Zpracování v reálném čase: Díky technologii in-memory dokáže SAP HANA analyzovat obrovské objemy dat v řádu sekund. To umožňuje firmám získávat okamžité přehledy a rychle reagovat na změny na trhu.
  • Jednotná platforma: SAP HANA kombinuje transakční (OLTP) a analytické (OLAP) zpracování dat do jediného systému. To eliminuje potřebu oddělených databází pro různé typy úloh a zjednodušuje IT architekturu.
  • Sloupcově orientovaná architektura: Data jsou ukládána ve sloupcích, což je ideální pro rychlé agregace a analýzy. Zároveň ale podporuje i řádkové ukládání, což zajišťuje flexibilitu pro různé typy dat a úloh.
  • Vývoj aplikací: SAP HANA není jen databáze, je to také vývojová platforma, na které lze vytvářet inovativní a vysoce výkonné aplikace.

Proč je SAP HANA tak rychlá?

Rychlost SAP HANA je dána několika faktory:

  • Data v paměti: Přístup k datům v RAM je výrazně rychlejší než k datům na pevném disku nebo SSD.
  • Komprese dat: Sloupcové ukládání umožňuje efektivnější kompresi dat, což snižuje nároky na paměť a zvyšuje rychlost zpracování.
  • Žádné agregáty a indexy: Tradiční databáze používají předpočítané agregáty a indexy pro urychlení dotazů. SAP HANA dokáže data zpracovat tak rychle, že tyto pomocné struktury nejsou potřeba, což zjednodušuje datový model a snižuje datovou stopu.

Proč vznikla databáze SAP HANA? oficiální důvody

Technické důvodu

SAP HANA vznikla jako reakce na zásadní omezení tradičních databázových technologií, které již nebyly schopny držet krok s rostoucími požadavky moderního podnikání. Hlavním cílem bylo umožnit firmám zpracovávat obrovské objemy dat a získávat analytické přehledy v reálném čase a zároveň z plateb za databázi Oracle udělat příjmy pro firmu SAP.

Hlavní motivace a problémy, které SAP HANA řeší:

  • Rostoucí objem dat: S digitální transformací firem dramaticky narůstalo množství transakčních i nestrukturovaných dat. Tradiční diskové databáze byly příliš pomalé na to, aby tato data efektivně zpracovaly a analyzovaly.
  • Zpoždění v analýzách: Podniky musely historicky udržovat dvě oddělené datové struktury: jednu pro transakce (OLTP) a druhou pro analýzy (OLAP), často v datovém skladu. Data se mezi nimi musela pravidelně přesouvat (proces ETL), což vedlo k časovým zpožděním a zastaralým reportům. SAP HANA tento model eliminuje.
  • Omezení výkonu: Tradiční databáze jsou navrženy pro práci s daty na pevném disku, kde je přístup výrazně pomalejší než v operační paměti (RAM). SAP HANA využívá technologii in-memory computing, čímž zásadně zrychluje veškeré operace.
  • Potřeba zjednodušení IT architektury: Kombinace různých systémů (databáze, aplikační server, analytické nástroje) byla složitá, nákladná a neefektivní. SAP HANA sloučila tyto funkce do jediné, jednotné platformy.

V podstatě, SAP HANA vznikla jako revoluční řešení, které mělo firmám umožnit rychle a efektivně reagovat na změny na trhu a činit strategická rozhodnutí na základě aktuálních dat, nikoli těch z minulého dne.

Strategická motivace za SAP HANA

Po dlouhou dobu, přestože byl SAP globálním lídrem v oblasti podnikového softwaru (ERP), byla většina jeho systémů (jako SAP ECC) provozována na databázích třetích stran. Největší podíl na trhu měla společnost Oracle, což znamenalo, že SAP i jeho zákazníci byli silně závislí na jejích licenčních poplatcích a technologiích.

Vývoj SAP HANA umožnil společnosti SAP získat několik zásadních strategických výhod:

  • Snížení závislosti na třetích stranách: Vytvořením vlastní in-memory platformy se SAP osvobodil od nutnosti platit licenční poplatky Oracle a dalším databázovým dodavatelům.
  • Kompletní kontrola nad celým softwarovým stackem: SAP mohl poprvé nabídnout integrované a plně optimalizované řešení. To jim umožnilo navrhovat aplikace (jako SAP S/4HANA) tak, aby plně využily výkon a unikátní funkce databáze HANA, což s databázemi jiných výrobců nebylo možné.
  • Nový zdroj příjmů: SAP začal prodávat nejen své aplikace, ale i databázovou platformu, čímž se z partnera stal přímý konkurent Oracle na databázovém trhu.

Vytvoření SAP HANA bylo proto nejen technologickým posunem, ale i významným obchodním a strategickým krokem, který změnil dynamiku celého trhu podnikového softwaru.

Co je to In-Memory Databáze?

In-memory databáze (IMDB) je typ databáze, která ukládá svá data do hlavní operační paměti (RAM) počítače namísto na tradiční disky (SSD/HDD).

Hlavním důvodem tohoto přístupu je extrémně vysoká rychlost přístupu k datům. Zatímco přístup k datům na disku vyžaduje mechanické nebo elektronické operace, které jsou relativně pomalé, RAM umožňuje téměř okamžitý přístup, což vede k výrazně rychlejším transakcím a analytickým operacím.

Jak funguje a jaké jsou výhody?

Data v IMDB jsou načtena do paměti při startu databázového serveru a veškeré operace (čtení, zápis, aktualizace) probíhají přímo v paměti. Pro zajištění trvalosti dat (tzv. persistence), aby se data neztratila při výpadku proudu nebo restartu, se používají doplňkové mechanismy jako:

  • Záznam do transakčních logů: Každá změna je okamžitě zaznamenána do logu na disku.
  • Periodické snímky (snapshots): V pravidelných intervalech se celý stav databáze uloží na disk.

Mezi hlavní výhody patří:

  • Neuvěřitelná rychlost: Ideální pro aplikace, které vyžadují zpracování velkého objemu dat v reálném čase, jako jsou finanční služby, telekomunikace nebo online hry.
  • Nízká latence: Minimální zpoždění při odpovídání na dotazy.
  • Paralelní zpracování: Mnoho IMDB je optimalizováno pro vícejádrové procesory, což umožňuje efektivní paralelní zpracování dotazů.

Kdy se používají in-memory databáze?

In-memory databáze se skvěle hodí pro:

  • Real-time analytiku: Zpracování dat ze senzorů, kliků na webových stránkách nebo jiných událostí v reálném čase.
  • Vysokofrekvenční obchodování (HFT): Bleskové provádění obchodních transakcí na finančních trzích.
  • Session management: Ukládání uživatelských relací a dočasných dat pro webové aplikace.
  • Kešování dat: Rychlý přístup k často používaným datům, aniž by bylo nutné je pokaždé číst z pomalejšího disku.

Další in-memory databáze kromě SAP HANA

In-memory databáze představují moderní přístup ke zpracování dat a kromě SAP HANA existuje řada dalších významných hráčů na trhu. Tyto databáze se liší svými funkcemi, cílovými trhy a aplikačním zaměřením.

  • Oracle TimesTen je in-memory databáze, která je optimalizována pro aplikace s vysokou rychlostí odezvy a velkým počtem transakcí, jako jsou telekomunikace nebo finanční služby. Funguje buď jako samostatná databáze, nebo jako mezipaměť pro větší databáze Oracle.

  • Microsoft SQL Server integroval technologii in-memory (nazývanou In-Memory OLTP) přímo do svého databázového jádra. Umožňuje firmám zrychlit zpracování transakcí, dotazů a datových skladů, aniž by musely migrovat na zcela novou platformu.

  • VoltDB je databáze speciálně navržená pro aplikace, které vyžadují obrovský počet transakcí v reálném čase, jako je online herní průmysl nebo zpracování událostí (event processing).

  • SingleStore (dříve MemSQL) je distribuovaná in-memory databáze, která kombinuje analytické i transakční zpracování. Je navržena pro škálovatelnost a rychlé zpracování velkých objemů dat.

  • Redis je spíše než plnohodnotná databáze, **struktura dat v paměti**, která se často používá jako rychlá mezipaměť (cache), fronta zpráv (message broker) nebo jako dočasné úložiště pro webové a mobilní aplikace.

  • Apache Ignite je distribuovaná databázová platforma, která slouží jako in-memory datová mřížka (data grid). Je optimalizovaná pro velké objemy dat a propojitelnost s jinými systémy.

  • Memcached je volně dostupný, distribuovaný systém pro ukládání objektů v operační paměti. Jeho hlavním účelem je zrychlit webové aplikace tím, že ukládá do RAM často požadovaná data, například výsledky databázových dotazů nebo API volání. Funguje jako jednoduché úložiště typu klíč-hodnota a na rozdíl od plnohodnotných databází není určen pro trvalé ukládání dat. Memcached je extrémně rychlý a efektivní pro snížení zátěže databází, což z něj dělá důležitou součást architektury mnoha vysoce výkonných webových stránek a platforem.

Instalace SAP HANA

SAP HANA jde provozovat na Windows. Ale pro jakýkoli databázový systém je vždy lepší použít Unixový systém. Proto se budeme zabývat pouze instalaci SAP HANA na OS LINUX

SAP HANA oficiálně podporuje pouze linuxové distribuce RedHat a Suse. A je udělaná tak, že na jiné distribuce ani nejde nainstalovat. Dokonce ruční instalace je tak komplikovaná, že nejlepší postup je stáhnout předpřipravený obraz systému kde je nainstalované SUSE plus nainstalovaná databáze SAP HANA.

Pro stažení je potřeba se zaregistrovat. Existuje pak asi aplikace, která umožňuje vybrat co si chcete stáhnout. Pro první testovací účely je proto k nejjednodušší požádat kolegu o předání čistého základního obraz virtuálního stroje. Tím se vyhnete složitému procesu stahování. SAP HANA verze 1.0 vyžaduje cpu s instrukcemi SSE4.2. Aby vám fungovala, tak nezapomeňte zvolit správnou architekturu CPU ať už fyzického nebo virtuálního.

Po spuštění se můžete přihlásit skrze ssh na účet hxeadm.

ssh hxeadm@IP
Při prvním přihlášení předpřipravený systém vyžaduje nastaveni hesla pro OS a pro databázi SAP HANA a ještě další nastavení.

Image PC s databází SAP HANA pro Virtualbox má předpřipraveného uživatele s heslem. User:hxeadm pass:HXEHana1 . Po přihlášení je vyžadována změna.
Image pro VirtualBOx je možné i konvertovat a importovat do virtualizačního nástroje Proxmox.

PS: v linuxové distribuci SUSE je správce softwaru zypper. Příkaz pro aktualizaci seznamu balíčků:

zypper update

První spuštění VPS se databáze SAP HANA

Video ukázka prvního spuštění virtuálního serveru s předpřipravenou distribucí SUSE a databází SAP HANA:

Výpis verze DB:

HDB version

Příkaz pro zastavení všech služeb spojených s databázovým systémem SAP HANA:

./HDB stop
Příkaz pro spuštění všech služeb spojených s databázovým systémem SAP HANA:
./HDB start
Příkaz pro zobrazení stavu služby sap-hana-tmpfs, která spravuje dočasný souborový systém v paměti (tmpfs) pro databázi SAP HANA.
systemctl status sap-hana-tmpfs

Defaultně databáze SAP HANA komunikuje na portu 8090.

Provoz vDockeru

Jinou možností je provozovat databazí SAP HANA jako linuxový kontejner např v Dockeru nebo třeba i Kubernetes. Installing SAP HANA, express edition with Docker. HANA 2.0 Running inside Docker build docker image with SAP HANA.

Příkaz pro stažení SAP HANA jako image pro docker:

docker pull saplabs/hanaexpress

Připojení k DB SAP HANA

Tak jako vždy existuje možnost připojit se z konzole nebo použít grafického klienta.

Grafický klient

Grafický klient, který jde provozovat na Windows je:squirrel-sql.

Přihlášení přes DBeaver funguje, jen je potřeba nastavit jiný než defaultní typ DB HANA. DBeaver je univerzální grafický databázový klient já DBeaver používám například i k připojení k databází MS SQL. Výhoda DBeaver je, že je multiplatformní, takže bude fungovat jak na Windows, Linuxu i MacOS na architektuře x86 i x86_64 nebo ARM64.

Konzolový klient

Připojení k DB:

/usr/sap/HXE/HDB90/exe/hdbsql -i 90 -d SystemDB -u SYSTEM -p 2021#Test 
  • -i je volba pro určení čísla instance.
  • -d je volba pro určení názvu databáze, ke které se chcete připojit.
  • -u je volba pro určení uživatelského jména pro přihlášení.
  • -p je volba pro zadání hesla.

SQL dotazy v databázi SAP HANA

SQL (Structured Query Language), je dotazovací jazyk, který se používá pro správu a manipulaci s daty v relačních databázích. Je to standardní způsob, jak komunikovat i s databází SAP HANA.

SAP HANA standardně nerozlišuje velká a malá písmena u identifikátorů, jako jsou názvy tabulek, sloupců nebo schémat.

SQL pro vytvoření tabulky a vložení záznamů:

CREATE TABLE status (id INT, text NVARCHAR(30) );
INSERT INTO status (id,text) VALUES (1, 'text1'); 
INSERT INTO status (id,text) VALUES (3, 'Three');

Pozor zápis s dvojitými uvozovkami nefunguje:

INSERT INTO status (id,text) VALUES (1, "text1");

SQL SELECT:

select * from status;

Video návod jak se připojit k databázi SAP HANA a provést základní SQL dotaz:

Tenanti v v databázi SAP HANA

Co je to tenant v databázích?

Termín "tenant" v oblasti databází označuje izolovanou sadu dat, která patří jedinému klientovi nebo uživateli v prostředí s víceuživatelskou architekturou (multi-tenant architecture).

Multi-tenant Architektura

Multi-tenant architektura je softwarový model, kde jedna instance aplikace slouží více zákazníkům. Každý zákazník (tenant) sdílí stejnou databázovou instanci, ale jeho data jsou striktně oddělena a izolována od dat ostatních zákazníků. Tato architektura je velmi běžná u cloudových řešení (SaaS - Software as a Service), protože umožňuje poskytovatelům efektivně spravovat a škálovat službu.

Klíčové Charakteristiky a Výhody

  • Izolace dat: Každý tenant má své vlastní virtuální datové úložiště, ačkoli se fyzicky nachází ve sdílené databázi. To zajišťuje, že data jednoho tenanta nejsou viditelná pro ostatní.
  • Efektivita a úspora nákladů: Provoz jediné databázové instance pro mnoho tenantů je mnohem nákladově efektivnější než spravovat a udržovat samostatnou databázi pro každého zákazníka. Zdroje jako paměť a procesor jsou sdíleny a využívány efektivněji.
  • Snadnější správa a aktualizace: Správa a aktualizace softwaru a databáze probíhá pouze na jednom místě, což zjednodušuje údržbu a nasazení nových funkcí pro všechny klienty najednou.

Příklady

Příkladem multi-tenant architektury může být například Salesforce nebo Office 365. V Salesforce sdílí všichni zákazníci (tenanti) jednu obří databázi, ale data každé společnosti (jako je vaše) jsou logicky oddělena a přístup k nim mají pouze její oprávnění uživatelé.

Příklad práce s Tenantami v databázi SAP HANA

CREATE DATABASE TENANTDB SYSTEM USER PASSWORD Password1
Jednoduše řečeno, tento příkaz provede následující:
  1. Vytvoří novou tenant databázi s názvem TENANTDB.
  2. Pro tuto novou databázi vytvoří uživatele s administrátorskými právy (superuživatele) s názvem SYSTEM.
  3. Tomuto uživateli SYSTEM nastaví heslo Password1.

Tato nově vytvořená databáze TENANTDB je izolovaná od ostatních tenant databází v rámci stejné SAP HANA instance. Každá taková databáze má vlastní uživatele, schéma a data, což umožňuje efektivně spravovat a oddělovat různé projekty nebo oddělení .

V architektuře SAP HANA s podporou více databází existuje jedna hlavní databáze (SystemDB), která spravuje celou instanci a všechny tenant databáze. Tento příkaz se spouští právě v kontextu SystemDB a slouží k vytvoření nové, nezávislé databáze pro aplikace.

Důvody proč v praxi používá tenatní databáze:

  • Izolaci dat a aplikací: Každá aplikace nebo oddělení může mít svou vlastní databázi.
  • Jednodušší správu: Administrátoři mohou spravovat každou databázi nezávisle (např. restartovat, zálohovat, aktualizovat).
  • Optimalizaci zdrojů: Zdroje jako paměť a procesor se sdílí mezi všemi databázemi, ale mohou být efektivně spravovány pro každou z nich.

Zastavení databáze:

ALTER SYSTEM STOP DATABASE TENANTDB;
Zastavení systémové databáze:
ALTER SYSTEM STOP DATABASE HXE;

Příkaz pro spuštění databáze:

ALTER SYSTEM START DATABASE HXE; 

V systémové databázi by jste neměli vytvářet žádné další tabulky a ukládat tam uživatelská data. Ale vytvořte si novou databázi=nový tenant!

CREATE SCHEMA schema1
Příkaz SCHEMA slouží k vytvoření nového schématu s názvem schema1 v databázi SAP HANA. V databázovém kontextu je schéma logický kontejner, který seskupuje a organizuje databázové objekty, jako jsou tabulky, pohledy, funkce a procedury.

Vytvoření schématu a pomocí SQL a vložení dat:

CREATE TABLE schema1.table  (id INT, text NVARCHAR(30) );
INSERT INTO schema1.table  (id,text) VALUES (1, 'text1'); 

Video návod jak používat a pracovat s tenantami u databáze SAP HANA:

Zálohování

Zálohování a obnova dat je u databáze SAP HANA udělaná komplikovaně, takže to budu muset sepsat v samostatném článku.

Pokud potřebujete navrhnout a realizovat proces automatického zálohování, tak se na mě obraťte.

Další příkazy

Zjištění kolik místa databáze zabírá:

select sum((disk_size)/1024/1024/1024) from m_table_persistence_statistics;

Zajímavé odkazy

Zkušenosti

Práce s databází SAP HANA je složitá a komplikovaná. Pokud jste se pro ni rozhodli a potřebujete pomoci se správou a zálohováním neváhejte se na mě obrátit přes kontakt.

Články na podobné téma

Příkaz AT
Docker build multiarch image
VMware vs Proxmox: porovnání výkonu
GitLab CI/CD: automatizace testů a nasazení aplikace
Migrace VPS z VMware na Proxmox
Změna licencování VMware
Provoz Microsoft SQL serveru na Linuxu
Zálohování: Proxmox backup server
Linux jako router a firewall
Jak náhrát docker image do Docker Registry
Linux: Logical Volume Management
Linuxový softwarový RAID
Provoz webové aplikace za proxy
Migrace mail schránek
Docker multistage build
Zálohování dat zapnutím počítače
Podman
Import Windows do virtualizace Proxmox
Docker a PHP mail
Virtualizace Proxmox
Docker a Cron
Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Příprava linuxového serveru pro běh webové aplikace v jazyce Python
Jak řešit špatný výkon sdílených souborů u Dockeru
Jak začít správně používat Docker
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Mageia Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Operační systém GNU/Linux

Odběr novinek

Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k odběru novinek.


+