---
url: /clickhouse/introduction.md
description: ClickHouse是什么？ClickHouse主要特性有哪些？OLAP特征有哪些？
---

# 认识ClickHouse——开源列式存储的OLAP数据库

前面已经为大家介绍了很多好用的数据库产品，也收到了众多评论，在这个过程中我也学习到了很多东西，在此也非常感谢大家对我的支持。

最近发现ClickHouse依旧是大数据领域一个绕不开的话题，特用本文专门为大家介绍一下开源OLAP数据库——ClickHouse。

## ClickHouse是什么

ClickHouse是一个用于联机分析(**OLAP**)的**列式**数据库管理系统(DBMS)。

![](/img/a6854d8a-ad1a-432c-99be-a7e387577d52.png)

俄罗斯的Yandex于2016年开源ClickHouse。

> OLAP(联机分析处理)：专注于分析处理，对数据进行大量查询操作；OLTP(联机事务处理)，专注于事务处理，对数据进行增删改查操作。

## ClickHouse主要特性

* 列式存储
* 数据压缩
* 多核心并行处理
* 多服务器分布式处理
* 支持SQL
* 向量引擎
* 实时的数据更新
* 索引
* 适合在线查询
* 支持近似计算

ClickHouse的查询性能为什么这么快，或者说为什么采用列式存储的设计可以使得查询性能变得如此强悍，此处用动图为大家直观呈现行式存储和列式存储的区别。
![](/img/27c029e4-16aa-41df-bace-1d1c6429bbde.gif)
![](/img/a42a5b89-f16f-418c-b809-58d29101eb6c.gif)

## OLAP特征

已经在很多文章里提到过OLAP，适用于OLAP场景的开源数据库产品也非常的多。但是可能还有有人对OLAP没有一个较为直观的认知，此处列举一些OLAP的特征，方便大家真正理解什么是OLAP。

* 绝大多数是读请求
* 数据以相当大的批次(> 1000行)更新，而不是单行更新;或者根本没有更新。
* 已添加到数据库的数据不能修改。
* 对于读取，从数据库中提取相当多的行，但只提取列的一小部分。
* 宽表，即每个表包含着大量的列
* 查询相对较少(通常每台服务器每秒查询数百次或更少)
* 对于简单查询，允许延迟大约50毫秒
* 列中的数据相对较小：数字和短字符串(例如，每个URL 60个字节)
* 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
* 事务不是必须的
* 对数据一致性要求低
* 每个查询有一个大表。除了他以外，其他的都很小。
* 查询结果明显小于源数据。换句话说，数据经过过滤或聚合，因此结果适合于单个服务器的RAM中

大家可以带入到自己现有的场景中，如果上面列举的这些特征多数都符合自己的现状，那么你可能就需要使用OLAP类型的数据库来解决你所面临的困难。

## 进阶

ClickHouse是一个开源的、高性能的数据库，可以满足众多大数据分析场景。如果你对ClickHouse有兴趣，可以关注：遇码，回复**clickhouse**获取官方文档。

需要注意的是，相比于ClickHouse，现如今已经有了更易用、性能更高的替代产品，如Doris等
