ClickHouse介绍与特点
大家好,我是连边。
今天给大家介绍ClickHouse
,文章整体不长,但是让大家对它有一个整体的认识。
ClickHouse是由俄罗斯IT公司Yandex开发的一款用于联机分析处理(OLAP)的开源列式数据库。于2016年6月(Apache许可证)开源。
老规矩,还是先上导读图,然后开始~
业务(数据存储)与中间件的关系
我们业务对数据的操作,无外乎增删改查
,然后根据不同的业务特点,使用了不同的中间件来实现业务。
比如搜索领域(查询),我们会用有Elasticsearch、Solr;平常的工作中做一般的增删改查,会毫不犹豫的用MySQL
;当要做缓存的时候,立马会想到Redis
。
但业务总是不断变化的,当中间件满足不了具体的业务需求的时候,就会催生的新的中间件(产品)。
ClickHouse
就是为了降低大数据存储的成本,为了降低技术使用门槛而催生的一款优秀的中间件(产品)。相比Hadoop
体系,降低了运维成本;在使用语法层面,几乎和MySQL
没有区别,都是使用DDL
、SQL
这一套体系。
ClickHouse适合的场景是什么
- 数据量比较大,如果一般的功能性的数据,不要用
ClickHouse
,比如做一个OA人事管理系统,这就是功能性的系统; - 静态数据,比如工业设备产生的追溯数据;
- 不需要全文检索,需要全文检索一般的方案是在
ClickHouse
上层添加ES
中间件;
之前准备用ES
来实现我的业务,后来对ClickHouse
有了一定的了解之后,发现ClickHouse
更适用。
我的业务场景:搜集工业设备上报的实验数据,在必要的时候要进行数据追溯(无全文检索),有一些实时数据也需要及时展示。
ES
是出了名的吃服务器的,如果ClickHouse
满足你的业务,尽可能用ClickHouse
;
网上有人做了对比,有兴趣的可以看一看。
Elasticsearch和Clickhouse基本查询对比
一些术语的解释
宽表
包含了很多个列的大表,“宽”字很形象;
OLAP&OLTP
在线事务处理(Online Transaction Processing、OLTP)和在线分析处理(Online Analytical Processing、OLAP)是数据库最常见的两种场景,这两种场景不是唯二的两种,从中衍生出来的还有混合事务分析处理(Hybrid Transactional/Analytical Processing、HTAP)3等概念。
在线事务处理(OLTP)是最常见的场景,在线服务需要为用户实时提供服务,提供服务的过程中可能要查询或者创建一些记录;
在线分析处理(OLAP)的场景需要批量处理用户数据,数据分析师会根据用户产生的数据分析用户行为和画像、产出报表和模型。
列式存储
推荐一篇我写的文章,很清晰的讲清楚了 什么是列式存储
学习资料的推荐
-
推荐英文版,虽然有中文版,但是有很多代码示例,只有英文版本有。
-
整体
64
个视频,用1.5倍数,配上虚拟机边观看,边实战一遍,大概2天完整的时间能够搞定。 -
我整理的关于ClickHouse一些文章,前期理念与实战,后期也会更新线上遇到的问题。
总结
今天这篇文章写到这里就结束了,在我们平常工作中,一定要注意仔细剖析业务,选择合适的中间件来实现业务,做到事半功倍的效果。
我是连边,专注于Java和架构领域,坚持撰写有原理,有实战,有体系的技术文章。
可以关注订阅号@连边
不错过精彩文章