We wrote an article about our HANA experiments in December 2014. We had a test account for the online HANA. Our tests were successful but we weren't convinced from the system because it was slow and had many JDBC driver problems. Our bug reports were never answered.
But we never give up and the Express edition was interesting for us. We thought it might be worth some hours for our R&D team. The result is awesome!
We think that VisionX is the best tool for application development with HANA databases. Your web application is ready in 1 minute without coding!
The installation of the Express edition wasn't tricky. The documentation is straight forward. The database is up and running in some minutes.
We had some problems with JDBC driver because it wasn't available as separate download and we didn't find any documentation. But it was part of the HANA plugin for Eclipse. Not that easy, but it was part of a jar file: com.sap.ndb.studio.jdbc_2.3.8.jar.
The next tricky thing was the JDBC connect string: jdbc:sap://hxehost:30013/?currentschema=System. The username was SYSTEM.
With all this information, it was super easy to create an application with VisionX for HANA express. We guess it makes no difference if you use HANA or HANA express.
How it works? Check the video. It's from 2014 but still impressive.
The current JDBC driver works much better than in 2014 and the performance of the database is great - compared to 2014.
If you're interested in more details, write a comment
It's the In-Memory database system of SAP, developed in 2010 for, or togehter with some customers to handle big data. You'll find all details here.
The system should be super fast and brilliant... That was the reason why we thought it might be interesting for VisionX and of course, VisionX could be useful for HANA customers.
We have a lot of experience with most important database systems like Oracle, SQLServer, DB2, PostgreSQL and MySQL but we had absolutely no idea what HANA was. But it has a JDBC driver . We also have a lot of experience with JDBC drivers.
So we had the Know-How to do some cool things with HANA. Our simple idea was the integration into VisionX via JDBC driver like all other databases which are already supported. We tried to find out how we could start.
To be honest... We didn't read a lot of documentation because we are Researcher. Simply clicked on Try SAP HANA and... found more information.
The first thing we had to learn was, that it's not too easy to start and there's a lot of information about everything and nothing. We tried the "SAP HANA Cloud Platform Developer Edition" but got an error...
We love using Eclipse and SAP has HANA studio and Eclipse plugins. Sounds great, and we found a strange site. A really simple site with minimal information but we didn't find information about the JDBC driver. We read about HANA client which should contain the JDBC driver, but it also was available here. It was another place for downloading HANA software.
Did I tell you that we are Researcher? We love to solve complex and tricky software problems but why are there so many different download sites. All sites are different with more or less information.
Did I tell you that we're tough? You're right, we found the little pieces.
After we found the right path, we made progress because Plugin installation was as simple as it should be. The registration of a dev account was not big problem.
The next "problem" was using Eclipse because we didn't find a simple web site with configuration details. After some googling we had some stackoverflow hints but no complete guide. But it wasn't that hard to find out how it works. Oh I forgot to mention that we tried to get direct access to the DB and not to create a hello world example.
The SAP HANA Administration Console perspective was our friend and we tried to add a new System. After we saw that there's an option for Cloud system, we made some progress But don't think it's that easy. Don't forget to create a schema via online system, called Cockpit!
To shorten the story: It's NOT easy to start and too much documentation doesn't help if someone forgets to KIS.
After we had access to our HANA schema and understood how the cockpit worked, we tried to create our first application with VisionX. The next problem was that it's not allowed to connect to HANA instances directly via Internet, without tunneling (as usual). To create a standard JDBC connection via VisionX, we had to create a tunnel. What do you think: An easy task for about 5 minutes or a job for Google?
Long story short:
Learn using NEO (console client). It's part of the HANA SDK.
neo open-db-tunnel -h hanatrial.ondemand.com -u p012345678 -a p012345678trial --id schemaID
(The URL is important! We found other URLs which didn't work)
Used the result of the command to create a JDBC connection and we were back in the game.
What was next?
Our dev environment was up and running and VisionX could connect to HANA but we had to do some laborious tasks because HANA had some specifics (not surprisingly). We solved most problems in HanaDBAccess which is now available in JVx.
One of the biggest problem was the JDBC driver. Especially if you try to find some answers in the HANA forum about getting generated keys. The driver developers should listen to their community! (Don't ignore defacto standards)
But ok, that was only one thing. A big problem was the performance of metadata operations. If you try to get a list of unique keys, a list of colum names for a table or foreign keys, be sure you have some extra time because such operations can take a minute or more. Not sure if trial accounts are the botleneck but we thought HANA is always super fast.
We're not sure if no one needs metadata or if we have special requirements, but especially metadata access should be fast in any case!
We learned to live with slow performance and we're pretty sure that SAP will solve this problem.
Did we reach our goals?
What do you think about this:
HANA application with VisionX
This video demonstrates the creation of an application based on HANA. The application was developed with VisionX and deployed as JVx' Vaadin application. I'm not sure if there's a tool which can do it like VisionX but I don't think so because SAP doesn't have one
If you have problems with locked accounts because of invalid connection attempts. Use Eclipse, connect to your schema and execute:
alter user p012345678 drop connect attempts;
Our Eclipse was blocked with this command, but everything worked fine after restart.