JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发AI+设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

ClickHouse

来源:黑马程序员

浏览19334人

2019.09.19

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