【问题标题】:Unable to switch database via clickhouse jdbc无法通过 clickhouse jdbc 切换数据库
【发布时间】:2021-07-16 12:02:18
【问题描述】:

我想在 clickhouse jdbc 中切换数据库,但失败并出现以下错误。 clickhouse jdbc不支持切换数据库吗?

USE DATABASE test_db
ClickHouse exception, code: 62, host: 192.168.0.4, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 5 ('DATABASE'): DATABASE test_db. Expected identifier (version 20.8.12.2)

【问题讨论】:

  • 并且您需要启用会话。 JDBC 参数 session_ID=any_string

标签: sql jdbc clickhouse


【解决方案1】:

【讨论】:

  • 可以在 sql 中做吗?类似:使用目录
【解决方案2】:

请参阅USE 声明信息。

USE test_db

这不适用于 HTTP - 请参阅文档:

使用 HTTP 协议时无法进行此查询,因为存在 没有会话的概念。

使用HTTP时按照这种方式定义default database

echo 'SELECT number FROM numbers LIMIT 10' /
  | curl 'http://localhost:8123/?database=system' --data-binary @-

看来需要在clickhouse-jdbc-driver的连接字符串中定义数据库:

jdbc:clickhouse://<host>:<port>[/<database>]

【讨论】:

  • 会得到如下异常:ClickHouse异常,代码:113,主机:192.168.0.4,端口:8123;代码:113,e.displayText() = DB::Exception: 没有会话(版本 20.8.12.2)
  • @zjffdu 这是正确的行为;我扩展了我的答案以涵盖 HTTP 用例。
  • 我没用http,我用jdbc,你的意思是clickhouse jdbc用http协议吗?
  • 好吧,但是似乎很不方便,尤其是用户使用一些BI工具来查询clickhouse。
  • @zjffdu 是不是 BI 工具在准备报告时不提供在 UI 中选择特定数据库的能力?您使用哪些 BI 工具?
猜你喜欢
  • 2021-12-06
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 2021-03-06
相关资源
最近更新 更多