Help us testing the Cypher-JDBC-Driver
Update The results that our awesome community provided in testing the driver are available.
As many of you know Rickard Öberg did a lab project last December developing a first prototype of a JDBC driver that connects to the Neo4j Server Cypher endpoint. It implements the JDBC API’s to execute Cypher statements remotely and returns the tabular results. The Driver is published on GitHub as an open source project
The first tests of the driver covered JDBC-use-cases like:
- LibreOffice/OpenOffice
- IntelliJ IDEA
- DbVisualizer
- JDBC-ODBC bridge on Windows
JDBC as Integration Approach
Besides making it work it was fun to be able to make this happen. Meanwhile some of our customers are looking into integrating Neo4j into their BI solutions and so we suggested that they should give the JDBC driver a try.
Ralf Becher from TIQView worked on integrating it with Qlikview and published quite impressive results.
With the existing feedback we worked on improving the driver and updated the following aspects:
- Internal Refactoring and Bug fixes
- Support for Streaming Mode of Neo4j-Server
- Support to use it with an embedded graph database or an in-memory variant.
Next stop: Public Testing
To cover a greater range of SQL/JDBC tools than we know and use – you know we’re mainly working on a NOSQL Graph Database, we would like to ask for YOUR HELP.
You certainly know, use and like some of JDBC-related tools, and could try the Neo4j JDBC driver with those. We pepared a form to add your findings which is connected to a public Google Spreadsheet.
How to Test
Choose your tool, download the driver from the resources link and set it up to point to a Neo4j Server which has the Dataset.
You can download and set up the Server on your own. Then the jdbc-url is jdbc:neo4j://localhost:7474
We have also prepared a Heroku instance that hosts the dataset, so it is accessible to everyone at https://jdbc.herokuapp.com which would use the jdbc-url: jdbc:neo4j://jdbc.herokuapp.com
Some Sample Queries
// user node
START n=node(1)
RETURN n
// number of nodes
START n=node(*)
RETURN count(*)
// user and friends
START user=node:User(login="micha")
MATCH user-[:FRIEND]-friend
RETURN user.name,ID(user),friend.name
// other movies with these actors
START user=node:User(login="micha")
MATCH user-[:RATED]-movie<-[:ACTS_IN]-actor-[:ACTS_IN]->other_movie
RETURN other_movie.title, count(*) as occ
ORDER BY occ DESC
LIMIT 5
If you want you can also test out the integration with an embedded or in-memory Neo4j-Instance, e.g. by integrating it with Spring’s JdbcTemplate
Please make sure to take some notes and a screenshot. If you want to take it to the next level, please record a screencast or write a short blog post about your experience. Armed with this information, fill out the Survey Google Form and let us know what you think.
Resources
- Neo4j Server Download
- Sample Cineasts Dataset (Movies, Actors, Users)
- Rickards Blog Post
- Driver Download and Documentation
- Survey results Google Spreadsheet
- Survey Form
- Cypher Cheat Sheet
We will compile a blog post with all your contributions, update the Driver with all the necessary fixes and then make it available as part of the Neo4j distribution.
Thanks a lot for your support,
Michael, Peter, Andreas – the Neo4j Community Team