什么是ClickHouse?
Clickhouse由俄罗斯Yandex公司开源的数据库,专为OLAP而设计。 Yandex是俄罗斯最大的搜索引擎公司,官方宣称ClickHouse 日处理记录数”十亿级”。
发布之初跑分要超过很多流行的商业MPP数据库软件,对标老东家HP的Vertica和GP 官方的性能测试显示比vertica快5倍,比GP快10倍。
毛子很任性(滑稽):
- 目前只支持Ubuntu系统
- 官方没有提供设计和架构文档,只有开源的C++源码
- 不理睬Hadoop生态,走自己的路
官网地址:https://clickhouse.yandex/
官方文档:https://clickhouse.yandex/docs/en/single/
流行的开源OLAP引擎/数据库
Impala,Presto,SparkSQL,HAWQ都是内存式引擎,本身不存储数据。GreenPlum,ClickHouse都是DBMS,有自己的数据存储机制。
Impala: 目前我们正在使用的内存引擎,CDH力推,与hive共享metadata。优点是快,缺点是容易爆内存,不支持update/delete(OLAP的通病),不支持ORC格式,UDF不支持SQL编写。不支持PLSQL(hive2后有hplsql)但默认是MR引擎,在impala中不能用。
Presto: 优点是快,跨数据源查询,支持标准SQL。
SparkSQL: 优点是稳定,适合跑批,对ORC,parquet格式有原生支持,UDF使用方便。缺点是对JVM的实际使用内存过高,且不同的spark app之间缺乏有效的共享内存机制, 之前调查过Tachyon 和ignite,都是可以实现spark的共享式RDD。
HAWQ: 全名(hadoop with query)hadoop自家出的大数据平台MPP架构的内存式分布式引擎,设计之初参考Greenplum,早期叫GOH(greenplum on hadoop),对Hive/hbase/hdfs有原生的支持,速度快,支持全语言的UDF编写(包含SQL),符合TPC-DS规格(完全兼容SQL标准),支持窗口函数和高级聚合函数,支持kerberos对表级别的权限控制。线性扩展。但现在CDH和HDP合并之后对HAWQ兼容性不能保证,因此未来不太看好。
GreenPlum: MPP架构的开源产品。
ClickHouse: MPP架构开源产品。
ClickHouse的配置要求
CPU: x86_64架构且支持SSE4.2指令集,16Core,2600MHz。
RAM: 最低4GB 。
Disk: 预留2GB安装ClickHouse,数据存储依据实际需求和压缩系数调整。
Network: 最低10G。
Environment: 官方推荐使用Ubuntu,JDK1.8。
ClickHouse的安装与使用
Guide: 安装指南
网页版查询工具TABIX:ui.tabix.io
客户端查询工具:DBeaver
Tips: 客户端和网页版查询ClickHouse时,需要开启远程登录。在安装guide有具体步骤。clickhouse的jdbc connector包需要编译,比较麻烦,建议使用dbeaver,第一次连接的时候会自动编译最新的jar包。
ClickHouse的特性
1. 列式存储,数据压缩
压缩系数<50%
2. 支持SQL
支持的查询包括 GROUP BY