ClickHouse产生和发展历史

ClickHouse是产生自Yandex公司的Metrica产品,Metrica是一款Web流量分析工具:根据用户
行为数据采集,进行数据OLAP分析。
数据采集的Event由页面的点击(click)产生,然后进入数据仓库进行OLAP分析。
ClickHouse的全称为Click Stream,Data WareHouse,简称ClickHouse。
2021年9月20号,ClickHouse团队从Yandex独立,成立公司

第一阶段:MySQL时期的MyISAM表引擎
第二阶段:MOLAP时期的Metrage
第三阶段:HOLAP时期的OLAPServer
第四阶段:ClickHouse

MyISAM表引擎
MySQL有多种表引擎,最知名的是InnoDB和MyISAM。
• MyISAM在分析场景下具有更好的性能。
• InnoDB支持事务,MyISAM不支持。
• InnoDB支持外键,而MyISAM不支持。
• InnoDB支持表、行(默认)级锁,而MyISAM支持表级锁。
• InnoDB和MyISAM都使用B+Tree作为索引结构,但InnoDB数据文件是和主键索引绑在一起的
(叶子结点),而MyISAM的数据则是使用另外单独的存储文件

Metrage
由于MySQL的局限性,Yandex自研了MOLAP架构的Metrage。
使用LSM树代替B+树索引(顺序写,提高了写吞吐)。
LSM树本质是将大树切成很多小树,小树构建的过程完全基于内存(辅助写预写日志),然后内存
达到某个阈值后进行合并并flush到磁盘,并形成一个小的数据段(Segment),数据段中数据局
部有序。
Metrage对需要分析的数据进行预先聚合,类似Kylin Cube,然后把聚合数据按照KV存储。
但是同时也带来了维度爆炸的问题

OLAPServer
MOLAP的分析需要进行预计算,系统无法满足Yandex面向个人的自定义分析功能。
从而又回归到ROLAP,自研了OLAPServer,分别吸取了MyISAM和LSM树的长处。
在索引方面,使用稀疏索引了。
在数据文件上,沿用LSM树的数据段内数据有序,借助稀疏索引定位数据段。
在存储方面,类似MyISAM,将索引文件和数据文件分开,同时引入列存,将索引文件和数据文件
按照列字段粒度进行拆分,每个列独立存储

ClickHouse适用于
• 数据实时更新的SQL交互式查询
• 无法进行预聚合的SQL查询场景
例如:TopN聚合查询。(某段时间范围内网站的前10名推荐人

如何加速查询
o读加速
§ 列存,只读取部分列:CounterID、Date、Referer
§ 通过索引减少扫描
§ 数据压缩减少IO
o计算加速
§ 向量化执行
§ 高度并行化
§ 极致的算法和优化

索引概述
• 索引必须能装入内存
• 8192行作为一个粒度
• 不构建唯一键约束
• 点查性能不保证
• 根据索引键(主键)排序
• 利用MergeTree来维护一段数据

ClickHouse不适用
Yandex的Metrica,在数据总量超过20万亿行的情况下,ClickHouse 90%的查询能够在1秒内返
回。
但ClickHouse不适用的场景也很多:
• 不支持事务
• 不擅长低延迟的Update/Delete操作
• 稀疏索引使得ClickHouse不擅长通过其键检索单行的点查询
• 不擅长大数据量Join

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太卷了低头继续

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值