2017-08-21 67 views
0

我需要通过Apache Drill访问我的包数据库中的数据。 据我所知,箱子有一个PostgreSQL interface,但这不符合钻头暴露的PostgreSQL interface。 在互联网上没有太多关于这方面的信息。 解决这个问题的一种方法是实现一个自定义存储插件。但是没有找到有用的信息。我经历了this,但效果不佳。任何见解,参考,链接,信息表示赞赏。通过Apache Drill访问crateDB

的另一种方式,我试图连接到通过Apache钻头箱用的是存储配置:

{
类型: “JDBC”,
启用:真,
司机: “io.crate.client .jdbc.CrateDriver”
URL: “JDBC:板条箱://本地主机:5432 /”
}

和罐子: 板条箱-JDBC-1.9.1.jar和crate- jdbc-standalone-2.2.0.jar

这对我也不起作用。

+0

我很乐意探索这个更深入的,并帮助调试。您是否尝试使用我们的JDBC驱动程序?什么是错误信息?我是CrateDB社区闲置频道的'jodok.crate' https://crate.io/docs/support/slackin/ –

+0

嘿jodok,谢谢你的回复。 Apache钻取接受以下格式的PostgreSQL存储插件:{ type:“jdbc”, enabled:true, driver:“org.postgresql.Driver”, url:“jdbc:postgresql://1.2.3.4/ mydatabase“, 用户名:”user“, 密码:”password“ }其中as,对于crate,我们需要提供如下连接URL:jdbc:crate:// localhost:5432 /,Apache drill不能识别这个并且无法创建存储插件。 Apache Drill发起的唯一错误是:请重试:错误(无法创建/更新存储),日志中没有其他信息可用 – wingjammer1990

+0

第一种语法也应该可以工作:https://crate.io/docs/客户端/ jdbc /#jdbc-url-format可以试试吗? –

回答

0

通过Apache钻使用以下配置我可以成功地连接到板条箱:

{
“类型”:

1.存储配置通过Apache钻(嵌入模式)连接到箱: “JDBC”,
“司机”: “io.crate.client.jdbc.CrateDriver”,
“URL”: “为jdbc:木箱://本地主机:5432 /”,
“用户名”:“箱“,
“密码”:空,
“使能”:真
}

  • 使用JAR箱-JDBC-独立-2.2.0。
    添加它在钻安装-DIR /罐/的3rdParty
    在钻头安装-DIR/CONF /钻override.conf外接线

    drill.exec.sys.store.provider.local.path = “箱子-JDBC-独立-2.2.0.jar”

  • 查询样品:

    SELECT * FROM cratestorageplugin.doc。测试

    其中:
    cratestorageplugin:存储插件,用于创建箱
    DOC:模式名称
    测试:表名

    荣誉和大非常感谢箱子团队对他们的帮助和提示 支持!

    注意:如果您的表没有动态数据类型,则此方法可能证明是有用的。我们只能通过此连接查询具有简单数据类型的表。