Clickhouse 是一个高性能且开源的数据库管理系统,主要用于在线分析处理 (OLAP) 业务。它采用列式存储结构,可使用 SQL 语句实时生成数据分析报告,另外它还支持索引,分布式查询以及近似计算等特性,凭借其优异的表现,ClickHouse 在各大互联网公司均有广泛地应用。
Why ClickHouse
首先我们来看一下OLAP 场景下的关键特征。
1.大多数数据库访问都是读请求。
2.数据总是以批量形式写入数据库(每次写入大于 1000 行)。
3.已添加的数据一般无需修改。
4.每次查询都从数据库中读取大量的行,但是同时又仅需少量的列。
5.数据表多为宽表,即每个表均包含着大量的列。
6.查询量一般较少(非高并发,通常每台服务器每秒约有数百个查询或更少)。
7.对于简单查询,允许的延迟大约为 50 毫秒(响应时间要迅速)。
8.列中的数据相对较小,一般为数字或短字符串。
9.处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行)。
10.事务不是必须的。
11.对数据一致性要求低。
12.查询结果明显小于源数据,换句话说,数据被过滤或聚合后能够被存放在单台服务器的内存中。
可以看到,OLAP 业务场景与其它流行的业务场景如 OLTP 等有很大的不同,使用 OLTP 数据库或 Key-Value 数据库去处理分析查询业务将会获得非常差的性能,而且没有任何意义。