分布式数据库从入门到实战
彭旭
惟客数据总架构师
1259 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 19 讲/共 28 讲
分布式数据库从入门到实战
15
15
1.0x
00:00/00:00
登录|注册

18|ClickHouse应该如何选用表引擎?

你好,我是彭旭。
我们在上节课讲 ClickHouse 的极致性能的时候,提到了 ClickHouse 支持灵活多样的表引擎,而每个表引擎都有自己的适用场景。
表引擎决定了数据表最终数据存储的模式,能够支撑的数据量大小,数据读写的方式等等。如果选择了不恰当的表引擎,可能会导致数据的存储结构不合理,影响数据的读写效率,甚至限制系统对大规模数据的支持能力。
这一讲,我们就来认识一下 ClickHouse 最强大的 MergeTree 表引擎系列。

MergeTree

MergeTree 以及其家族(MergeTree)的其他引擎系列是 ClickHouse 中使用最多,最强大的引擎。
先来看一个使用 MergeTree 引擎创建 CDP 用户表的示例。
CREATE TABLE cdp_user (
unique_user_id UInt64 COMMENT '用户全局唯一ID,ONE-ID',
name String COMMENT '用户姓名',
nickname String COMMENT '用户昵称',
gender Int8 COMMENT '性别:1-男;2-女;3-未知',
birthday String COMMENT '用户生日:yyyyMMdd',
user_level Int8 COMMENT '用户等级:1-5',
register_date DateTime64 COMMENT '注册日期',
last_login_time DateTime64 COMMENT '最后一次登录时间'
) ENGINE = MergeTree()
PARTITION BY register_date
PRIMARY KEY unique_user_id
ORDER BY unique_user_id;
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. ClickHouse支持多种表引擎,选择合适的表引擎对数据存储结构、读写效率和系统支持能力至关重要。 2. MergeTree表引擎以及其家族是ClickHouse中使用最多、最强大的引擎,适合大规模数据的处理与查询。 3. ReplacingMergeTree引擎适用于需要唯一性约束的场景,能够删除重复行并保留版本列值最大的一行。 4. SummingMergeTree表引擎适用于对数值类型列进行汇总计算,能够按排序键分组并汇总重复行的数值字段。 5. AggregatingMergeTree是SummingMergeTree的升级版,支持sum之外的其他聚集函数,通常用作物化视图的表引擎,以提升聚合查询性能. 6. CollapsingMergeTree表引擎用于处理频繁更新的数据,通过折叠相同数据行的sign标记来实现数据行的状态管理。 7. VersionedCollapsingMergeTree是CollapsingMergeTree的变种,引入了version列,使得数据行的顺序不再影响“折叠”操作。 8. 表引擎的选择需要根据具体的数据存储需求和查询场景进行合理的权衡和选择,对系统的性能和稳定性有重要影响。 9. MergeTree系列表引擎是ClickHouse中最强大、使用最广泛的表引擎,包括GraphiteMergeTree、ReplicatedMergeTree系列和SharedMergeTree等。 10. 稀疏索引在稀疏索引里找不到数据或找到多个索引标记时的处理方式是一个值得思考的问题,需要根据具体情况进行处理。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)