一、clickhouse优缺点
优点:
1.支持数据压缩,相比来说磁盘空间需求更小。
2.基于磁盘上的数据工作,相比其它许多列式数据库是在内存中工作,而clickhouse是直接在磁盘上工作,内存要求低,
成本低。
3.多核心并行处理,ClickHouse会使用服务器上一切可用的资源,来全力完成一次查询
4.列式存储数据库中唯一份支持分布式查询的数据库
5.支持SQL,无缝切换,学习成本低。
6.使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在
不同副本上保持相同的数据。
7.对宽表支持性好
8.支持线性扩展,简单方便,高可靠性
缺点:
1.不支持事务
2.缺少高频率,低延迟的修改或删除已存在数据的能力。仅能用于批量删除或修改数据
3.不擅长根据主键按行粒度查询
4.聚合结果必须小于一台机器的内存大小
应用场景:
1.绝大多数请求都是用于读访问的
2.数据需要以大批次(大于1000行)进行更新,而不是单行更新;或者根本没有更新操作
3.读取数据时,会从数据库中提取出大量的行,但只用到一小部分列
4.单表有很多的列
5.查询频率相对较低(通常每台服务器每秒查询数百次或更少)
6.列的值是比较小的数值和短字符串(例如,每个URL只有60个字节)
7.在处理单个查询时需要高吞吐量(每台服务器每秒高达数十亿行)
8.不需要事务
9.数据一致性要求较低
10.查询结果显著小于数据源。即数据有过滤或聚合。返回结果不超过单个服务器内存大小
11.数据吞吐量非常大
二、与es的对比
1.报表和数据分析场景是典型的OLAP场景,在业务场景上列式存储数据库Clickhouse比Elasticsearch更有优势,
Elasticsearch在全文搜索上更占优势,但是全文搜索场景较少
2.Clickhouse的数据压缩比要高于Elasticsearch,同等数据量情况下,Elasticsearch使用的存储空间是Clickhouse的3-10倍,
平均在6倍,并且es比clickhouse更占用内存和CPU
3.Clickhouse是SQL语法,与Mysql开发模式相似,更好写单元测试。Elasticsearch是使用Java API拼接查询语句,
复杂度较高,不易读不易维护。
3.批量写入数据时Elasticsearch比Clickhouse更吃内存和CPU,Elasticsearch消耗的内存是Clickhouse的5.3倍,
消耗的CPU是Clickhouse的27.5倍。Clickhouse吞吐量是Elasticsearch的5倍
4.查询数据时Elasticsearch比Clickhouse慢,在配置相近的情况下Clickhouse的响应速度是Elasticsearch的12.7倍,
特别是基于时间的多字段进行聚合查询是Clickhouse比Elasticsearch快32倍。Clickhouse的查询响应素速度受
集群配置大小的影响较小
Elasticsearch与Clickhouse数据存储对比: https://baijiahao.baidu.com/s?id=1766732436918658889&wfr=spider&for=pc
入门ClickHouse和Elasticsearch:https://blog.csdn.net/weixin_48077303/article/details/123086422
springboot集成clickhouse:https://www.cnblogs.com/hanease/p/16414376.html
docker部署clickhouse:https://blog.csdn.net/YourMr/article/details/123197799
Docker部署clickhouse:https://blog.51cto.com/u_15204812/6543345
Clickhouse日期格式化https://blog.csdn.net/VevaLiu/article/details/127302245
Clickhouse时间戳转换https://blog.csdn.net/weixin_39976528/article/details/131563674
Clickhouse官方文档https://clickhouse.com/docs
Clickhouse分布式表使用指南https://blog.csdn.net/a123abc123abc/article/details/130981059