What is SAP HANA in-memory database platform?
SAP HANA was introduced as SAP In-Memory High Performance Analytic Appliance for Real-Time Business Intelligence and Business Analytical applications with the main goal to accelerate analytical functions throw in-memory database and dedicated software and hardware.
SAP HANA is a combination of hardware and software, and it is delivered as an optimized appliance in cooperation with SAP’s partners (IBM, HP, Hitachi, SUSE, etc.). The core part of SAP HANA is the new SAP in-memory database, which is a hybrid in-memory database that combines row-based, column-based, and object-based database technology.
SAP HANA is the next logical step in SAP in-memory computing. By combining earlier developed and acquired technologies, such as the BW Accelerator, MaxDB with its in-memory capabilities, SAP liveCache, P*Time, etc. SAP created an in-memory database appliance focusing on BI applications with future plans for rolling it as a database platform for the rest of SAP application stack.
SAP HANA Appliance
The SAP HANA appliance consists of following components
– SAP partners with several hardware vendors such as Cisco, Dell, IBM, HP, Hitachi, to provide the infrastructure needed to run the SAP HANA software in an Intel Xeon-based appliance model.
– Multi-node cluster configuration sometimes based on third parties like (VMware)
– SUSI/RedHat Linux as the base operation system
– SAP In-memory database
– SAP BI applications
– HANA Studio – Eclipse-based administration and data-modeling tool for SAP HANA
– SAP HANA client
– Set of libraries required for applications to be able to connect to the SAP HANA database
– Software Update Manager (SUM) for SAP HANA is the framework allowing the automatic download and installation of SAP HANA updates from SAP Marketplace and other sources using a host agent.
SAP HANA database
The SAP HANA database consists of two database engines:
– The column-based store, storing relational data in columns, optimized for holding data mart tables with large amounts of data, which are aggregated and used in analytical operations.
– The row-based store, storing relational data in rows. This row store is optimized for write operations and has a lower compression rate, and its query performance is much lower compared to the column-based store.
The engine that is used to store data can be selected on a per-table basis at the time of creation of a table (and changed subsequently). Tables in the row-store are loaded into memory at startup time, whereas tables in the column-store can be either loaded at startup or on demand, during normal operation of the SAP HANA database.
Both engines share a common persistency layer, which provides data persistency across both engines. Changes to in-memory database pages (equivalent to Oracle blocks) are made persistent through Savepoints written to the data volumes on persistent storage (on SSD or hard drives). This is done automatically, at least every 5 minutes, and this is customizable.
In-between savepoints, every transaction committed in the SAP HANA database is persisted using RedoLogs + UndoLogs by the logger of the persistency layer in a log entry written synchronously to the log volumes (similar to Oracle redo logs) on persistent storage (usually on SSDs).
For the restore the latest Savepoint required + Undo logs (uncommitted transactions) and Redologs (commited transactions).
As a benefit of HANA you do not have to create a separate dimensional data model using star schema with table aggregates for BI store. Instead of that there is a possibility of creating different type of views on top of underlying objects and doing reporting against them.
SAP HANA uses compression and partitioning technics to speed up the data access.
Data redundancy on hard drive requires 2*RAM size.
Cluster spare nodes required that do nothing but just wait for a failover of an active node.
The SAP HANA database supports SQL (JDBC/ODBC), MDX (ODBO), and BICS (SQL DBC). BICS is a SAP HANA-specific SQL Script language that is an extension to SQL that can be used to push down data-intensive application logic into the SAP HANA database
SAP HANA releases
Yes this is still version 1 patched with SPS…
– SAP HANA v1.0 SP02 first GA – Product (Jul 2011)
– SAP HANA Appliance Software SPS05 Revision 45
– SAP HANA Appliance Software SPS05 Revision 47
– SAP HANA Appliance Software SPS06 Revision 60
– SAP HANA Appliance Software SPS06 Revision 61
– SAP HANA Appliance Software SPS07 Revision 70
– SAP HANA Appliance Software SPS07 Revision 73
– SAP HANA Appliance Software SPS08 Revision 80 (May 2014)
- RedHat Enterprise Linux (RHEL) supported
- Enhanced SAP HANA studio usability and productivity
- Security enhancements for user/role management and auditing
- Improved system administration (for example, monitoring dashboard) and lifecycle management
- SAP HANA Spatial innovations and ESRI support
- SAP HANA Smart Data Access support for IBM
- SAS integration
- New algorithms for SAP HANA Predictive Analysis Library
- Several SAP HANA XS (Extended Application Services) and SAP HANA Web IDE enhancements
- SAP HANA Interactive (SHINE) improvements
- Microsoft ADO.Net client connectivity
– SAP HANA for Production Use on VMware (may 2014)
– SAP HANA Appliance Software SPS08 Revision 82 (Aug 2014)
- Enhanced navigation help (Changed)
- Disabling time-based data generation when normal data generation is selected and vice versa (Changed)
- Rechecking SHINE contents to identify unused entities (New)
- Central formatting functions to display amounts uniformly across all SHINE scenarios (New)
- Data generation feature that allows you to generate only sales orders of purchase orders (New)
– Current stable release of SAP HANA: 2.0 SPS04 (April 5, 2019)
So that was a short description of what is SAP HANA in-memory database platform is, its architecture overview and current release status. I’ll probably continue writing about this interesting database platform in more details.