在apache-drill中使用bootstrap-storage-plugins.json文件存储插件的例外情况

时间:2015-08-12 10:42:04

标签: apache-drill

我想在MongoDB中为apache-drill添加存储插件。阅读完文档之后,我逐渐了解到我可以通过两种方式实现这一目标:

  1. Rest API
  2. 使用bootstrap-storage-plugins.json进行配置
  3. 我正在使用第二种方式获取我的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 
    

1 个答案:

答案 0 :(得分:0)

您的查询看起来像是对文件系统的查询。使用mongo存储插件配置,没有工作区或文件,因此请尝试使您的查询如下所示:

SELECT * FROM testCollection;

确保使用正确的数据库名称,并列出您的和集合(显示数据库和显示表格)。

此训练文档的published correction可能会有所帮助。