【问题标题】:Exception in using bootstrap-storage-plugins.json file for storage plugin in apache-drill在 apache-drill 中使用 bootstrap-storage-plugins.json 文件作为存储插件的异常
【发布时间】:2015-08-12 10:42:04
【问题描述】:

我想在apache-drill 中为MongoDB 添加存储插件。阅读文档后,我开始知道以编程方式我可以通过两种方式做到这一点:

  1. 休息 API
  2. 使用 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 以编程方式设置存储插件配置。

标签: apache-drill


【解决方案1】:

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

SELECT * FROM testCollection;

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

Drill 文档的 published correction 可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    相关资源
    最近更新 更多