SAP HANA codeJam @Newtown Square – July 2012
- 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)
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.
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.
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:
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!