Skip to Content
Last Friday I had the opportunity to attend a codeJam session conducted by Thomas Jung, Rich Heilman and Ronald Silberstein, hosted by Craig Cmehil. Tammy Powlas covered the event nicely in her blog (http://scn.sap.com/community/events/blog/2012/07/28/sap-hana-code-jam–why-code-in-sap-hana). Here is my cut on what turned out to be a very informative and fun event!
 
It was my first take on HANA, where I was looking forward to get some insight on how to code in HANA as well as how we’d be able to incorporate it in ABAP programs. I got to witness both and more! Later part was courtesy of Thomas Jung who shared with us his ABAP system along with HANA environment!
 
Thomas gave us an overview of HANA, with neat white board illustrations (No-power-points was the order of the day). Some highlights were:
  • Concept of Row vs Column reads.
  • How the row of data is strung together with memory references
  • How the data could be read much faster in the column wise approach, especially in cases where there is tremendous amount of data.
  • Touched on the fact that how data could be compressed at much higher rate as compared to the conventional DBs as the data is grouped by columns.
  • and lastly why there is no need for indices (although you can choose to have them)
Rich took us through the SQL scripting part. The database procedures can be written pretty much in conventional SQL with at least one input parameter and can have multiple returns.
SAP HANA codeJam img 1.png
This could be also be done via Calculation Engine (CE) functions, making it simpler to write by breaking up the join while selecting the fields from each of the table separately and then carrying out the join at the end

SAP HANA codeJam img 2.png

A little different from what I’ve been used to writing but the way it breaks down the select statement, it would definitely be helpful for complex joins. We also learnt that CE_JOIN statement can only join two tables at a time, but you can take the bp_addresses table and use it again in another CE_JOIN to continue joining tables.

And lastly Rich talked about imperative logic in SQL script. Very nice flow, you can ‘select’ into an internal table and then ‘select’ from the internal table into variables and do control logic based on these variables.

Then Ron took the center and talked about what is XS Engine and how (and where) it fits into the HANA. Letting you expose data via XS, publishing OData service, do server side JavaScripting and all. Ron also made the best of of the handy white board.

Thomas took the center once more and gave the demo of how to create a ‘Hello World’ html page using HANA developer Studio linked with Developer workbench, which has to be configured with HANA client. He didn’t stop there, of course. He then gave a demo of how to create a oData service (and how easy is to do that!) as well as demo SAPUI5 based application with google like (autocomplete) feature as well as a simple table retreiving 1.1 million records.

Exercise time!

Of course it was easy for them to say! 🙂 When I started creating and compiling the code I kept getting ‘completed with errors’ but it was also good to get Thomas’s first hand advice and then Ron’s on how to look up the error and try to make the best of it to know what I did wrong. You can look up the excercises here:

CodeJam SQLscript Exercise.pdf

CodeJam XS Exercise.pdf

After/During the excercies…

We got lots of input from the gurus on what is there and what is yet to come. Some of things I remember were:

  • You cannot ‘Type’ an output table of a database procedure, you have to key in each field name and it’s data type manually. Yes, you can’t even copy from the table (found under the ‘Catalog’ node). Hopefully this will improve with the next releases.
  • There is only simple authentication (no SSO as of yet)
  • The release functionality (like transports) requires the whole delivery unit to be transported from one system to other. The other citeria you can provide is the time of change, so only the objects changed within a certain time period are selected under the delivery unit.
  • SE11 transaction would be enhanced to show how a table would be stored on HANA (Column wise or Row wise)
  • Indices are being mostly dropped from standard DB to HANA migration
  • Error messages will be more developer friendly in the up coming releases
  • Calling an underlying database procedure would be as simple as calling a function module

Special thanks to Craig and Thomas for making it to the codejam, in spite of flight delays and sleep deprivation! There was a good SAP IT presence at the codeJam, among the attendees were Thomas Hamm, John Astill, Dirk Pluschke, Ivan and myself. It was a great event, I can only ask for these events to happen more often!

To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

Leave a Reply