文章目录
ClickHouse是战斗民族Yandex公司出品的OLAP开源数据库,简称CH/CK,是目前市面上最快的OLAP数据库。
一、适用场景(OLAP)
- 大多数是读请求
- 数据批写入
- 不修改已添加的数据
- 查询为多行少列
- 存储宽表
- 较少的查询(单台100/s左右)
- 对于简单查询,允许延迟大约50毫秒
- 无大字段(例如,每个URL 60个字节)
- 单查询行数较大
- 无事务要求,对数据一致性要求低
- 数据被过滤或聚合后能够被盛放在单台服务器的内存中
总结:海量数据,但又不希望单节点的存储空间消耗太高。宽表,为了业务方便,可能会把很多相关数据列都整合到一个表里。基于SQL的查询方式,提高程序的适用性和可移植性。
二、特性
- 向量计算,且支持多核CPU并行计算,并且执行每个SQL时都力求榨干CPU性能。
- 列式存储,数据压缩比高
- 基于Shared nothing架构,支持分布式方案。
- 兼容大部分SQL语法,其语法和MySQL尤其相近。
- 支持主键
- 索引
- 在线计算
- 支持近似计算
- 支持主从复制架构
- 数据实时更新
三、限制
1、不支持事务
2、不适用高频率,低延迟的更新和删除,仅支持批量删除、修改
3、稀疏索引,不适合点查询
四、性能
- 单个大查询
数据在page cache
复杂查询2-10GB/s(未压缩),简单查询30GB/s
数据不在page cache
处理速度等于磁盘IO*压缩比
在分布式场景性能几乎线性扩展
- 短查询的延迟
数据在page cache
几十万行的主键查询小于50ms
数据不在page cache
HDD:10ms * 字段数 * 数据块数据量
- 短查询吞吐
每秒100次左右
- 写入性能
建议每秒最多写1次或者每次写入大于1000行,写入速度50-200MB/s