Exploiting the Latest Technology
SAP HANA is a high-performance, in-memory database. SAP HANA includes many features to ensure SAP and non-SAP applications run at top speed.
SAP HANA powers SAP BW/4HANA and provides two key benefits:
- high performance for data loading and reporting
- storage of huge amounts of data
Let's start with performance:
We have access to more computing power than ever before. In recent years, we have seen memory sizes increase dramatically.
In addition, CPU performance continues to improve at a phenomenal rate. We now have high-speed, multi-core CPUs that can take on complex tasks and break them up, so they can be processed in parallel to provide incredible response times. This means that response times for even the most complex analytical tasks, such as predictive analysis, can be carried out in real time. So with huge memory and faster multi-core CPUs we now have access to huge amounts of computing power.
Many databases rely on disks for data storage, but SAP HANA uses very large memory for data storage.
SAP HANA was built to run on the latest hardware that uses multi-core processors and huge memory. The power of SAP HANA has a direct impact on the performance of SAP BW/4HANA. By utilizing multiple cores across many CPUs, data is loaded faster and queries run at a very high speed.
Concepts of the SAP HANA Database
The three main features of the SAP HANA database are as follows:
- Row Store and Column Store
- Compression of the Column Store
- Insert only on Delta
- Row Store and Column Store
SAP HANA supports the traditional row table architecture found in most databases, but also supports column store tables. Column store tables are optimal for analytical use cases. Data warehousing, and in particular the querying function, is the ideal use case for column tables. SAP BW/4HANA uses column store tables.
There is a very good reason for using column store tables instead of row store tables, especially for querying data. A typical query usually requests only a few columns of a table. A query on a row table processes all columns of the table, even those columns you did not request in the query. But a query on a column table processes only the requested columns. Processing only the columns that were requested improves query performance.
- When an SAP system is migrated to SAP HANA, the SAP tables are automatically migrated into the storage type that is best suited. This logic is defined by SAP.
- The vast majority (>90%) of all tables are held in the Column Store.
- Tables of SAP BW/4HANA data models are all in the column store. This information can be accessed via the ABAP Data Dictionary of SAP BW/4HANA in the technical settings of each table (transaction SE13) or in the Database Explorer of the SAP Web IDE (Integrated Development Environment) for SAP HANA. You will use this environment later in this learning journey.
2. Compression of the Column Store
One of the additional benefits of using column store tables is that the data in the table is automatically compressed. In the Dictionary Vector of a column, the values are sorted and bit-encoded. In the Attribute Vector of a column, the positions of the values are represented and are compressed when values repeat. Compression of data massively reduces the footprint of the table by as much as 90%. This means we can fit more data in SAP BW/4HANA compared to row storage.
3. Insert only on Delta
The column store uses efficient compression algorithms that help to keep all relevant application data in memory. Updating and inserting data into a sorted column store table is a costly activity because the sort order has to be regenerated and so the whole table is reorganized each time.
For this reason, SAP has separated these tables into a Main Storage (read-optimized, sorted columns) and Delta Storage (write-optimized, non-sorted columns or rows). All changes go into this separate area called the Delta Storage.
There is a regular database activity that merges the delta storage into the main storage. This activity is called Delta Merge.
For more details please refer to following sources:
- SAP note 2000003: FAQ SAP HANA
- SAP note 2222277: FAQ SAP HANA Column Store and Row Store
- SAP note 2112604: FAQ SAP HANA Compression
- SAP note 2057046: FAQ SAP HANA Delta Merge
- SAP HANA Product page https://www.sap.com/products/hana.html
- Blog: The secret of SAP HANA – Pssst! Don’t tell anyone! https://blogs.sap.com/2017/12/01/secret-hana-pssst-dont-tell-anyone/
Before SAP HANA, three-tier architecture (data layer, application layer, and presentation layer) would read data from a database, then process the data in its memory, and write results back to the database or send it to the presentation layer. Given the immense amount of data that is produced by current business software, sensors and social networks, this concept is problematic. You also have to evaluate the volume of data quickly and deliver results on mobile platforms. The old paradigm is no longer viable.
In-memory techniques store all data in memory. Modern computer systems have many computing cores, providing an impressive performance. Therefore, it is obvious to move the instructions and not the data. Based on SAP HANA, you can transfer data-intensive processing logic from the application layer to the data layer and execute the process in the data layer.
SAP HANA is delivered with different engines to process calculation logic and execute programming code. It provides a great opportunity to push data-intensive calculations from the SAP ABAP application layer into the SAP HANA database.
For this reason, SAP ABAP has been optimized to exploit the advanced in-memory features of SAP HANA. This process started with SAP NetWeaver 7.3 and will be continuously enhanced in the ABAP stack of SAP BW/4HANA in future. These enhancements result in less data transfer between the application layer and the database layer, and an efficient use of resources.
The application layer focuses more on orchestration and triggering the processing within the database by default (for example, request activation of DataStore Objects (advanced), compression, remodeling, selective deletion, request management, data tiering, and so on) or by providing user interfaces to develop customer-specific logic in SAP HANA SQL Script rather than SAP ABAP (for example, start/end/field/expert routines of Transformations). In the end, complex logic can be processed quickly resulting in improved performance.
The main concepts of the SAP HANA-related software innovations can be summarized as follows:
- Bring the logic to where the data is stored.
- Push down the code from the application layer to database layer.
- Calculate first, then move the results only.
Examples of data-intensive calculations in SAP BW/4HANA are:
- Loading and transforming data
- Data Management (Activation for DataStore Object (Advanced) Data)
- Query processing (OLAP)
SAP HANA Extending the Functionality of SAP BW/4HANA
The underlying technology of an application is usually invisible to the developers and users of the application. SAP HANA plays a very important supporting role of SAP BW/4HANA; not only by providing high performance and huge data storage, but also by providing additional functionality.
Specifically there are two key functional areas of SAP BW/4HANA that are extended by SAP HANA:
- data modeling
- data acquisition
Combining SAP HANA data models with SAP BW/4HANA data models brings together the power of both modeling environments.
Powerful, in-memory data models are built directly in SAP HANA using a modeling object called a calculation view. A calculation view is built using a graphical tool and includes many of the modeling features found in SAP BW/4HANA. However, there are many additional features not found in SAP BW/4HANA. These include advanced ranking functions, generating data intersects, and embedding custom SQL code into the data models.
SAP HANA provides connectors to any type of data source on any platform. SAP BW/4HANA leverages this capability to access any data for either extraction and loading, or for direct access to remote sources.