我想在MongoDB
中为apache-drill
添加存储插件。阅读完文档之后,我逐渐了解到我可以通过两种方式实现这一目标:
我正在使用第二种方式获取我的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);
}
自举存储-plugins.json:
{
"type": "mongo",
"connection": "mongodb://localhost:27017/",
"enabled": true
}
但是在解雇时
"select * from mongo.testDB.`testCollection`";
我遇到了以下异常:
org.apache.calcite.sql.validate.SqlValidatorException SEVERE:org.apache.calcite.sql.validate.SqlValidatorException:找不到表'mongo.testDB.testCollection' 2015年8月12日上午3:47:05 org.apache.calcite.runtime.CalciteException SEVERE:org.apache.calcite.runtime.CalciteContextException:从第1行第15列到第1行第19列:表 找不到'mongo.testDB.testCollection' java.sql.SQLException:PARSE ERROR:从第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
答案 0 :(得分:0)
您的查询看起来像是对文件系统的查询。使用mongo存储插件配置,没有工作区或文件,因此请尝试使您的查询如下所示:
SELECT * FROM testCollection;
确保使用正确的数据库名称,并列出您的和集合(显示数据库和显示表格)。
此训练文档的published correction可能会有所帮助。