HANA Architecture – Key Take-Aways

I just listened to Marc Bernard’s Webinar about the first looks at the architecture around SAP’s HANA. This is the first document I’ve seen that really makes sense out of HANA from a technical perspective. I’ve also worked with Marc in my time at SAP and really enjoy his ability to clearly present technical information to all sorts of audiences. You can check out the PDF and full recorded version of the webinar at the following: http://bit.ly/dU2bQY

I thought it would be worthy to address some of the key technical take aways from the Webinar:

  1. There are two data stores in the In-Memory Computing Engine (IMCE) – row-based and column-based
  2. Both data stores will be stored in memory (column-based will be very similar to existing BWA technology)
  3. The way data is modeled in HANA is via the “Information Modeler”. It is only used for the column based data store
  4. The Information Modeler is built on the Eclipse IDE. I’m going to assume it’s built using Eclipse EMF.
  5. It supports SQL (JDBC/ODBC), MDX (ODBO), and BICS (SQL DBC)
  6. Data comes in either via BO Data Services or Sybase Replicator

Some thoughts:

From a technical perspective I really like where the technology is going. The Information Modeler is much more intuitive than any BW interface (i.e. Data Warehousing Workbench) I’ve ever seen. The support for different front-ends opens up the possibility to use virtually anything, and more importantly build your own “Apps”. My one concern is around MDX and multi-dimensional OLAP. MDX is very sluggish and BICS was chosen to replace it in BusinessObjects Enterprise 4.0. I’ve been through the pain of seeing how MDX works when BusinessObjects was first implemented on top of SAP BW. The performance is a huge concern. I’d be very interested to see how BICS is implemented in HANA. I wonder if it creates the same type of Star Transformations that exist in the current BW system. Ya know, those basically unreadable SQL Explain statements?

Note – IMCE is now “SAP In-Memory Database” – See Vitaliy’s post

EDIT: I wrote “row-based” for the data-store. Oops! Thanks @joerglatza for seeing the mistype!