主要从两个部分进行介绍,一是头条为什么选择了ClickHouse及如何使用的,二是主要做了哪些优化
由于自己对ClickHouse没做过多了解,第二部分优化没get到什么。
简介
ClickHouse 2016年开源的,由俄罗斯IT公司Yandex开发,是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),而且查询性能优越。
主要特点:
- 面向列+向量执行
- 自己管理存储(非Hadoop)
- 线性可扩展,高可靠(通过shard+replication实现)
- 面向SQL查询
- 快
性能优越的原因:
- Data Skipping
- 分区及分区剪枝
- 数据局部有序,类似LSM树的查询引擎
- 资源垂直整合
- 并发MPP+SMP架构
- 执行层是SIMD实现(单指令多数据流)
- 底层C++实现
使用的场景:
- 单表分析,这个表可以很宽
- 分布式Join性能并不出色
不足:
- 没有事务
- 批量数据接收
- update or delete支持较弱
- 查询重写优化较弱
应用
头条选择ClickHouse的原因:
- 产品需求
- 交互式分析能力(in seconds)
- 查询模式多变
- 以大宽表为主
- 数据量大
- 开源MPP OLAP引擎 - (性能、特点、优质)
在头条的应用:
![be171da3b2a8a04d1fa4311443abf5ac.png](https://i-blog.csdnimg.cn/blog_migrate/165849a959d38acb91d53ee8814d697b.jpeg)
toutiao-clickhouse-1