What is SAP HANA?
SAP HANA (High Performance Analytical Appliance) is a flexible data source agnostic appliance that enables customers to analyze large volumes of data in less time. It stores data in both column and row wise. In order to store the data in column wise it uses superior compression techniques such as prefix code algorithms.
SAP HANA over Traditional Databases
- It uses both row based and columnar approaches where as in traditional databases only row based approach is used. The columnar approach helps to save memory and retrieve huge volume of data in less time.
- It has hybrid In-Memory storage capability where all the data resides in the main memory and is compressed as and when required using compression algorithms.
- HANA database has the capability to maintain the history data without overwriting it.
- In SAP HANA architecture slice and dice is done at database layer and when an SQL script is executed it will directly get the data from database layer. In traditional databases the data is retrieved from database layer and slice& dice is done at application layer which will consume a lot time for transferring the data from database layer to application layer.
- SAP HANA has parallel processing capabilities.
- HANA helps in improving operational efficiency when compared to traditional databases.
SAP HANA Data storage in Row and Column approach
As the memory of the system is linear, for row oriented storage two dimensional tables are stored as a sequence of records whereas for column oriented storage, tables are stored in contiguous memory locations as below:
Column approach is advantages under the following situations:
- Recommended when the tables contain huge volumes of data.
- Used when lot of aggregations need to be done on the tables.
- It is used when the tables have huge number of columns.
- Used when the table has to be searched based on the values of few columns.
- No. of cache cycles will be reduced and this will help to retrieve the data at a faster rate.
- Supports parallel processing.
Row approach is advantages under the following situations:
- Recommended when the tables contain less volume of data.
- Used when the application request has to access the entire row.
- Used when the data has to be processed record by record.