ClickHouse全称是Click Stream,Data Warehouse,简称ClickHouse就是基于页面的点击事件流,面向数据仓库进行OLAP分析。ClickHouse是一款开源的数据分析数据库,由战斗民族俄罗斯Yandex公司研发的,Yandex是做搜索引擎的,就类似于Google,百度等。我们都知道搜索引擎的营收主要来源于流量和广告业务,所以搜索引擎公司会着重分析用户网路流量,像Google有Anlytics,百度有百度统计,那么Yandex就对应于Yandex.Metrica。ClickHouse就是在Yandex.Metrica下产生的技术。
clickhouse的核心特点: 1:mpp架构 支持大规模并行计算,每个节点存有对应的分区数据。 2:完善的dbms功能 DDL,DML,权限控制,数据备份与恢复,分布式管理 3:列式存储和数据压缩 对于clickhouse的性能提升,数据压缩起到了很大作用。对于列式存储来说。相同的字段存储在一起,类型一致,数据类似,更方便进行压缩。clickhouse支持LZ4和ZSTD等压缩算法。 4:向量化执行引擎 向量化执行就是利用CPU的SIMD命令,即用单条指令操作多条数据,通过数据并行来提高性能,原理就是在CPU寄存器层面实现数据的并行操作。 5:支持SQL查询 提供传统数据库的概念,如数据库、表、视图和函数等。ClickHouse完全可以使用SQL作为查询语言,让每个人都可以轻松用上大数据。 6:表引擎 表引擎是ClickHouse其中一个重要的特性,拥有合并树、内存、文件、接口和其他6大类等20多种引擎,满足我们生产中的不同场景,选择合适的引擎。 7:多主架构 ClickHouse则采用Multi-Master多主架构,集群中每个角色对等,客户端访问任意一个节点都能得到相同的效果。 8:支持实时查询和分布式查询
优缺点对比: 优点:
代码语言:javascript复制ROLAP(关系型的联机分析处理,和它一起比较的还有OLTP联机事务处理,我们常见的ERP,CRM系统就属于OLTP)
在线实时查询
完整的DBMS(关系数据库)
列式存储(区别与HBase,ClickHouse的是完全列式存储,HBase具体说是列族式存储)
不需要任何数据预处理
支持批量更新
拥有完善的SQl支持和函数
支持高可用(多主结构,在后面的结构设计中会讲到)
不依赖Hadoop复杂生态(像ES一样,开箱即用)
缺点:
代码语言:javascript复制不支持事务(这其实也是大部分OLAP数据库的缺点)
不擅长根据主键按行粒度查询(但是支持这种操作)
不擅长按行删除数据(但是支持这种操作)
高性能查询对比: 在相同的服务器配置与数据量下,平均响应速度:
代码语言:javascript复制Vertica的2.63倍(Vertica是一款收费的列式存储数据库)
InfiniDB的17倍(可伸缩的分析数据库引擎,基于Mysql搭建)
MonetDB的27倍(开源的列式数据库)
Hive的126倍
MySQL的429倍
Greenplum的10倍
Spark的1倍
详情可在以下网址看到:https://clickhouse.tech/benchmark/dbms/ 推荐同学们学习一下大数据部分的clickhouse,后面clickhouse教程将为大家准备。