当前位置:   article > 正文

clickhouse优化 - 最佳实践_clickhouse 分区最佳实践

clickhouse 分区最佳实践

clickhouse在易企秀数据仓库项目中已投入使用两年,主要为内部用户提供快速查询和多维分析的能力;希望你在业务当中遇到的性能问题,在这里都能得到解决

Clickhouse堪称OLAP领域的黑马,最近发布的几个版本在多表关联分析上也有了极大的性能提升,尤其是还引入了MaterializeMySQL Database Engine做到了实时对齐业务线mysql中的数据。

表优化

数据类型

  • 建表时能用数值型或日期时间型表示的字段,就不要用字符串——全String类型在以Hive为中心的数仓建设中常见,但CK环境不应受此影响。

  • 虽然clickhouse底层将DateTime存储为时间戳Long类型,但不建议直接存储Long类型,因为DateTime不需要经过函数转换处理,执行效率高、可读性好。

  • 官方已经指出Nullable类型几乎总是会拖累性能,因为存储Nullable列时需要创建一个额外的文件来存储NULL的标记,并且Nullable列无法被索引。因此除非极特殊情况,应直接使用字段默认值表示空,或者自行指定一个在业务中无意义的值(例如用-1表示没有商品ID)。

  • 数值类型分组最快,在新版本中ck会对string类型进行一次hash映射再分组

分区和索引

  • 分区粒度根据业务特点决定,不宜过粗或过细。一般选择按天分区,也可指定为tuple();以单表1亿数据为例,分区大小控制在10-30个为最佳。

PARTITION BY tuple() 
  • 必须指定索引列&#x
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/817456
推荐阅读
相关标签
  

闽ICP备14008679号