Data modeling in SAP HANA is very familiar to those who are used to data modeling in other database environments. The biggest difference is the exceptional performance of HANA’s in-memory database, which makes a number of traditional database performance tuning techniques unnecessary and introduces its own set of performance considerations.
Figure 6-5 summarizes some of the principles of data modeling with SAP HANA.
Figure 6-6. SAP HANA General Modeling Principles
People doing database work normally bring all of the data they are working with up to the application layer for analysis. When the database can’t handle that, they have been trained to work around the problems. With HANA, you rethink your approach to data modeling. The more work that gets done in the database, and the less data that makes its way to the application, the more power you have in the system and the bigger the performance gains over traditional disk-bound database applications. We call that as “HANAfying” your application.
Use views to filter out the data at the lowest level. If you don’t need a field for a subsequent computation, don’t build it out in a view. Similarly, if there are records that can be aggregated before they are provided to a calculation view, do the aggregation first. Compact views will always perform better than views with lots of unneeded data in them.
Finally, look at ways of moving application logic into the database. Whenever possible, move calculations that would have been once part of the design of the application into a database calculation view. You’ll find that they will run faster inside the database, and that by providing these results in views you can reuse them in other contexts.