ClickHouse 创建临时 table

ClickHouse create temporary table

尝试在 ClickHouse 中创建临时 table 时遇到问题。我执行简单查询并收到错误

create TEMPORARY TABLE nn1 as select 1;

message: Code: 113, e.displayText() = DB::Exception: There is no session, e.what() = DB::Exception

有人知道为什么会这样以及如何解决这个问题吗?我想我需要在查询之前启动会话,但我不知道该怎么做。

我正在尝试使用 ClickHouse 的界面进行查询。看起来像

默认情况下,所有通过 HTTP 接口完成的查询都是无状态的。

要使用临时表,您需要有一个活动会话。将具有某些值的 session_id 参数添加到 ClickHouse 请求的 URL 就足够了。

例如:
替换 http://127.0.0.1:8123/
http://127.0.0.1:8123/?session_id=mysession

以后使用相同 session_id 的请求将 'remember' 临时表、设置等,您在之前的查询中使用 session_id

还请记住,会话使用独占锁,因此您不能同时 运行 2 个具有相同 session_id 的请求。默认情况下会话生命周期等于 60 秒,但可以调整。

查看官方文档https://clickhouse.yandex/docs/en/interfaces/http/