Skip to content

认识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等

遇码MeetCoding 开源技术社区