我对 Clickhouse 很陌生,我的第一次尝试似乎总是为 SELECT 生成这种输出:
:) select * from test
SELECT *
FROM test
??s???????i??
? foo ? 123 ?
?????????????
??s???????i??
? bar ? 567 ?
?????????????
Run Code Online (Sandbox Code Playgroud)
我希望是这样的:
??s???????i??
? foo ? 123 ?
? bar ? 567 ?
?????????????
Run Code Online (Sandbox Code Playgroud)
为什么我得到单独的行?是表结构引起的吗?这是test
表的结构:
CREATE TABLE test
(
s String,
i UInt64
) ENGINE = Memory
Run Code Online (Sandbox Code Playgroud)
ClickHouse 有一个矢量化查询执行引擎,这意味着在解释查询时,它会批量消费数据。批处理的定义与底层存储引擎密切相关。由于您使用的是Memory引擎,它会为每个插入制定批次(或将大插入拆分为单独的批次,并使用max_insert_block_size设置)。
您在查询输出中获得单独的表行的原因如下:
您已将两个块(两个INSERT语句)插入到测试表中,因此从中扫描会生成两个块。
您使用的查询不包含任何合并块的阻塞运算符(分组依据、排序依据等)。所以生成的块一一返回。
命令行客户端在收到块时立即打印块。
归档时间: |
|
查看次数: |
478 次 |
最近记录: |