【问题标题】:Connecting to JDBC database via Calcite driver using sqlline使用 sqlline 通过 Calcite 驱动程序连接到 JDBC 数据库
【发布时间】:2021-02-09 01:09:03
【问题描述】:

我想连接到 JDBC DB,例如Postgres,通过 Calcite 驱动程序使用 calcite git repo 中包含的 sqlline shell 脚本包装器。我面临如何指定目标 JDBC Postgres 驱动程序的问题。最初我试过这个:

CLASSPATH=/Users/davidkubecka/git/calcite/build/libs/postgresql-42.2.18.jar ./sqlline -u jdbc:calcite:model=model.json

model.json 是这样的:

{
  "version": "1.0",
  "defaultSchema": "tpch",
  "schemas": [
    {
      "name": "tpch",
      "type": "jdbc",
      "jdbcUrl": "jdbc:postgresql://localhost/*",
      "jdbcSchema": "tpch",
      "jdbcUser": "*",
      "jdbcPassword": "*"
    }
  ]
}

但是

  • 首先,我被要求输入用户名和密码,尽管模型中已经指定了。
  • 其次,填写凭证后还是报错
java.lang.RuntimeException: java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'jdbc:postgresql://localhost/*'

所以我的问题是是否支持这种场景(通过 sqlline 在 Calcite 驱动程序中使用 JDBC 驱动程序),如果支持,我该如何建立连接?

【问题讨论】:

    标签: apache-calcite sqlline


    【解决方案1】:

    尝试在架构定义中包含您的 jdbc 驱动程序,并确保它在您的类路径中。此外,将您的数据库名称添加到 jdbc Url。您的 model.json 可能如下所示:

    {
      "version": "1.0",
      "defaultSchema": "tpch",
      "schemas": [
        {
          "name": "tpch",
          "type": "jdbc",
          "jdbcUrl": "jdbc:postgresql://localhost/my_database",
          "jdbcSchema": "tpch",
          "jdbcUser": "*",
          "jdbcPassword": "*",
          "jdbcDriver": "org.postgresql.Driver"
        }
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-19
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 2021-01-29
      相关资源
      最近更新 更多