大数据分析引擎ClickHouse是什么

发布时间:2022-01-18 10:47:47 作者:柒染
来源:亿速云 阅读:230

这篇文章的内容主要围绕大数据分析引擎ClickHouse是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!

一、什么是ClickHouse?

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

对于存储而言,列式数据库总是将同一列的数据存储在一起,不同列的数据也总是分开存储。

常见的列式数据库有:Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+。

二、传统分析数据库的解决方案:  
1、传统面对大数据量的处理方式:对数据进行分层,通过层层递进形成数据集市,从而减少最终查询的数据体量,比如提出数据立方体概念,通过对数据进行预先处理,以空间换时间,提升查询性能。
2、OLAP分类
关系型ROLAP:使用关系型模型构建,数据模型常使用星型模型或雪花模型
多维型MOLAP:使用多维数组的形式保存数据,其核心思想是借助预处理聚合结果,使用空间换时间的形式提升查询性能
混合架构HOLAP:可以理解ROLAP和MOLAP两者集成

三、一匹横空出世的黑马ClickHouse

ClickHouse(全称:Click Stream,Data WareHouse)具有ROLAP、在线实时查询、完整的DBMS、列式存储、不需要任何数据预处理、支持批量更新、非常完善的SQL和函数支持、支持高可用、不依赖Hadoop生态及开箱即用等特点。
ClickHouse 历史演化过程:
Mysql时期->另辟蹊径的Metrage时期->自我突破的OLAPServer时期->水到渠成的ClickHouse时期
1、MySQL时期:
采用MyISAM表引擎,采用B+数结构存储索引,而数据文件使用另外单独的存储文件,(区别于InnoDB表引擎使用B+树同时存储索引和数据,数据直接挂载在叶子节点中)
2、Metrage时期:
数据模型层面:关系型模型改为Key-Value模型
索引层面:LSM树代替了B+树
数据处理层面:实时查询改为预处理方式
使用LSM树最具代表性的是Hbase数据库,LSM本质可以看成将原本一颗大树拆成了许多颗小树,每一批次写入的数据会在内存中构建出一个小树,构建完成即完成写入(这里会通过预写日志的方式,防止内存故障而导致数据丢失),写入数据只发生在内存,不涉及磁盘操作,所以极大的提高了写入速度。
3、OLAPServer时期:
设计思路:取众家之长
数据模型:换回了关系型,理由:关系型有更好的描述能力
存储层面:与MyISAM表引擎类似,分为索引文件和数据文件
索引层面:沿用LSM树,将索引文件和数据文件按列进行拆分,每个列字段独立存储。

四、ClickHouse(全称:Click Stream,Data WareHouse)

1、ClickHouse适用场景:
非常适用商业智能领域,也广泛应用于广告流量、web、app流量、电信、金融、电子商务、信息安全、网络游戏、物联网等
2、ClickHouse不适用场景:
不支持事务
不擅长根据主键按行粒度查询(虽然支持),所以不应该把ClickHouse当作Key-Value数据库使用
不擅长按行删除数据(虽然支持)

五、ClickHouse架构详解

ClickHouse是一款MPP架构的列式存储数据库,汲取了各家技术的精髓,将每一个细节做到了极致。
1、完备的DBMS(数据库管理系统)功能
DDL(数据库定义语言):可以动态的创建数据库、表和视图
DML(数据库操作语言):动态的查询、新增、修改及删除数据
权限控制、数据备份与恢复、分布式管理等
2、列式存储与数据压缩
不同的列保存在不同的文件中,数据中的重复项越多压缩率就越高,数据的体量就越小,传输就越快,对网络带宽和磁盘IO的压力就越小,使用LZ4算法压缩,压缩率达8:1.
3、向量化执行引擎
向量化引擎可以简单的理解做一项消除程序中循环的优化,原理是在寄存器层面的并行操作,寄存器的访问速度是内存的300倍,硬盘的3000万倍。
4、关系模型与SQL查询
关系模型(包括星型模型、雪花模型乃至宽表模型)相当于其它模型有更好的数据描述能力,另外注意ClickHouse SQL语法区分大小写。
5、多样化的表引擎
拥有合并数、内存、文件、接口和其他六大类20多种表引擎,每种引擎都有各自的特点,适用于不同的场景。
6、多线程与分布式
如果说向量化执行是通过数据级并行方式提升了性能,那么多线程处理就是通过线程级并行方式实现了性能提升,相比底层硬件实现的向量化执行SIMD(单个指令处理多条数据),线程级并行方式由高层次的软件层面控制。
分布式设计的思想是分而治之,在分布式有一条金科定律:移动计算比移动数据更划算。
在存储方面ClickHouse既支持分区(纵向扩展,利用多线程原理),也支持分片(横向扩展,利用分布式原理),可以说将多线程和分布式技术应用到了极致。
7、多主架构
HDFS、Spark、Hbase和ElasticSearch这类分布式系统都采用了Master-Slave主从架构,由一个节点管控,而ClickHouse采用多主架构,客户端访问任何一个节点都能得到相同的结果。
8、在线查询
能够做到急速响应,且无须对数据进行任何预处理加工。
9、数据分片与分布式查询
数据分片是一种将数据横向切分,ClickHouse提供了本地表(Local Table)和分布式表(Distributed Table),本地表相当于一份数据分片,而分布式表本身不存储任何数据,它是本地表的访问代理,其作用类似分库中间件,借助分布式表可访问多个本地表,从而实现分布式查询。

六、ClickHouse的设计原则,如此之快的秘诀

1、着眼硬件,先想后做
2、算法在前,抽象在后
3、勇于尝鲜,不行就换
4、特定场景,特殊优化
5、持续测试,持续改进

感谢你的阅读,相信你对“大数据分析引擎ClickHouse是什么”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注亿速云网站!小编会继续为大家带来更好的文章!

推荐阅读:
  1. 引擎是什么
  2. ClickHouse集群搭建的方案是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

大数据 clickhouse

上一篇:大数据场景下热点数据的读/写优化方案

下一篇:java短信接口怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》