ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK, 与Hadoop, Spark相比,ClickHouse很轻量级,由俄罗斯第一大搜索引擎Yandex于2016年6月发布, 开发语言为C++
ClickHouse的特点:
开源的列存储数据库管理系统,支持线性扩展,简单方便,高可靠性,
容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,其可处理的数据级别已达到10亿级别
功能多:支持数据统计分析各种场景,支持类SQL查询,异地复制部署
clickHouse的性能:
低延迟:对于数据量(几千行,列不是很多)不是很大的短查询,如果数据已经被载入缓存,且使用主码,延迟在50MS左右。
并发量:虽然 ClickHouse 是一种在线分析型数据库,也可支持一定的并发。当单个查询比较短时,官方建议 100 Queries / second。
写入速度:在使用 MergeTree 引擎的情况下,写入速度大概是 50 - 200 M / s,如果按照 1 K 一条记录来算,大约每秒可写入 50000 ~ 200000 条记录每秒。如果每条记录比较小的话写入速度会更快
其主要的应用场景: 用于结构良好清晰且不可变的事件或日志流分析
Web和App分析,广告网络和RTB,电信,电子商务和金融,信息安全,监测和遥感,时间序列,商业智能,网络游戏,物联网
需要注意的是: 由于clickHouse不支持事务操作, 顾不能作为传统数据库来使用(OLTP),以及高请求率的键值访问,Blob或文档存储,超标准化数据
安装clickHouse:
1) 添加yum源 (一行内容)
yum-config-manager --add-repo http://repo.red-soft.biz/repos/clickhouse/repo/clickhouse-el6.repo
2) 执行安装(一行内容)
yum install clickhouse-server clickhouse-client clickhouse-server-common clickhouse-compressor
3) 启动clickHouse
/etc/init.d/clickhouse-server start
启动以后可以看到三个端口
9000端口,用于接受客户端请求
9009端口,用于集群复制数据
8123端口,http请求端口
登录clickHouse:
第一种方式(连接本地): /etc/init.d/clickhouse-client
第二种方式(连接远程): /etc/init.d/clickhouse-client --host=… --port=… --user=… --password=…
登录后, 其基本操作采用类SQL的方式即可使用, 但需要注意, 在建表时候, 需要开启多行查询, 否则建表时候会报错
开启多行查询的方式:
clickhouse-client -m 或者: clickhouse-client --multiline