The HANA table conundrum
Note: This blog is the repost of an old blog on an old profile as part of the process of pulling all my content together on a consolidated profile.
I wanted to type up this quick blog as I’m sure many of us face the same challenges on SAP HANA 1,0 SP12, in particular the challenge of choosing the correct table type. I was hesitant to press publish as I felt it was not yet a complete criteria list and then at some point I realised I might never reach a full criteria list so pressed publish, at least a starting point. ?
EDIT: Thanks to Lars Breddemann for providing a few insightful blogs in the comments section, when referring to CDS in this blog I was referring to CDS without HDI (HANA Deployment Infrastructure). I will expand the blog to include a comparison to CDS within HDI framework.
SAP HANA offers a few different options and it is not always clear which option to use, the simple answer… it really depends on your requirements.
Online commentary suggests that within the scope of Design Time Persistence modelling, the future is the CDS Entity but I have yet to see that HDB Tables are marked as obsolete functionality. It does however mean that if CDS is the future, SAP will focus their development efforts into CDS. (Note: The book “SAP HANA Advanced Modeling” By Stefan Hartmann has a really good section comparing CDS Entity to standard tables.)
When focussing on Design Time Persistence modelling (HDB Table / CDS Entity), there are certain scenarios where Design Time Persistency modelling will not suffice for e.g. Dynamic Tiering. The Dynamic Tiering scenario requires other table types such as extended tables and multistore tables, I have not focussed in detail on this scenario with the exception of highlighting extended table and multistore table support as per notes 2140959/2394124.
I’ve tried to categorise the 3 main types in the table below showing the features available per type, this is not a conclusive list as I’ve just focussed on the features I’ve tried to play with and which were deemed important for implementation. I hope to grow this comparison over time.
If a particular feature is really important, such as Lifecycle Management, then you will be forced in a particular direction, however I suspect most implementations have a blend of Design Time Persistance modelling and DDL SQL tables.
Look forward to hearing other points of view on this topic and hopefully have no glaring errors or omissions. Have a great week!