ClickHouse创建临时表

4

我在尝试创建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个回答

9

默认情况下,通过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的2个请求。默认情况下,会话生存期为60秒,但可以进行调整。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接