SAP HANA Architecture: Databasöversikt
⚡ Smart sammanfattning
SAP HANA ArchiStruktur, landskap och storleksjustering utgör grunden för en minnesbaserad dataplattform byggd på SUSE Linux och C++Den här artikeln förklarar indexservern, lagringsmotorer, rad- och kolumnlager, deltasammanslagning och metoder för hårdvarustorleksbestämning.

Vad är SAP HANA-databasen?
SAP HANA är en minnescentrerad datahanteringsplattform. Databasen körs på SUSE Linux Enterprise Server (SLES) och Red Hat Enterprise Linux (RHEL) och är skrivet i C++Den kan skalas ut över flera maskiner för mycket stora arbetsbelastningar.
Viktiga fördelar med SAP HANA:
- Extremt snabb frågeprestanda eftersom all data laddas i minnet, vilket tar bort långsam disk-I/O från den kritiska sökvägen.
- Blandade OLAP (Online Analytical Processing) och OLTP (Online Transaction Processing) på samma databas, vilket förenklar datalandskapet.
SAP HANA-databasen är byggd från en uppsättning bearbetningsmotorer i minnet. Beräkningsmotorn är den huvudsakliga och interagerar med andra motorer som relationsmotorn (rad- och kolumnminne), OLAP-motorn, textmotorn och grafmotorn. En relationstabell finns antingen i radminnet eller kolumnminnet, och ytterligare motorer hanterar text- och grafdata medan minnet är tillgängligt.
SAP HANA Architecture
Data i kolumnlagret komprimeras med hjälp av tekniker som ordbokskodning, run-length-kodning, gles kodning, klusterkodning och indirekt kodning. När huvudminnesgränsen nås, avlastas databasobjekt som inte används (tabeller, vyer etc.) automatiskt till disken och laddas om när de begärs igen.
Administratörer kan också läsa in eller ta bort en enskild tabell manuellt genom att högerklicka på tabellen i SAP HANA Studio och välja Lasta av or Ladda.
SAP HANA-servern består av:
- Indexserver
- Förprocessorserver
- Namn Server
- Statistikserver
- XS motor
1. SAP HANA Index Server
Indexservern är den viktigaste SAP HANA-databaskomponent:
- Det är hjärtat av SAP HANA-databasmotor.
- Den innehåller de faktiska datalagrarna och de motorer som bearbetar informationen.
- Den kör inkommande SQL- och MDX-satser.
Index Server-arkitekturen visas nedan.
SAP HANA Index Server översikt
- Sessions- och transaktionshanterare: Sessionskomponenten hanterar anslutningar och sessioner för databasen. Transaktionshanteraren koordinerar och kontrollerar alla transaktioner.
- SQL och MDX-processor: SQL-processorn skickar frågor till lämplig motor (SQL / SQL Script / R / Calc Engine). MDX-processorn hanterar flerdimensionella frågor (till exempel mot en analytisk vy).
- SQL / SQL Script / R / Calc Engine: Kör SQL, SQL Script, R och beräkningsmodeller mot data.
- Repository: Underhåller versionshantering för SAP HANA-metadataobjekt som attributvyer, analytiska vyer och lagrade procedurer.
- Persistenslager: Tillhandahåller den inbyggda funktionen för katastrofåterställning genom att skriva sparpunkter och loggar till datavolymen på disken.
2. Förprocessorserver
Preprocessorservern används av Textanalys. Den ex.tracts och förbereder data från textinnehåll när sökfunktionen anropas.
3. Namnserver
Namnservern innehåller information om hela systemlandskapet. I en distribuerad distribution tracregistrerar varje komponent som körs och platsen för data över noder, så att frågor kan dirigeras till rätt server.
4. Statistikserver
Statistikservern samlar in status-, resursallokerings-, förbruknings- och prestandadata för SAP HANA-systemet. Obs: i HANA SPS 7 och senare körs den inbäddade statistiktjänsten inuti indexservern snarare än som en fristående process.
5. XS-server
XS-servern är värd för XS-motorn, som låter externa applikationer och utvecklare använda SAP HANA-databas över HTTP. XS-motorn fungerar som en lätt HTTP-server, vilket gör det möjligt för webbläsarbaserade klienter och REST-klienter att kommunicera direkt med HANA.
SAP HANA Landskap
"HANA" står för Högpresterande analytisk apparat och levereras som en kombinerad hårdvaru- och mjukvaruplattform.
- Modern hårdvara erbjuder betydligt fler CPU-kärnor, RAM-minne och lagringsbandbredd än vad äldre databasservrar var utformade för att använda.
- SAP HANA utnyttjar detta genom attping all arbetsdata i huvudminnet, vilket eliminerar flaskhalsen för disk-I/O som begränsar traditionella databaser.
Diagrammet nedan sammanfattar SAP HANA-hårdvaru- och mjukvaruinnovationer.
SAP HANA stöder två relationella datalager: Row Store och Kolumnbutik.
Row Store
Row Store beter sig som en traditionell databas (Oracle, SQL Server). Den viktigaste skillnaden är att alla rader finns i huvudminnet i SAP HANA, medan en traditionell databas huvudsakligen lagrar dem på disk.
Kolumnbutik
Kolumnlagring lagrar data i kolumnform i minnet. Kolumntabeller lagras här och motorn balanserar god skrivprestanda med optimerad läsprestanda. Diagrammet nedan visar de två strukturer som uppnår denna balans.
Huvudförråd
Huvudlagringssystemet innehåller huvuddelen av datan. Komprimeringsmetoder som ordbokskodning, klusterkodning, gles kodning och run-length-kodning används för att spara minne och snabba upp sökningar.
- Att modifiera komprimerad data direkt i huvudlagringen är dyrt, så skrivningar riktar sig inte mot huvudlagringen.
- Istället skrivs varje ändring till ett separat område som heter Delta lagringLäsningar kan träffa antingen huvud- eller deltalagring.
Data kan laddas eller urladdas manuellt med hjälp av Ladda in i minnet och Avläs från minnet alternativen som visas nedan.
Delta lagring
Delta Lagringen är optimerad för skrivningar och använder lättare komprimering. Alla obekräftade ändringar i en kolumntabell lagras här. När ändringar behöver slås samman tillbaka till huvudlagringen, kör Delta Sammanfoga drift från SAP HANA Studio.
- Deltasammanslagningen flyttar ändringarna som samlats in i deltalagring till huvudlagringen.
- Efter sammanslagningen sparas det nya huvudlagringsinnehållet på disken och komprimeringen beräknas om.
Hur data flyttas från Delta till huvudlagring
En radorganiserad buffert som kallas L1Delta sitter framför varje kolumntabell, vilket är anledningen till att en kolumntabell kan absorbera skrivningar med hög genomströmning.
- Användaren kör en UPDATE eller INSERT mot tabellen.
- Data landar först på L1-Delta (ej insamlade data).
- När data väl har bekräftats flyttas de till det kolumnorienterade L2-Delta buffert.
- När L2-Delta är full eller om sammanslagningen körs skrivs data till huvudlagringen.
Kolumnlagring är därför både skrivoptimerad (genom L1- och L2-delta) och läsoptimerad (genom huvudlagring). Efter bearbetning lagras data av persistenslagret på disken.
Exempel på en radbaserad tabell:
Samma logiska tabell lagras på disken olika beroende på lagringstyp. I Row Store skrivs rader sammanhängande:
I kolumnlagringen lagras värden från samma kolumn tillsammans:
Eftersom kolumnvärden delar datatyp och ofta upprepas, komprimeras kolumnlayouten extremt bra – vilket är den största minnesfördelen med kolumnlagret.
SAP HANA Storlek
Storleksanpassning är processen att bestämma de hårdvaruresurser – RAM, disk och processor – som krävs för en SAP HANA-systemet. Minne är den viktigaste faktorn, processorn är den andra och disken härleds från de två första.
I en SAP Vid HANA-implementering är valet av rätt serverstorlek för företagets arbetsbelastning en av de viktigaste uppgifterna. Jämfört med ett traditionellt databashanteringssystem (DBMS) skiljer sig HANA-storleksvalet på tre områden:
- Huvudminne: driven av metadata plus volymen av transaktionella och analytiska data som lagras i minnet.
- CPU: uppskattade snarare än mätta, baserat på prognosfrågor och belastningsmönster.
- Disk: dimensionerad för datapersistens och loggvolymer, inte för onlinefrågedata.
Applikationsserverns CPU och minne förblir oförändrade jämfört med den tidigare databasen, eftersom HANA bara ersätter databasnivån.
SAP erbjuder flera metoder för att beräkna rätt storlek:
- Storleksanpassning med hjälp av en ABAP-rapport (transaktionskod ST03 data och rapport /SDF/HDB_SIZING).
- Storleksanpassning med hjälp av ett databasskript för icke-ABAP-system.
- Storleksanpassning med hjälp av SAP Snabbstorleksmätare verktyg på SAP Service Marketplace.
När verktyget Quick Sizer används visas kravet i formatet nedan.












