在 apache-drill 中使用 bootstrap-storage-plugins.json 文件作为存储插件的异常
Posted
技术标签:
【中文标题】在 apache-drill 中使用 bootstrap-storage-plugins.json 文件作为存储插件的异常【英文标题】:Exception in using bootstrap-storage-plugins.json file for storage plugin in apache-drill 【发布时间】:2015-08-12 10:42:04 【问题描述】:我想在apache-drill
中为MongoDB
添加存储插件。阅读文档后,我开始知道以编程方式我可以通过两种方式做到这一点:
-
休息 API
使用 bootstrap-storage-plugins.json 进行配置
我正在为我的 java 代码使用第二种方式。
我的代码的有用部分:
Connection conn = new Driver().connect("jdbc:drill:zk=local",null);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("show databases");
while (rs.next())
String SCHEMA_NAME = rs.getString("SCHEMA_NAME");
System.out.println(SCHEMA_NAME);
bootstrap-storage-plugins.json:
"type": "mongo",
"connection": "mongodb://localhost:27017/",
"enabled": true
但在开火时
"select * from mongo.testDB.`testCollection`";
我遇到了以下异常:
org.apache.calcite.sql.validate.SqlValidatorException 严重:org.apache.calcite.sql.validate.SqlValidatorException:找不到表'mongo.testDB.testCollection' 2015 年 8 月 12 日上午 3:47:05 org.apache.calcite.runtime.CalciteException 严重:org.apache.calcite.runtime.CalciteContextException:从第 1 行第 15 列到第 1 行第 19 列:表 'mongo.testDB.testCollection' 未找到 java.sql.SQLException:解析错误:从第 1 行第 15 列到第 1 行第 19 列:未找到表 'mongo.testDB.testCollection'
bootstrap-storage-plugins.json
在我的类路径中。我需要提供其他信息吗?
编辑:
我尝试了show databases
查询,但它没有显示来自MongoDB
的架构。它只显示:
INFORMATION_SCHEMA
cp.default
dfs.default
dfs.root
dfs.tmp
sys
【问题讨论】:
当你运行show databases;
时,Drill 会返回什么?它应该将每个 mongotdb 表的条目显示为mongodb.tablename
。有任何表格出现吗?
show databases 不为我显示集合(它显示 mongo.local 和 mongo.test 数据库)。我使用 mongo.test 然后显示表格,然后我在列表中看到我的收藏拉链。我可以只使用集合名称而不使用反引号来查询集合:select * from zips limit 10;但我使用的是钻壳。也许你在打issues.apache.org/jira/browse/DRILL-3466。
@ChrisMatta 显示数据库未显示来自 mongodb 的模式
在分布式模式下,引导方法仅在您第一次启动集群时起作用。该问题与 zookeeper 持久数据有关。在嵌入式模式下,引导模式应该可以工作,但从未经过测试。 Drill 专家正在尝试获取有关嵌入式模式/引导程序的更多信息,但同时建议使用 REST API 以编程方式设置存储插件配置。
issues.apache.org/jira/browse/DRILL-2003
【参考方案1】:
您的查询看起来像是对文件系统的查询。使用 mongo 存储插件配置,没有工作区或文件,因此请尝试使您的查询看起来像这样:
SELECT * FROM testCollection;
确保您使用了正确的数据库名称,并且您的和集合已列出(显示数据库和显示表)。
Drill 文档的 published correction 可能会有所帮助。
【讨论】:
以上是关于在 apache-drill 中使用 bootstrap-storage-plugins.json 文件作为存储插件的异常的主要内容,如果未能解决你的问题,请参考以下文章