为啥 clickhouse 'DESCRIBE TABLE' 返回 4 或 5 列

Posted

技术标签:

【中文标题】为啥 clickhouse \'DESCRIBE TABLE\' 返回 4 或 5 列【英文标题】:Why clickhouse 'DESCRIBE TABLE' returns 4 or 5 columns为什么 clickhouse 'DESCRIBE TABLE' 返回 4 或 5 列 【发布时间】:2019-02-26 13:18:03 【问题描述】:

Clickhouse DESCRIBE TABLE 有时会返回五列:

name:字符串 type:字符串 default_type:字符串 default_expression:字符串 comment_expression:字符串

有时没有comment_expression,所以它只返回四列。

什么解释了这种差异,我如何知道在请求之前描述将返回多少列?

编辑: 对于 19 以上的 clickhouse 版本,有第 6 列 codec_expression 但查询似乎更可预测并且总是返回六列

【问题讨论】:

【参考方案1】:

有时没有comment_expression,所以它只返回四列。

我强烈认为这表明 clickhouse 服务器升级不一致。 comment_expression 列是在此提交 https://github.com/yandex/ClickHouse/blob/bdcdc15b1eb398bf715e05fb3652a21650bbab68/dbms/src/Interpreters/InterpreterDescribeQuery.cpp#L50 中引入的。示例块决定了数据结构并且是强制性的,因此没有正确的方法来生成更少的列。

【讨论】:

我认为你说得对,我的开发环境和生产环境之间存在一些差异。谢谢

以上是关于为啥 clickhouse 'DESCRIBE TABLE' 返回 4 或 5 列的主要内容,如果未能解决你的问题,请参考以下文章

Clickhouse 词典:为啥 CREATE DICTIONARY 需要数据库?

为啥修改表格列clickhouse时出现错误

为啥字段类型不一样,clickhouse查询结果不一样

为啥 clickhouse 同时具有 WHERE 和 PREWHERE 构造?

为啥最近的主机名负载平衡配置在 ClickHouse 中不起作用?

为啥我们不能在 clickhouse 的另一个视图之上制作物化视图?