ClickHouse创建临时表

时间:2019-04-19 08:04:07

标签: clickhouse

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

create TEMPORARY TABLE nn1 as select 1;

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

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

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

enter image description here

1 个答案:

答案 0 :(得分:2)

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

要使用临时表,您需要有一个活动会话。只需在ClickHouse请求的URL中添加具有一些值的session_id参数即可。

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

以后具有相同session_id的请求将“记住”临时表,设置等。您在先前查询中使用该session_id所做的操作。

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

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