最近在学习和使用ClickHouse,写一篇博客总结一下该列式存储数据库特点;
ClickHouse是yandex开发的基于OLAP的DBMS系统,它是列式存储相较于传统数据库行式存储在大数据分析有较高的查询效率,同时它支持sql语句,可运用于单机和分布式系统环境。
1.优点
- 使用列式储存,向量存储在少字段效率占优;
- 支持HDFS或Mysql文件导入,可简单转换使用;
- 引擎多样,相较于mysql的myisam和innodb有多大数十种如mergetree等;
2.缺点
- 不支持并发,QPS官方建议100;
- 尽量做1000条以上批量的写入,避免逐行insert或小批量的insert,update,delete操作,因为ClickHouse底层会不断的做异步的数据合并,会影响查询性能,这个在做实时数据写入的时候要尽量避开;
- Clickhouse快是因为采用了并行处理机制,即使一个查询,也会用服务器一半的CPU去执行,所以ClickHouse不能支持高并发的使用场景,默认单查询使用CPU核数为服务器核数的一半,安装时会自动识别服务器核数,可以通过配置文件修改该参数。
3.基础用法
用法和mysql很相似也是有自己的服务器交互窗,也是类似-h host、-u user用法。
常用参数 | 作用 |
---|---|
-h | 服务器host名称 |
-u | 用户名,默认default |
--password | 密码,默认空 |
-q | 不进入clickhouse交互模式,直接执行sql语句 |
-d | 指定对应的数据库 |
-m | 多行查询,当sql语句过长的时候,回车不会直接执行 |
-t | 非交互模式打印查询执行的时间到窗口 |
评论