为啥 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 同时具有 WHERE 和 PREWHERE 构造?