在ClickHouse中使用SAMPLE似乎可以读取所有行和更多字节这是预期的还是由于表的定义不够理想? 表定义:不带样品的查询使用样品查询

问题描述

我希望通过使用SAMPLE来牺牲速度的准确性。尽管某些查询的运行速度更快,但query_log显示与不使用SAMPLE相比,正在读取所有行,并且读取了更多字节。我以为SAMPLE将导致更少的行读取。

我的问题:

  1. 使用SAMPLE是否会导致读取更多的行和字节?

  2. 由于次最佳表格定义可以纠正,因此读数增加了吗?

我正在使用ClickHouse版本20.5.3修订版54435。

表定义:

CREATE TABLE default.table_one
(
  `datestamp` Date,`timestamp` UInt64,`sample_hash` UInt64,`value` UInt32,...
)
ENGINE = MergeTree()
PARTITION BY date_stamp
ORDER BY (datestamp,timestamp,sample_hash)
SAMPLE BY sample_hash
SETTINGS index_granularity = 8192

不带样品的查询

SELECT
  avg(value)
FROM default.table_one;

query_duration_ms: 166
rows_read: 100,000,000
read_bytes: 800,000

使用样品查询

SELECT
  avg(value)
FROM default.table_one
SAMPLE 0.1;

query_duration_ms: 358
rows_read: 100,000
read_bytes: 1,600,000

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)