Announcing neo4j-connector 1.0.0 (python 3.5+)

This is the official announcement of the release of neo4j-connector 1.0.0. For some background see below but the most important links are:

Install:

pip install neo4j-connector

Documentation:
http://neo4j-connector.readthedocs.io/

Github:

Background
Over the last few weeks there was some discussion on the difference in performance between the different neo4j drivers: Barebones HTTP requests much faster than python neo4j-driver and py2neo?. The results were that for the ETL type jobs that I was running, simple HTTP requests are currently faster than going through other libraries. Specifically when executing many statements in a single request (100+) and/or when requesting a lot of data (1000+ rows) the speed-up is a factor 3-6x.

What we are releasing today is a convenient wrapper that abstract away the HTTP requests and allows you to focus on building the statements and handling the results. Currently there is only support for 'single-request transactions'. This reduces the complexity both for the library and also for the user of our neo4j-connector.

We're looking forward to hearing your feedback!

Thanks so much for your contribution. I think this will be helpful for folks who need the best transport performance in python.

1 Like

Thanks for sharing. I'm currently using neo4j-connector.run_multiple(statements) to upload cypher queries, and it's quite convenient for uploading many queries (100+) in a single request. However, when I run more statements continuously, and use multiprocessing the run_multiple() function, the query time gets slower. Do you have any suggestion to handle large amount of cypher queries?

My pleasure, glad that you like it! The performance decrease depends very much on the type of queries you are using, regardless of the method with which you execute them.

The most common issue for slowdowns that I've seen is people forgetting to use indexes. Either forgetting to set them up (just the index, or with a constraint) or forgetting to query for the label on which the index is created. I hope that helps

Thanks for the hints. After creating more indexes on the nodes, it gets faster.