ClickHouse创建临时表

Nik*_*Nik 4 clickhouse

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

create TEMPORARY TABLE nn1 as select 1;

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

有人知道为什么会发生以及如何解决问题吗?我想我需要在执行查询之前启动会话,但我不知道如何执行此操作。

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

在此输入图像描述

fil*_*nov 10

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

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

例如:
替换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/