I've successfully set up Apache Drill (latest 1.9) with the Oracle's JDBC client (latest ojdbc7.jar from oracle) as a storage plugin:
{
"type": "jdbc",
"driver": "oracle.jdbc.driver.OracleDriver",
"url": "jdbc:oracle:thin:@server:1521/myservicename",
"username": "TEST_USER",
"password": "password",
"enabled": true
}
I can do queries, but even the simplest things literally takes minutes to execute. Querying a single-row-table takes 78 seconds. And just setting the default schema takes over a minute:
0: jdbc:drill:zk=local> use oracle.TEST_USER
. . . . . . . . . . . > ;
+-------+-------------------------------------------------+
| ok | summary |
+-------+-------------------------------------------------+
| true | Default schema changed to [oracle.TEST_USER] |
+-------+-------------------------------------------------+
1 row selected (77,5 seconds)
But I've tested with a simple hello-world-style java application that the connection with the same connection string works absolutely fine with full table fetching times of about 0,1 second.
jdbc:oracle:thin:@server:1521/myservicename
I've tested from an Ubuntu and a Mac and also tried setting the random-source for java as other answers point out as potential performance problems:
export DRILL_JAVA_OPTS="$DRILL_JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
What's going on here? Is this a known issue or is there some workaround?
I've used drill-embedded.