1

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

我很好奇是否有人成功地将 Apache Drill 连接到 Oracle 数据库。我已经更新了drill-override.conf以下配置(每个文档):

drill.exec: {
  cluster-id: "drillbits1",
  zk.connect: "localhost:2181",
  drill.exec.sys.store.provider.local.path = "/mypath"
}

并放置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
}

但是当我发出如下查询时:

    select * from <storage_name>.<schema_name>.`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>].

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

4

3 回答 3

2

它适用于 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>;

例子:

select * from oracle.USER.SAMPLE;

查看钻头的文档以获取更多详细信息。

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

于 2015-11-24T09:38:51.860 回答
1

它适用于 Apache Drill 1.3。奇怪的是,我只能查询创建了同义词的表...在命令行中尝试:
使用 <storage_name>;
显示表格;
这将为您提供可以查询的对象列表 - dual 不在该列表中;-)。

于 2015-11-26T09:32:13.160 回答
0

我正在使用 apache-drill-1.9.0,似乎模式名称被解释为区分大小写,因此必须是大写的。

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

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

另一种方法是设置插件名称和模式名称use (所有者也必须是大写)

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)
于 2017-02-16T22:18:41.677 回答