Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Drill 1.2和Oracle JDBC_Jdbc_Oracle10g_Rdbms_Apache Drill - Fatal编程技术网

Apache Drill 1.2和Oracle JDBC

Apache Drill 1.2和Oracle JDBC,jdbc,oracle10g,rdbms,apache-drill,Jdbc,Oracle10g,Rdbms,Apache Drill,在嵌入式模式下使用Apache Drill v1.2和Oracle Database 10g Enterprise Edition 10.2.0.4.0-64位 我很好奇是否有人成功地将Apache Drill连接到Oracle DB。我已使用以下配置(根据文档)更新了drill override.conf: 并将ojdbc6.jar放在\apache-drill-1.2.0\jars\3rdparty中。我可以成功创建存储插件: { "type": "jdbc", "driver":

在嵌入式模式下使用Apache Drill v1.2和Oracle Database 10g Enterprise Edition 10.2.0.4.0-64位

我很好奇是否有人成功地将Apache Drill连接到Oracle DB。我已使用以下配置(根据文档)更新了
drill override.conf

并将
ojdbc6.jar
放在
\apache-drill-1.2.0\jars\3rdparty
中。我可以成功创建存储插件:

{
  "type": "jdbc",
  "driver": "oracle.jdbc.driver.OracleDriver",
  "url": "jdbc:oracle:thin:@<IP>:<PORT>:<SID>",
  "username": "USERNAME",
  "password": "PASSWORD",
  "enabled": true
}
{
“类型”:“jdbc”,
“驱动程序”:“oracle.jdbc.driver.OracleDriver”,
“url”:“jdbc:oracle:thin:@::”,
“用户名”:“用户名”,
“密码”:“密码”,
“已启用”:真
}
但当我发出以下查询时:

    select * from <storage_name>.<schema_name>.`dual`; 
select*from..`dual`;
我得到以下错误:

Query Failed: An Error Occurred
org.apache.drill.common.exceptions.UserRemoteException: VALIDATION ERROR: From line 1, column 15 to line 1, column 20: Table '<storage_name>.<schema_name>.dual' not found [Error Id: 57a4153c-6378-4026-b90c-9bb727e131ae on <computer_name>:<PORT>].
查询失败:发生错误
org.apache.drill.common.exceptions.UserRemoteException:验证错误:从第1行第15列到第1行第20列:未找到表“…dual”[错误Id:57a4153c-6378-4026-b90c-9bb727e131ae on:]。

我试图查询其他模式/表,并得到类似的结果。我也尝试过连接到Teradata,但得到了相同的错误。有没有人提出过类似的建议/遇到过类似的问题?

正在使用Drill 1.3(于2015年12月23日发布)

插件:名称-oracle

{
  "type": "jdbc",
  "driver": "oracle.jdbc.driver.OracleDriver",
  "url": "jdbc:oracle:thin:user/password@192.xxx.xxx.xxx:1521:orcl ",
  "enabled": true
}
查询:

select * from <plugin-name>.<user-name>.<table-name>;
查看更多详细信息

注意:确保在
apache-drill-1.3.0/jars/3rdparty中添加了
ojdbc7.12.1.0.2.jar
(在文档中推荐)


它在ApacheDrill 1.3中可以正常工作。 奇怪的是,我只能查询创建了同义词的表。。。 在命令行中尝试:
使用
展示表格

这将为您提供一个可以查询的对象列表-dual不在该列表中;-)

我使用的是apache-drill-1.9.0,架构名称似乎是区分大小写的,因此必须是大写的

对于表
user1.my_tab
(在Oracle中以大写创建的默认值) 这适用于Drill(插件名为oracle)

但这会引发一个错误

SELECT * FROM oracle.user1.my_tab;

SEVERE: org.apache.calcite.sql.validate.SqlValidatorException: Table 'oracle.user1.my_tab' not found
另一种方法是使用
use
设置插件名和模式名(所有者也必须是大写)


我对Oracle DB了解不多。您不认为数据库名也应该在query中。DB/SID在插件的URL中提供。我尝试将其包含在查询中,但这不会改变结果,将其从存储插件中拉出会导致创建错误。您是否尝试过从中选择*。
dual
;我遇到了一些重复的关键错误,比如这样:
使用
,然后
显示表
对您有效?已确认……1.3的更新已解决了此问题。尽管如此,您是否尝试过Teradata连接?它看起来不需要进行主动测试,而且我无法设置存储插件。@eroma934是的,它成功了。我确信你在
jars/3rdparty
@eroma934中添加了
tdgssconfig.jar
terajdbc4.jar
,你可以添加一个带有插件详细信息的新问题,如果添加这些jars后无法实现这一点,我们是否必须在将jars放置在3rdparty下后重新启动钻头?
select * from oracle.USER.SAMPLE;
SELECT * FROM oracle.USER1.my_tab;
SELECT * FROM oracle.user1.my_tab;

SEVERE: org.apache.calcite.sql.validate.SqlValidatorException: Table 'oracle.user1.my_tab' not found
0: jdbc:drill:zk=local> use oracle.USER1;
+-------+-------------------------------------------+
|  ok   |                  summary                  |
+-------+-------------------------------------------+
| true  | Default schema changed to [oracle.USER1]  |
+-------+-------------------------------------------+
1 row selected (0,169 seconds)
0: jdbc:drill:zk=local> select * from my_tab;
+------+
|  X   |
+------+
| 1.0  |
| 1.0  |
+------+
2 rows selected (0,151 seconds)