我想在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);
}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 AM 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 发布于 2015-08-13 00:25:12
您的查询看起来像文件系统上的查询。使用mongo存储插件配置,就没有工作区或文件,所以请尝试使查询看起来如下所示:
SELECT * FROM testCollection;确保您使用了正确的数据库名称,并列出了您的和集合(显示数据库和显示表)。
这个钻文档的公布更正可能会有所帮助。
https://stackoverflow.com/questions/31962882
复制相似问题