Search code examples
jdbcneo4japache-drill

How to connect and query Neo4j Database on Apache Drill?


I am using Apache Drill and Neo4j Database for a project. The database needs to be connected to Drill and I should be able to query the data from Apache Drill.

I have copied and pasted neo4j-driver-4.0.10 into the 3rd party folder for jars. Then, I have created a connection with my Neo4j Database on Apache Drill. Below is the config with the storage name as collisions:

{
  "type": "jdbc",
  "driver": "org.neo4j.jdbc.bolt.BoltDriver",
  "url": "jdbc:neo4j:bolt://localhost:7687",
  "username": "neo4j",
  "password": "neo4j",
  "authMode": "SHARED_USER",
  "writerBatchSize": 10000,
  "enabled": true
}

Then when I try to query from the console with this query:

select * from collisions.crashes limit 10;

I get the error: java.lang.UnsupportedOperationException: Method getStatement in class org.neo4j.jdbc.Neo4jResultSet is not yet implemented.

Warning   UserRemoteException :     PLUGIN ERROR: Failed to load schema for schema collisions
    
org.apache.drill.common.exceptions.UserRemoteException: PLUGIN ERROR: Failed to load schema for schema collisions

java.lang.UnsupportedOperationException: Method getStatement in class org.neo4j.jdbc.Neo4jResultSet is not yet implemented.


[Error Id: 108138ec-05d7-41af-b7c2-f954798256d8 ]

The data is loaded onto the Neo4j database successfully and I am able to query it from the Neo4j Browser. But why is this error showing up. I couldn't find any other useful question or resource to debug this issue. Can someone help me with this?


Solution

  • The free Neo4J JDBC driver doesn't understand SQL, only Cypher, so it looks like you'd need the non-free BI Connector.