SAP HANA is a famous column-oriented, in-memory DBMS developed by SAP SE.
- Developer
- Country of Origin
- DE
- Start Year
- 2010
- Former Name
- SAP High-Performance Analytic Appliance
- Project Type
- Commercial
- Written in
- C++
- Supported Languages
- Scala
- Operating System
- Linux
- License
- Proprietary
SAP HANA is a famous column-oriented, in-memory DBMS developed by SAP SE.
History
The early development of SAP HANA was based on TREX search engine, P*Time, and MaxDB. It was mainly designed for the real-time data analytics and aggregation at first. SAP HANA also offers Platform as a service on multiple cloud providers currently. In 2016, SAP HANA 2 was released, which can also support Earth Observation Analysis and Text Analysis, apart from pdatabase and application management.
Checkpoints[03][04]
SAP HANA supports fuzzy checkpoints, where any updates are still stored in storage snapshots even if transactions are not committed. Extra work are needed to remove those updates. Moreover, SAP HANA also supports encrypted snapshots when database is encrypted first.
Concurrency Control[05][06][07][08]
SAP HANA supports Multi-version Concurrency Control as the default mechanism to ensure data consistency. When one user connects to the database, a snapshot is provided for each user. The changes from one writer can only be seen by others after transactions are committed. No rollback segment is supported for the insert method. Both distributed locking with a global deadlock detection mechanism and distributed snapshot isolation are supported in SAP HANA to achieve synchronization. Moreover, one optional background garbage collection thread is also supported.
Data Model[09]
SAP HANA is based on the columnar structure, where data are stored in columns to minimize the storage footprint, since repeating values are only stored once. It is easier to change other structures to columnar structure in SAP HANA, because memory is much faster.
Indexes[11]
SAP HANA supports various indexes, which contain B+ tree, Compressed Prefix-B+ Tree, and Inverted index.
Isolation Levels[12]
In SAP HANA, the default isolation level is ReadCommited, and the maximum one is Serialization. Snapshot Isolation is not supported by default.
Joins[13][14]
Hash Join and Nested Loop Join are supported by SAP HANA. Different variants of Hash Join are mainly used in SAP HANA.
Storage Architecture[17]
SAP HANA is an in-memory database. It uses In-Memory Computing technologies to store data in memory with a complicated data compression, which will improve the performance by avoiding disk I/O. Permanent storage of the data on disk is still required to achieve fault tolerance and the back-up operations will be executed asynchronously as a background task which will not influence the performance.
Storage Model[18]
SAP HANA supports both N-ary Storage Model and Decomposition Storage Model. However, it is optimized for DSM as a default storage model in order to provide high performance on a hybrid workloads of analysis and transaction. SAP HANA allows joining row-oriented tables with column-oriented tables and also supports altering the storage model of an existing table.
Stored Procedures[19]
SAP HANA supports stored procedure features by allowing clients to describe a sequence of data transformations and define as a reusable processing block. A Procedure can be created with SQP HANA SQL queries or Using the Modeler wizard (Modeler and Development perspectives). The stored procedures can be parameterized and reused in another procedure.
System Architecture[20][21]
For scalability support, SAP HANA uses multiple servers in one cluster and partitions the data to distribute across the servers with a shared-nothing architecture. The system has three components. The Name servers keep track of the location of data and store information on the topology of the entire system. The Index servers contain the actual data partitions and process the data as required. The last component is Statistics servers which collect information about status, performance and resource consumption from the system.
Views[22][23]
SAP HANA supports both materialized and virtual views. When a materialized view is created, the system validates the definition and precomputes the result set from the database, which is stored on disk to improve the performance. SAP HANA also allows virtual views which replace the stored result set by on-the-fly calculation and are derived each time when they are used.
Citations
23 sources- https://www.sap.com/products/hana.html sap.com
- https://www.sap.com/developer/topics/sap-hana.resources.html#resources sap.com
- Storage Snapshots | SAP Help Portal sap.com
- CMU SCS 15-721 (Spring 2018) :: Checkpoint Protocols cmu.edu
- http://sites.computer.org/debull/A13june/hana1.pdf computer.org
- CMU SCS 15-721 :: Concurrency Control (Part II) cmu.edu
- https://community.sap.com/resources/content-unavailable-archive sap.com
- http://www.csce.uark.edu/~xintaowu/BDAM/icdebulletin_hana.pdf uark.edu
- https://searchsap.techtarget.com/feature/Book-excerpt-How-the-SAP-HANA-platform-stores-data techtarget.com
- SAP HANA Advanced Modeling - Dr. Stefan Hartmann, Dominique Alfermann, Benedikt Engel - Google Books google.com
- CREATE INDEX Statement (Data Definition) | SAP Help Portal sap.com
- IsolationLevel property | SAP Help Portal sap.com
- EXPLAIN_PLAN_TABLE System View | SAP Help Portal sap.com
- http://sap.optimieren.de/hana/hana/html/sql_explain_plan.html optimieren.de
- Short Presentation Title llvm.org
- http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.227.4045&rep=rep1&type=pdf psu.edu
- https://www.sap.com/products/hana/features/in-memory-database.html https:/help.sap.com/viewer/52715f71adba4aaeb480d946c742d1f6/2.0.03/en-US/c39e5936ab9240a28cc85e1086315737.html?q=in+memory sap.com
- Columnar and Row-Based Data Storage | SAP Help Portal sap.com
- http://saphanatutorial.com/sap-hana-procedure saphanatutorial.com
- https://blogs.saphana.com/2014/12/10/sap-hana-scale-scale-hardware saphana.com
- Analysis of SAP HANA vs. Oracle MAA oracle.com
- https://blogs.saphana.com/2014/10/27/how-simple-finance-removes-redundancy-the-case-of-materialized-views saphana.com
- https://help.sap.com/docs/r/40c01c3500744c85a02db71276495de5/17.0/en-US/816d37a36ce21014bf6cacd0588a42f3.html sap.com