ClickHouse与ES的优劣对比
优点:
- ClickHouse写入吞吐量大,单服务器日志写入量在50MB到200MB/s,每秒写入超过60w记录数,是ES的5倍以上。
- 查询速度快,官方宣称数据在pagecache中,单服务器查询速率大约在2-30GB/s;没在pagecache的情况下,查询速度取决于磁盘的读取速率和数据的压缩率。。
- ClickHouse比ES服务器成本更低。一方面ClickHouse的数据压缩比比ES高,相同数据占用的磁盘空间只有ES的1/3到1/30,节省了磁盘空间的同时,也能有效的减少磁盘IO;另一方面ClickHouse比ES占用更少的内存,消耗更少的CPU资源。。
- 相比ES,ClickHouse稳定性更高,运维成本更低。ES中不同的Group负载不均衡,有的Group负载高,会导致写Rejected等问题,需要人工迁移索引;在ClickHouse中通过集群和Shard策略,采用轮询写的方法,可以让数据比较均衡的分布到所有节点。ES中一个大查询可能导致OOM的问题;ClickHouse通过预设的查询限制,会查询失败,不影响整体的稳定性。ES需要进行冷热数据分离,ClickHouse按天分partition,一般不需要考虑冷热分离,特殊场景用户确实需要冷热分离的,数据量也会小很多,ClickHouse自带的冷热分离机制就可以很好的解决。
- ClickHouse采用SQL语法,比ES的DSL更加简单,学习成本更低。
缺点:
- 由于是列式数据库,无法像ES一样提供全文检索功能。
- 无法动态添加字段,需要提前定义好表schema。
- 日志无法长期保存,历史数据需定期清理下线,如果有保存历史数据需求,需要通过迁移数据,采用ClickHouse_copier或者复制数据的方式实现。
- ClickHouse查询速度快,能充分利用集群资源,但是无法支持高并发查询,默认配置qps为100。
- Clickhouse并不适合许多小数据高频插入,批量写入日志会有一定延迟。

携程相同类型日志在ES和ClickHouse占用磁盘空间

携程相同类型日志在ES和ClickHouse查询时间
ClickHouse替换ES的可行性方案
- 容灾部署与集群规划
采用多Shards、2 Replicas的方式,通过Zookeeper进行服务器间互相备份,允许一个shard一台服务器down机数据不丢失。为了接入不同规模的日志,可以按日志类型及日志量建立多个集群。

2.消费数据到ClickHouse采用gohangout工具

a)采用轮询的方式写ClickHouse集群的所有服务器,保证数据基本均匀分布。
b)大批次低频率的写入,减少parts数量,减少服务器merge,避免Too many parts异常。通过两个阈值控制数据的写入量和频次,超过10w记录写一次或者30s写一次。
3. 表结构的设计
按日志类型建立不同的本地表,非标字段可以设置为map类型,有值的用值填充,没有值就直接用 N 填充。

建表时考虑partition的设置,按天分partition。
4. 数据展示
Clickhouse自带的web接面Tabix.
第三方可视化界面可以接入Grafana,kibana
ClickHouse与ES的优劣对比的更多相关文章
- 微信小程序与传统APP十大优劣对比
随着微信公众平台的开放,微信端小程序涌现市场,带来很很多便利和简单的原生操作,询:微信端小程序是否会替代传统的APP应用?两者的优劣如何?我们一起来看看传统APP与微信端小程序十大优劣对比 ...
- es与solr对比
solr相关资料 自带Jetty服务器,也可以在tomcat发布solr,默认端口8983: 利用SolrJ操作solr API: Document文档和JavaBean相互转换,用到@Field(& ...
- CORS跨域与Nginx反向代理跨域优劣对比
最近写了一些关于前后端分离项目之后,跨域相关方案的基本原理和常见误区的帖子,主要包括CORS和Nginx反向代理.这两种方案项目中都有在用,各有优缺,关于具体使用哪种方案,大家的观点也不大一致,本文主 ...
- 谁是云的王者?OpenStack与VMware优劣对比
[编者按]在云计算生态系统中,有两种类型的用户需要使用云计算资源:传统型(Traditional IT applications)和在互联网大潮下逐渐崛起云计算应用型(Cloud-aware appl ...
- 【产品对比】Word开发工具Aspose.Words和Spire.Doc性能和优劣对比一览
转:evget.com/article/2018/4/3/27885.html 概述:Microsoft Office Word是微软公司的一个文字处理器应用程序,作为办公软件必不可少的神器之一,Wo ...
- codis集群和redis cluster的优劣对比
1.codis架构如下: (1)Codis是一整套缓存解决方案,包含高可用.数据分片.监控.动态扩态 etc..走的是 Apps->代理->redis cluster,一定规模后基本都采用 ...
- Java中数组转为List三种情况的优劣对比,常犯的类型转换错误原因解析
一.最常见方式(未必最佳)通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常. 关键代码:List list = Arrays. ...
- webkit几种内核版本的优劣对比总结
01.Open-Webkit-Sharp 默认不存在JS对话框,如果需要显示alert box,则需要在ShowJavaScriptAlertPanel进行捕捉,然后显示对话框: 02.Open-We ...
- js 实现复制功能的四种方式的优劣对比
今日网上浏览别人项目,看到有人用了document.execCommand这个属性,于是想起之前我选用Clipboard.js 来实现.对于这种不常用的属性还是不太放心,于是随手查了下关于复制的资料, ...
随机推荐
- VBS脚本编程(3)——常用函数
数据类型转换函数 1.Hex 函数 返回表示十六进制数字值的字符串. Hex(number) number 参数是任意有效的表达式. 说明 如果 number 参数不是整数,则在进行运算前将其四舍五入 ...
- ES2021 新特性!
大家好,我是前端队长Daotin,想要获取更多前端精彩内容,关注我(全网同名),解锁前端成长新姿势. 以下正文: 2021 年 6 月 22 日,第 121 届 Ecma 国际(Ecma Intern ...
- 【Quartz】Quartz存储与持久化-基于quartz.properties的配置
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一. Quartz存储与持久化 Quartz提供两种基本作业存储类型.第一种类型叫做RAM ...
- Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
解决办法: 去掉ps -aux 中的"-",改成ps aux 就可以了
- yield生成器demo代码
<?phpfunction get_val1($n = 10000*100){ $arr = []; for($i = 0; $i <= $n;$i++){ $arr[] = $i; if ...
- PHP获取文件扩展名的常用方法小结【五种方式】
方法1: function getExt1($filename) { $arr = explode('.',$filename); return array_pop($arr);; } ...
- ESP32-OTA升级
基于ESP-IDF4.1 1 #include <string.h> 2 #include "freertos/FreeRTOS.h" 3 #include " ...
- ESP32-http client笔记
基于ESP-IDF4.1 #include <string.h> #include <stdlib.h> #include "freertos/FreeRTOS.h& ...
- 使用 DataX 增量同步数据(转)
关于 DataX DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase.Tab ...
- 去抖动 debounce
最近才发现 debounce 在 减少DOM操作及资源加载方面得重要性,遂写个博客记录一下 /** * @param {Function} func 要执行的函数 * @param {number} ...