💡
原文英文,约400词,阅读约需2分钟。
📝
内容提要
在ClickHouse中,使用SAMPLE时需在创建MergeTree表时添加SAMPLE BY表达式,该表达式必须为主键的一部分并返回无符号整数。SAMPLE BY仅用于语法检查和选择过程,不改变MergeTree的数据结构。采样在过滤之前进行,涉及获取采样范围并将其添加到条件中。使用哈希函数如intHash32可提高采样效果,低基数字段的采样效果较差。
🎯
关键要点
- 在ClickHouse中,使用SAMPLE时需在创建MergeTree表时添加SAMPLE BY表达式。
- SAMPLE BY表达式必须为主键的一部分,并返回无符号整数。
- SAMPLE BY仅用于语法检查和选择过程,不改变MergeTree的数据结构。
- 采样在过滤之前进行,涉及获取采样范围并将其添加到条件中。
- 使用哈希函数如intHash32可提高采样效果,低基数字段的采样效果较差。
- 采样阶段包括获取实际采样范围和将其添加到键条件中。
- 在采样过程中,需计算采样表达式的上下界。
- 低基数字段的采样效果不佳,可能导致读取所有数据。
- 如果采样未能达到预期性能,可能是因为SAMPLE BY表达式在ORDER BY序列中排名较低。
➡️