elasticsearch优点:

a. 查询速度快,es是基于lucene的倒排索引实现,数据分词后预先已经排好序了,所以查询速度很快,qps较高,并且cpu消耗不大
b.es的索引字段比较灵活,可以随意的增加新字段到es中

elasticsearch缺点:

a.数据写入时要对所有的字段进行分词操作,然后在对这些分词构建倒排索引,事实上,并不是所有的分词都会在搜索中用到,这里类似于数据预聚合的概念,有些分词是没必要的
b.es的倒排索引文件,正排文件,docvalue文件等都很大,压缩效果很小,这就造成了数据写入到IndexBuffer内存后flush到磁盘时不仅速度慢,而且磁盘占用很大,而且我们知道es搜索时是会把segment缓存到内存中的,segment文件很大也就意味着内存占用极大,不管是读取磁盘还是内存消耗都很大,硬件成本高
c.es的分片数的调整代价很大,需要新建新的索引才能做到调整分片的目的,这对于日志来说很不合理,因为你很难预先知道日志量的大小,所以分片数很难精确估计,此外,es需要很多的脚本做一些比如关闭旧索引,创建新索引等工作
d.es的查询语句有自己的一套规则,聚合查询语句尤其复杂,学习成本较高
e.es是Master-Slaver的架构,当某个分片挂掉时,Master需要重新确认并选择主分片,在这段时间内,该分片不能进行写入操作

clickhouse优点:

a. clickhouse是列式存储,有分区,一级稀疏索引,二级跳数索引,列式压缩存储的优势,这使得clickhouse的数据文件很小,压缩比一般都能达到十几倍的压缩率,所以clickhouse不管是磁盘io还是内存消耗都不高,而且因为文件很小,所以即使是磁盘io,速度也很快,clickhouse的数据定位流程如下:先通过分区建确定分区,然后通过主键确定数据块,定位到读取数据块,进行解压缩并搜索
b.clickhouse充分利用了SIMD单指令多数据指令,多线程,cpu L1 L2 L3等硬件层面的优化手段,加快查询速度
c.clickhouse的所有数据都可以放到一张mergetree的表中,通过使用时间作为分区键,域名+时间戳作为主键搜索条件即可,这样几千G的文件都可以放到一个表中,不需要考虑分片等操作,管理非常方便
d.clickhouse是基于sql语句的,很容易写出各种聚合操作的sql,查询方便,学习成本低
e.clickhouse是Mul-Master的架构,无论哪个副本挂掉了,另一个副本马上可以接管写入和查询操作,中途没有任何延迟.

clickhouse缺点

a. clickhouse的CPU消耗很大,因为clickhouse大量使用SIMD和多线程等手段,所以数据查询时cpu消耗很大,而且总体上来说查询速度相对es来说,查询响应的速度比es速度慢
b.clickhouse的每次insert操作,不管是批量还是只是一条数据,都会创建一个分区part的目录,如果每次都是写入小批量的数据的话,就会导致创建大量的分区part目录,clickhouse会一直忙于合并分区part,这对于clickhouse来说简直就是灾难,所以写入数据的时候,最好先按分区批量提交的方式,预先按照分区归类数据,然后一次insert写入,这样这一批的数据就只会创建一个分区part目录,这样目录文件数就会少的多,而且clickhouse也不用一直合并大量的分区目录文件了

clickhouse日志表可以这样创建:

create table ck_log(ts timestamp, domain string, loglevel string,msg string) engine = ReplicateMergeTree partition by toDate(ts) order by domain,ts
以天的时间作为分区键,域名+时间戳作为一级索引查找创建日志表,单表就可以搞定几千g的日志文件了。

日志存储 elasticsearch vs clickhouse相关推荐

  1. ClickHouse 在日志存储与分析方面作为 ElasticSearch 和 MySQL 的替代方案

    2018年,我写过一篇关于Clickhouse的文章,这段内容在互联网上仍然很流行,甚至被多次翻译.现在已经过去两年多,同时 Clickhouse 的开发节奏仍然活跃: 上个月有 800 个合并的 P ...

  2. EFK升级到ClickHouse的日志存储实战

    0.背景 唯品会日志系统dragonfly 1.0是基于EFK构建,于2014年服务至今已长达7年,支持物理机日志采集,容器日志采集,特殊分类日志综合采集等,大大方便了全公司日志的存储和查询. 随着公 ...

  3. 在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch

    在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch 原文来自:https://andrewlock.net/writing-logs-t ...

  4. 大数据平台日志存储分析系统解决方案

    大数据平台日志存储分析系统是在大数据平台下,针对业务系统产生的日志记录进行存储和分析.日志数据来自ElasticSearch存储的日志历史数据,并将需要存储和分析的日志数据从ElasticSearch ...

  5. 分布式日志存储架构设计方案

    在一个完整的项目中,不仅仅是要完成正常的业务开发.同时为了提高一些开发效率.系统异常的追踪.系统功能的扩展等等因素,往往会用到系统在开发.运行过程中所产生的日志.这就需要我们有一个完善的日志系统来存储 ...

  6. 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用FileBeat采集Kafka日志到Elasticsearch 一.需求分 ...

  7. Python logging模块日志存储位置踩坑

    问题描述 项目过程中写了一个小模块,设计到了日志存储的问题,结果发现了个小问题. 代码结构如下: db.py run.py 其中db.py是操作数据库抽象出来的一个类,run.py是业务逻辑代码.两个 ...

  8. 日志长度_Kafka 日志存储详解

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:爱宝贝丶 my.oschina.net/zhangxufeng/blog/31141 ...

  9. Exchange 日志/存储路径

    日志/存储路径 http://szzb-ad-360:8181/help/admin/scheduling/log-path.html 使用"日志/存储路径"选项,用户可以编辑默认 ...

最新文章

  1. MySQL主从失败 错误Got fatal error 1236解决方法
  2. Sybase资料下载(参考手册,功能讲解很全)
  3. 系统之家win11最新旗舰版64位镜像v2021.07
  4. HDOJ2013_蟠桃记
  5. java的vector_Java中 Vector的使用详解
  6. 零零散散学算法之再叙字符串匹配
  7. compilation targetFrameworkMoniker=.NETFramework,Version=v4.0
  8. linux进程调度时间片算法,进程调度算法–时间片轮转调度算法
  9. 数的变幻(小明买书)
  10. 一墙之隔-看向世界和直面速度与激情
  11. 【科大讯飞Face】
  12. MySQL模糊查询like优化,再也用不着 like+% 了
  13. e5cz温控表中文说明书_欧姆龙温控器e5cz说明书 OMRON温控表E5EC说明书
  14. 这件物品不能添加到您的库中,因为他在你所在的地区不可用
  15. RGB图像三个分量的理解和显示
  16. 栈实战之检查括号是否闭合
  17. ios android 换手机通讯录备份,用iPhone如何备份/恢复通讯录?
  18. 十六、Barrier类(*)
  19. redhat 5.4 启动服务
  20. CTF-web暴力破解

热门文章

  1. 拒绝与其他码农一致!CSDN定制T让你成为最靓的仔
  2. 机器学习模型实战!如何从 900 万张图片中对 600 类照片进行分类? | 技术头条...
  3. 开源图数据库项目 DGraph 的前世今生 | 技术头条
  4. 手机芯片 AI 之争:高通、联发科均超华为!
  5. Twitter 惊现密码漏洞,强制 3.3 亿用户修改密码!
  6. GPL侵权诉讼被驳回,Linux之父Torvalds又要发飙了!
  7. 腾讯官方程序被报毒拦截?马化腾致歉
  8. 牛逼!java开发环境配置视频教程
  9. java静态函数调用,书籍+视频+学习笔记+技能提升资源库
  10. Redis之Pipeline(管道)