【发布时间】:2017-06-08 11:19:15
【问题描述】:
我已经成功地将 Apache Drill(最新 1.9)与 Oracle 的 JDBC 客户端(来自 oracle 的最新 ojdbc7.jar)设置为存储插件:
{
"type": "jdbc",
"driver": "oracle.jdbc.driver.OracleDriver",
"url": "jdbc:oracle:thin:@server:1521/myservicename",
"username": "TEST_USER",
"password": "password",
"enabled": true
}
我可以进行查询,但即使是最简单的事情也需要几分钟才能执行。 查询单行表需要 78 秒。 仅设置默认架构需要一分钟:
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)
但是我已经用一个简单的 hello-world 风格的 java 应用程序进行了测试,具有相同连接字符串的连接工作得非常好,全表获取时间大约为 0.1 秒。
jdbc:oracle:thin:@server:1521/myservicename
我已经在 Ubuntu 和 Mac 上进行了测试,还尝试为 java 设置随机源,因为其他答案指出潜在的性能问题:
export DRILL_JAVA_OPTS="$DRILL_JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
这里发生了什么?这是一个已知问题还是有一些解决方法?
我使用过钻孔嵌入。
【问题讨论】:
-
激活 Oracle 10046 跟踪以查看数据库中经过的时间。
标签: java oracle jdbc apache-drill