ClickHouse的实践经验

news/2025/11/25 10:27:43/文章来源:https://www.cnblogs.com/luxiaoxun/p/19267171

1. 主键索引

在 ClickHouse 中选择有效的主键对查询性能和存储效率至关重要。
  • 如果不指定primary key,primary key默认就是ordering key。
  • 在选择ordering key时,优先考虑在查询条件中常用的列,尤其是那些排除大量行的列。
  • 选择与表中其他数据高度相关的列也很有益,因为连续存储能够提高压缩比和在 group by 和 order by 操作中的内存效率。

2. 分区键

分区是ClickHouse管理数据的重要方式。
  • ClickHouse默认是没有分表的,不建议使用分表,分表需要业务上做复杂适配。
  • 选择低基数的字段作为分区键,ClickHouse 不会跨分区合并数据,因此过多的分区会导致过多未合并的部分(too many parts error)。
  • ClickHouse 会自动在分区列上构建 MinMax 索引,这可以显著加速对这些列进行过滤的查询。例如,当表按 toYYYYMMDD(date) 分区时,按天过滤可以让引擎完全跳过无关的分区及其部分。
  • 建议每个分区的数据条数在千万~几亿左右(具体受磁盘、内存、查询模式和CPU能力影响)。
  • 分区数量不要超过几千个较为合适,几十到几百是比较常见的数量。

3. 数据类型

  • 使用严格类型:始终为列选择正确的数据类型。数值和日期字段应使用适当的数值和日期类型,而不是通用的字符串类型。
  • 避免可空列:可空列通过维护单独的列来跟踪空值,从而引入额外的开销。仅在明确需要区分空状态和null状态时使用 Nullable。否则,默认值或零等效值通常足够。
  • 低基数LowCardinality字段:任何唯一值少于 10,000 的列都是低基数的选择。
  • 专用类型:IP支持IPv4和IPv6类型。

4. 数据写入

  • 批量插入(客户端处理):建议以至少 1,000 行为一个批次插入数据,理想情况下在 10,000 到 100,000 行之间。
  • 异步插入(服务端处理):
    • 异步插入通过将传入数据写入内存缓冲区,然后根据可配置的阈值刷新到存储中,将批处理责任从客户端转移到服务器。
    • 插入被缓冲,只有在满足其中一个刷新条件时才写入磁盘:
          (1) 缓冲区达到指定大小 (async_insert_max_data_size)
          (2) 已经过了时间阈值 (async_insert_busy_timeout_ms)
          (3) 累积的插入查询达到最大数量 (async_insert_max_query_number)
    • 在发生刷新之前,数据无法被查询。
  • 不推荐以同步模式发送许多小批次,这样会导致创建许多 parts。这将导致查询性能差和 “too many parts” 错误。

5. 查询优化

  • ordering key和partition key是查询性能的关键因素。
  • 避免使用select *,按需获取字段。
  • where和group by中的列顺序,要和建表语句中order by的列顺序统一,遵循最左原则。
  • join查询性能不是很好,应避免使用,替代方案:业务设计使用大宽表,如必须使用join,右表选小表(hash join 右表会全部加载到内存)。
  • 使用 EXPLAIN indexes=1 定位慢查询的原因。

6. 数据TTL

  • TTL机制:ALTER TABLE events MODIFY TTL event_time + INTERVAL 30 DAY;
  • 分区后,删除分区:ALTER TABLE <表名> DROP PARTITION <分区值>
  • 如果需要按磁盘大小来做大量数据删除,建议直接删除分区,因为删除数据行会导致后台merge影响性能。
  • 支持定义冷/热磁盘,通过TTL TO VOLUME实现数据冷热迁移。

7. 硬件资源

  • 通用用途:内存与CPU比率 4:1
  • 数据仓库用例:内存与 CPU 比率 8:1
  • 计算优化用例:内存与 CPU 比率 2:1
 
参考:
https://clickhouse.com/docs/zh/best-practices
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/975665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小白建站3天就被爬?10分钟部署免费WAF,护住我的Java学习笔记

小白建站3天就被爬?10分钟部署免费WAF,护住我的Java学习笔记作为逛了三年博客园的老粉,去年终于鼓起勇气搭了自己的技术博客,专门用来记Java学习笔记。跟着园友的教程,用腾讯云学生机+宝塔面板装好了Typecho,第一…

2025年质量好的新能源轴专用磨床最新TOP厂家排名

2025年质量好的新能源轴专用磨床最新TOP厂家排名新能源轴加工行业背景与市场趋势随着全球新能源汽车产业的蓬勃发展,新能源轴作为关键零部件的需求呈现爆发式增长。据中国机床工具工业协会最新统计数据显示,2024年中…

2025 价值流智能时代 ITSM 选型指南:如何让平台成为 IT 服务价值闭环核心引擎?

2025 价值流智能时代 ITSM 选型指南:如何让平台成为 IT 服务价值闭环核心引擎?$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");文章对比主流ITSM厂商核心能…

2025年北京房产分割律师权威推荐榜单:离婚诉讼/继承律师/婚姻诉讼专业律师精选

在北京这座超一线城市,房产作为家庭核心资产,其分割案件往往涉及复杂法律问题和巨大经济利益。根据北京市法院系统近年数据统计,房产分割案件在家事纠纷中占比超过65%,且平均审理周期长达8.2个月。专业房产分割律师…

医疗器械注册公司哪家好?2025年权威机构推荐榜单

一、市场背景与行业现状 近年来,全球与中国医疗器械市场持续保持稳健增长。数据显示,2024年全球医疗器械市场规模已达6230亿美元,预计2025年将增长至6491亿美元;中国作为全球第二大医疗器械市场,规模从2020年的72…

超越像素:兰亭妙微揭示,卓越的APP界面设计始于“产品策略”

超越像素:兰亭妙微揭示,卓越的APP界面设计始于“产品策略”在数字产品的世界里,一个令人遗憾的常态是:许多创业者带着一个绝佳的想法,找到一家APP界面设计公司,直接要求“帮我把界面做得漂亮点”。然而,将设计仅…

基于SVM与K-means的图像分割实现

一、核心流程设计 本方案采用两阶段分割框架,结合K-means的快速聚类与SVM的高精度分类优势:粗分割阶段:K-means聚类实现初始区域划分 精细分割阶段:SVM分类器优化分割边界二、完整MATLAB代码实现 %% 清空环境与数据…

控油好用洗发水牌子盘点!什么洗发水去屑止痒控油又蓬松?9款高口碑必入清单

油头从来不是“一刀切”的问题:有人是“傍晚微油”的轻度油头,只需要基础控油;有人是“半天就塌”的中度油头,急需长效蓬松;还有人是“刚洗就黏”的重度油头,连带着脱发、头屑、异味一起找上门。选不对洗发水,轻…

Valgrind内存错误检测工具使用

Valgrind内存错误检测工具使用基本用法 假设你有一个可执行程序 ./my_program,可以这样运行 Valgrind: Bash valgrind --tool=memcheck --leak-check=full ./my_program 常用选项说明: 选项 说明 --tool=memcheck 使…

Setup线程组使用注意事项 - BKY007

在最近的一次性能测试中,把要测得 接口 不小心放入了 SetUp线程组中 把登录接口 放入了 普通线程组中,待测得接口功能 需要拿到 登录接口的 cookie信息授权, 1、在登录的响应结果中 利用正则提取器 拿到 了 响应结果…

2025年北京离婚诉讼律师权威推荐榜单:离婚律师/继承律师/房产分割专业律师团队精选

随着社会经济发展和家庭结构多元化,离婚诉讼法律服务需求呈现显著增长态势。根据北京市司法局发布的《2024年北京公共法律服务发展报告》,2024年北京市离婚诉讼案件量同比增长18.5%,其中涉及财产分割争议的占比76.3…

微信原生开发者工具-关于wxml中text标签的坑

从图中我们可以明显的看到“随”和“还”的字体不在圈内我们的指定范围内,但是让AI反复修改,就是改不好,从方框改为圆圈,始终都解决不了 怎么办 我们先用调试窗口的选择元素检查,看看到底是怎么个事这里你查了wxs…

2025年北京继承律师权威推荐榜单:房产分割/离婚诉讼/婚姻诉讼专业律师团队精选

随着社会财富积累和人口老龄化程度加深,继承法律服务需求呈现显著增长态势。根据北京市司法局发布的《2024年北京公共法律服务发展报告》,2024年北京市继承类法律咨询量同比增长23.7%,继承案件占全部家事案件的31.8…

丐版 OI 技巧 / 杂项部分总结 + 作者学习笔记

合作: SKK 部分:【前面忘了】,SKK,我【中间忘了】的信仰,我【中间忘了】的希望:https://www.cnblogs.com/S-Keep-Kiding/p/19267094 Wy_x 部分:https://www.cnblogs.com/Wy-x/p/19265940我写的的学习笔记部分: …

OI 常见经典技巧 (遗产)

总要留下点东西的。开题相关:拿到题先看时空!先看时空!先看时空! 一切建立在看完时空的前提下,最主要的就是先读题面,千万别急,大概理解了再模样例,如果长时间读不懂先看后面的。 大概理解了就去看数据范围,这…

2025 最新衡阳装修设计公司推荐!家装行业全产业链闭环服务品牌排行榜权威发布,透明化保障与品质之选深度解析

引言 家装市场长期存在材料掺假、报价隐瞒、工艺不达标等乱象,据国际室内设计与装修协会(IFI)最新测评数据显示,全球家装投诉率中 68% 源于信息不透明,32% 涉及环保不达标问题。为破解行业痛点,本次排行榜依托权…

2025年口碑好的铝木实验台厂家推荐及选择指南

2025年口碑好的铝木实验台厂家推荐及选择指南行业背景与市场趋势实验室家具行业作为科研基础设施的重要组成部分,近年来随着我国科研投入的持续增加而蓬勃发展。据中国实验室装备行业协会统计数据显示,2024年我国实验…

2025年知名的中央实验台厂家最新实力排行

2025年知名的中央实验台厂家最新实力排行行业背景与市场趋势实验室家具行业作为科研基础设施的重要组成部分,近年来随着我国科研投入的持续增加和高等教育事业的蓬勃发展,市场规模呈现稳定增长态势。据《2024-2029年…

27考研数学听谁的课更好?

刚开始准备考研的时候,建议多找几位不同老师的课程听一听,感受一下上课的风格是不是与自己的需求相匹配。 在整个备考期间,我的建议是,选定了一位老师,就系统性的听他的课程,但是,在这个过程中也不是不可以用一…

2025年甘肃广告策划服务商哪家权威

摘要 甘肃广告策划行业在2025年迎来快速发展,随着数字化转型和本地化需求增长,专业服务商成为企业成功的关键。本文基于行业数据和用户口碑,为您推荐排名前十的甘肃广告策划服务商,并提供详细比较,帮助您做出明智…