Thursday, 13 March 2014

New features in HANA SP07 - what's useful in the real world?

I've been using HANA SP07 for two weeks now, and delivered a training course on it in the interim. It's fair to say that we kicked it around, load tested it, and generally beaten it to death. I thought I'd share the things that HANA SP07 brings that matter most in the real world.



1) Data Engine Improvements

The data engine improvements are quite dramatic. There was a time when the choice between SQL, Analytic Views, Calculation Views, what engine you ran stuff in etc. really mattered. Much trial and error was required to build good models. Now, in SP07, we find that there are a more simple set of rules that you can apply for Best Practice model generation. Plus, if you get it wrong, you don't get punished with a 100x performance impact.

Plus... some things which ran really badly before, like joining row and column store objects, now perform surprisingly well. There has been a lot of quiet work done in the background, which you can see using the Plan Visualizer. This makes a huge difference in the real world!

Also it may just be me, but text search seems much faster.

2) Developer Experience

HANA SP06 was the first revision built for Developers, by Developers, and SP07 consolidates on that effort. The main things that matter...

- The tooling is much faster and more consistent in naming conventions
- There are lots of useful things like code completion and syntax correction, which makes development faster and less error-prone
- Improvements to UI Integration Services which mean building PoCs and Mock-ups can be done in hours

It's fair to say that there is plenty of work here to come - including even more consistency between development artifacts, but this is a step in the right direction!

3) Multi-User Development and Transport Management

This was very basic in HANA SP06 and you used to have to transport all of a delivery unit in one go. Now, you can easily have multiple users, developing on the same code. Highlights include:

- Inactive code testing
- Change management
- Repository management including version management
- Job Scheduling (which looks like a cron-script generator)

4) Smart Data Access

Smart Data Access is much improved in SP07 with support for Oracle, MSSQL, Sybase ASE and IQ, Teradata, Hadoop and generic ODBC connections. I've tested it a few times and it looks pretty handy. Plus, it supports Insert/Delete/Update so you could write jobs in HANA XS which move data from your hot store (HANA) to your cold store (IQ) overnight. This is the beginning of automatic data temperature management.

5) Monitoring

I was surprised here, but there are a bunch of things which make monitoring better in the real world. Such small pieces of usability are much appreciated!

- Improvements to the Data Preview button. Much faster and better SQL is generated.
- Expensive Statements trace is much faster for some reason
- New monitoring views in HANA Studio (right click the system to see them)
- Ability to see failed SQL Plan Visualizations

6) Modeling

There's not so much in the modeler, and they haven't done COUNT DISTINCT, AVG or WAVG yet (hint hint!) but there are a few neat new things.

- Star Join capability in the output node of the Calculation View modeler. This makes certain types of view much easier to build, as you could previously only join two tables at a time.
- Much improved usability with propagation of objects through models and code completion for expressions
- Much improved performance - huge improvement here
- Copy/Paste!!! Unfortunately not inside the Calculation View modeler :-(

7) Maintenance Revisions

These allow you to maintain the latest revision of HANA in your project track, and the latest revision of the last SP of HANA in your production track, whilst retaining security fixes. They are very useful in practical deployments of HANA - read more here.

There are also a few things which still don't seem to be complete enough to be highly usable:

Core Data Services

Core Data Services is a mechanism that allows building a whole data dictionary for an application in one development artifact. You can define types, tables, associations and it will build the model for you. But, it is still too limited to use substantially in the real world and doesn't support HANA Information Views.

Web IDE

There is a new Web IDE in SP06, enhanced in SP07. It feels like a collection of disjointed tools, which it is. It is very useful for Transport Management and a few other things like reliably deleting repository objects, but there's no way it could be used as a Cloud development environment in its current state.

Spatial

It feels like the Spatial Engine needs some work and there are no concrete examples to test and work with, and my testing couldn't get models working. Probably this is my lack of knowledge.

AFL Modeler

This still seems to generate script that generates tables, which means the AFL Modeler isn't really usable in the real world. It would be cool if SAP used its KXEN people to help make the AFL Modeler a success.


Conclusions

I find HANA SP07 a very pleasing incremental release. I think it will go down as the release that made HANA ready for the developer community to create large-scale projects in anger, and also as the release where SAP stopped cramming so many new features, and made what was there better, more mature and focussed on developer productivity and usability.

The development team should be proud with what they have created. There are a few parts of SP07 which feel a bit rough around the edges, but I'm sure they will be smoothed in the next few revisions.

It also very clearly lays down the foundation for what needs to come in SP08. But more of that in another blog.

0 comments:

Post a Comment