0

我想使用git reposqlline中包含的 shell 脚本包装器通过 Calcite 驱动程序连接到 JDBC DB,例如 Postgres。calcite我面临如何指定目标 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 驱动程序),如果支持,我该如何建立连接?

4

1 回答 1

0

尝试在模式定义中包含您的 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"
    }
  ]
}
于 2020-11-08T13:00:57.703 回答