没有合适的资源?快使用搜索试试~ 我知道了~
首页ClickHouse官方中文文档.pdf
ClickHouse官方中文文档.pdf
需积分: 46 2.0k 浏览量
更新于2023-06-03
评论
收藏 8.48MB PDF 举报
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。ClickHouse 架构概述 ClickHouse 是一个真正的列式数据库管理系统(DBMS)。在 ClickHouse 中,数据始终是按列存储的,包括矢量(向量或列块)执行的过程。只要有可能,操作都是基于矢量进行分派的,而不是单个的值,这被称为«矢量化查询执行»,它有利于降低实际的数据处理开销。
资源详情
资源评论
资源推荐

什么是ClickHouse?
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
在传统的行式数据库系统中,数据按如下顺序存储:
row watchID JavaEnable title GoodEvent EventTime
#0 89354350662 1 投资者关系 1 2016-05-18 05:19:20
#1 90329509958 0 联系我们 1 2016-05-18 08:10:20
#2 89953706054 1 任务 1 2016-05-18 07:38:00
#N … … … … …
处于同一行中的数据总是被物理的存储在一起。
常见的行式数据库系统有: MySQL、Postgres和MS SQL Server。
在列式数据库系统中,数据按如下的顺序存储:
row: #0 #1 #2 #N
watchID: 89354350662 90329509958 89953706054 …
JavaEnable: 1 0 1 …
title: 投资者关系 联系我们 任务 …
GoodEvent: 1 1 1 …
EventTime: 2016-05-18 05:19:20 2016-05-18 08:10:20 2016-05-18 07:38:00 …
该示例中只展示了数据在列式数据库中数据的排列方式。
对于存储而言,列式数据库总是将同一列的数据存储在一起,不同列的数据也总是分开存储。
常见的列式数据库有: Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、
InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google
PowerDrill、 Druid、 kdb+。
不同的数据存储方式适用不同的业务场景,数据访问的场景包括:进行了何种查询、多久查询一次以及各类查询的比例; 每
种查询读取多少数据————行、列和字节;读取数据和写入数据之间的关系;使用的数据集大小以及如何使用本地的数据
集;是否使用事务,以及它们是如何进行隔离的;数据的复制机制与数据的完整性要求;每种类型的查询要求的延迟与吞吐量
等等。
系统负载越高,依据使用场景进行定制化就越重要,并且定制将会变的越精细。没有一个系统能够同时适用所有明显不同的业
务场景。如果系统适用于广泛的场景,在负载高的情况下,要兼顾所有的场景,那么将不得不做出选择。是要平衡还是要效
率?
OLAP场景的关键特征
大多数是读请求
数据总是以相当大的批(> 1000 rows)进行写入
不修改已添加的数据

每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列
宽表,即每个表包含着大量的列
较少的查询(通常每台服务器每秒数百个查询或更少)
对于简单查询,允许延迟大约50毫秒
列中的数据相对较小: 数字和短字符串(例如,每个URL 60个字节)
处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行)
事务不是必须的
对数据一致性要求低
每一个查询除了一个大表外都很小
查询结果明显小于源数据,换句话说,数据被过滤或聚合后能够被盛放在单台服务器的内存中
很容易可以看出,OLAP场景与其他通常业务场景(例如,OLTP或K/V)有很大的不同, 因此想要使用OLTP或Key-Value数据库
去高效的处理分析查询场景,并不是非常完美的适用方案。例如,使用OLAP数据库去处理分析请求通常要优于使用
MongoDB或Redis去处理分析请求。
列式数据库更适合OLAP场景的原因
列式数据库更适合于OLAP场景(对于大多数查询而言,处理速度至少提高了100倍),下面详细解释了原因(通过图片更有利于
直观理解):
行式行式
列式列式
看到差别了么?下面将详细介绍为什么会发生这种情况。
输入/输出
1. 针对分析类查询,通常只需要读取表的一小部分列。在列式数据库中你可以只读取你需要的数据。例如,如果只需要读
取100列中的5列,这将帮助你最少减少20倍的I/O消耗。
2. 由于数据总是打包成批量读取的,所以压缩是非常容易的。同时数据按列分别存储这也更容易压缩。这进一步降低了I/O
的体积。
3. 由于I/O的降低,这将帮助更多的数据被系统缓存。
例如,查询«统计每个广告平台的记录数量»需要读取«广告平台ID»这一列,它在未压缩的情况下需要1个字节进行存储。如

例如,查询«统计每个广告平台的记录数量»需要读取«广告平台ID»这一列,它在未压缩的情况下需要1个字节进行存储。如
果大部分流量不是来自广告平台,那么这一列至少可以以十倍的压缩率被压缩。当采用快速压缩算法,它的解压速度最少在十
亿字节(未压缩数据)每秒。换句话说,这个查询可以在单个服务器上以每秒大约几十亿行的速度进行处理。这实际上是当前实
现的速度。
CPU
由于执行一个查询需要处理大量的行,因此在整个向量上执行所有操作将比在每一行上执行所有操作更加高效。同时这将有助
于实现一个几乎没有调用成本的查询引擎。如果你不这样做,使用任何一个机械硬盘,查询引擎都不可避免的停止CPU进行
等待。所以,在数据按列存储并且按列执行是很有意义的。
有两种方法可以做到这一点:
1. 向量引擎:所有的操作都是为向量而不是为单个值编写的。这意味着多个操作之间的不再需要频繁的调用,并且调用的
成本基本可以忽略不计。操作代码包含一个优化的内部循环。
2. 代码生成:生成一段代码,包含查询中的所有操作。
这是不应该在一个通用数据库中实现的,因为这在运行简单查询时是没有意义的。但是也有例外,例如,MemSQL使用代码
生成来减少处理SQL查询的延迟(只是为了比较,分析型数据库通常需要优化的是吞吐而不是延迟)。
请注意,为了提高CPU效率,查询语言必须是声明型的(SQL或MDX), 或者至少一个向量(J,K)。 查询应该只包含隐式循
环,允许进行优化。
ClickHouse用户
公司简介公司简介 行业行业 用例用例 群集大小群集大小 (Un)压缩数据大压缩数据大
小小 (of single
replica)
参考资料参考资料
2gis 地图 监测 — — 俄文,2019年7月
Aloha 浏览器 移动应
用程序
浏览
器后
端
— — 俄文幻灯片,2019年
5月
阿玛迪斯 旅行 分析 — — 新闻稿,四月2018
Appsflyer 移动分
析
主要
产品
— — 俄文,2019年7月
ArenaData 数据平
台
主要
产品
— — 俄文幻灯片,十二月
2019
Badoo 约会 时间
序列
— — 俄文幻灯片,十二月
2019
免责声明
如下使用ClickHouse的公司和他们的成功案例来源于公开资源,因此和实际情况可能有所出入。如果您分享您公司使
用ClickHouse的故事,我们将不胜感激 将其添加到列表将其添加到列表,但请确保你这样做不会有任何保密协议的问题。也欢迎提供
来自其他公司的出版物的更新。
*

Benocs 网络遥
测和分
析
主要
产品
— — 英文幻灯片,2017年
10月
彭博社 金融、
媒体
监测 102个服务器 — 幻灯片,2018年5月
Bloxy 区块链 分析 — — 俄文幻灯片,八月
2018
Dataliance/UltraPower 电信 分析 — — 中文幻灯片,2018年
1月
CARTO 商业智
能
地理
分析
— — 地理空间处理与
ClickHouse
CERN 研究 实验 — — 新闻稿,四月2012
思科 网络 流量
分析
— — 闪电对话,十月2019
城堡证券 金融 — — — 贡献,2019年3月
Citymobil 出租车 分析 — — 俄文博客文章,三月
2020
内容广场 网站分
析
主要
产品
— — 法文博客文章,十一
月2018
Cloudflare CDN 流量
分析
36服务器 — 博客文章,五月2017,
博客文章,三月2018
Corunet 分析 主要
产品
— — 英文幻灯片,2019年
4月
CraiditX 氪信 金融AI 分析 — — 英文幻灯片,2019年
11月
Criteo/Storetail 零售 主要
产品
— — 英文幻灯片,十月
2018
德意志银行 金融 商业
智能
分析
— — 英文幻灯片,十月
2019
Diva-e 数字咨
询
主要
产品
— — 英文幻灯片,2019年
9月
Exness 交易 指
标,
日志
记录
— — 俄语交谈,2019年5
月
精灵 广告网 主要 — — 日文博客,2017年7
公司简介公司简介 行业行业 用例用例 群集大小群集大小 (Un)压缩数据大压缩数据大
小小 (of single
replica)
参考资料参考资料

精灵 广告网
络
主要
产品
— — 日文博客,2017年7
月
虎牙 视频流 分析 — — 中文幻灯片,2018年
10月
Idealista 房地产 分析 — — 英文博客文章,四月
2019
Infovista 网络 分析 — — 英文幻灯片,十月
2019
InnoGames 游戏 指
标,
日志
记录
— — 俄文幻灯片,2019年
9月
Integros 视频服
务平台
分析 — — 俄文幻灯片,2019年
5月
科迪亚克数据 云 主要
产品
— — 虏茅驴麓卤戮碌禄路
戮鲁拢
Kontur 软件开
发
指标 — — 俄语交谈,2018年11
月
LifeStreet 广告网
络
主要
产品
75台服务器(3个副本) 5.27PiB 俄文博客文章,2017
年2月
Mail.ru 云解决方案 云服务 主要
产品
— — 运行ClickHouse实
例,俄语
MessageBird 电信 统计 — — 英文幻灯片,2018年
11月
MGID 广告网
络
网络
分析
— — 我们在实施分析DBMS
ClickHouse的经验,
俄文
OneAPM 监测和
数据分
析
主要
产品
— — 中文幻灯片,2018年
10月
Pragma Innovation 遥测和
大数据
分析
主要
产品
— — 英文幻灯片,十月
2018
青云 云服务 主要
产品
— — 中文幻灯片,2018年
10月
Qrator DDoS
保护
主要
产品
— — 博客文章,三月2019
百分点 分析 主要
产品
— — 中文幻灯片,2019年
6月
公司简介公司简介 行业行业 用例用例 群集大小群集大小 (Un)压缩数据大压缩数据大
小小 (of single
replica)
参考资料参考资料
剩余641页未读,继续阅读
















高并发
- 粉丝: 8827
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0