认识ClickHouse——开源列式存储的OLAP数据库
前面已经为大家介绍了很多好用的数据库产品,也收到了众多评论,在这个过程中我也学习到了很多东西,在此也非常感谢大家对我的支持。
最近发现ClickHouse依旧是大数据领域一个绕不开的话题,特用本文专门为大家介绍一下开源OLAP数据库——ClickHouse。
ClickHouse是什么
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
俄罗斯的Yandex于2016年开源ClickHouse。
OLAP(联机分析处理):专注于分析处理,对数据进行大量查询操作;OLTP(联机事务处理),专注于事务处理,对数据进行增删改查操作。
ClickHouse主要特性
- 列式存储
- 数据压缩
- 多核心并行处理
- 多服务器分布式处理
- 支持SQL
- 向量引擎
- 实时的数据更新
- 索引
- 适合在线查询
- 支持近似计算
ClickHouse的查询性能为什么这么快,或者说为什么采用列式存储的设计可以使得查询性能变得如此强悍,此处用动图为大家直观呈现行式存储和列式存储的区别。
OLAP特征
已经在很多文章里提到过OLAP,适用于OLAP场景的开源数据库产品也非常的多。但是可能还有有人对OLAP没有一个较为直观的认知,此处列举一些OLAP的特征,方便大家真正理解什么是OLAP。
- 绝大多数是读请求
- 数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
- 已添加到数据库的数据不能修改。
- 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
- 宽表,即每个表包含着大量的列
- 查询相对较少(通常每台服务器每秒查询数百次或更少)
- 对于简单查询,允许延迟大约50毫秒
- 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
- 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
- 事务不是必须的
- 对数据一致性要求低
- 每个查询有一个大表。除了他以外,其他的都很小。
- 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中
大家可以带入到自己现有的场景中,如果上面列举的这些特征多数都符合自己的现状,那么你可能就需要使用OLAP类型的数据库来解决你所面临的困难。
进阶
ClickHouse是一个开源的、高性能的数据库,可以满足众多大数据分析场景。如果你对ClickHouse有兴趣,可以关注:遇码,回复clickhouse获取官方文档。
需要注意的是,相比于ClickHouse,现如今已经有了更易用、性能更高的替代产品,如Doris等