「从ES到CK 01」Elasticsearch vs Clickhouse

这篇具有很好参考价值的文章主要介绍了「从ES到CK 01」Elasticsearch vs Clickhouse。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导航

        在完成将公司日志数据从Elasticsearch(下称ES)转战到Clickhouse后,个人认为有必要将过程记录分享。限于篇幅及便于分类组织,我会以一个系列文章的形式记录:

  • 01 《Elasticsearch vs Clickhouse》
  • 02 《Clickhouse的基础知识扫盲》
  • 03 《​Clickhouse多分片多副本集群部署​》
  • 04 《​​Clickhouse表引擎选择和表结构设计​》
  • 05 《​clickhouse高效数据处理工具vector​》
  • 06 《​​​​​​​​​clickhouse的数据可视化工具clickvisual​》
  • 07 《kibana自定义插件跳转clickvisual》
  • 08 《妙用clickvisual api实现用户自动管理》(敬请期待)

一、常见的日志解决方案ELK

        跟大部分企业一样,在日志解决方案选型时,优先选择了业界成熟方案elk + kafka + beats;顾名思义,该方案是使用ES进行数据存储的。

二、现状与挑战

        ES 是一种基于 Lucene 的分布式全文搜索引擎,我司用ES存储日志,目前服务器规模 20+,总容量6TB SSD+15TB HDD,日均日志接入量大约 2TB;数据按日期生成ES索引,按照既定的索引生命周期策略(iLM)进行冷热数据存放。

「从ES到CK 01」Elasticsearch vs Clickhouse,日志解决方案,elasticsearch,clickhouse

随着日志量的增加,ES集群的一些问题逐渐暴露:

  1. 资源成本问题:ES集群使用20+台规格为16c32g的服务器,总容量6TB SSD+20TB HDD。作为一个非利润部门的工具平台,占用的资源过多;
  2. 数据安全问题:出于资源成本考虑,没有开启数据副本功能(一旦开启,资源成本会成倍增加,且副本写入不是异步的,会影响数据写入速率),如此一来,存在数据丢失风险;
  3. 性能问题(查询超时或慢):因数据按日期生成ES索引且冷热分离,当用户查询冷数据或跨天查询数据时,经常会出现查询超时;
  4. 性能问题(写入延迟):因数据进行冷热分离,每天需将数据从热节点(SSD)迁移到冷节点(HDD),迁移过程中会占用大量的资源(譬如带宽、磁盘IO、ES队列等),期间会导致写入延迟。

站在运维人员的角度,资源成本和运维成本的增加,无疑压力是越来越大,亟需寻找优化方案

三、为什么选择Clickhouse

        ClickHouse 是一款高性能列式分布式数据库管理系统,我们对 ClickHouse 进行了大量的资料搜集,发现有下列优势:

  • ClickHouse 写入吞吐量大

        单服务器日志写入量在 50MB 到 200MB/s,每秒写入超过 60w 记录数,是 ES 的 5 倍以上。在 ES 中比较常见的写 Rejected 导致数据丢失、写入延迟等问题,在 ClickHouse 中不容易发生。

  • 查询速度快

        官方宣称数据在 pagecache 中,单服务器查询速率大约在 2-30GB/s;没在 pagecache 的情况下,查询速度取决于磁盘的读取速率和数据的压缩率。经测试 ClickHouse 的查询速度比 ES 快 5-30 倍以上。

  • 查询语法门槛低

        ClickHouse的SQL语法与标准SQL语法基本相同,相对于ES的Lucene语法,学习门槛要更低,且在复杂的查询条件下表现更好

  • ClickHouse 比 ES 服务器成本更低

        一方面 ClickHouse 的数据压缩比比 ES 高,相同数据占用的磁盘空间只有 ES 的 1/3 到 1/30,节省了磁盘空间的同时,也能有效的减少磁盘 IO,这也是ClickHouse查询效率更高的原因之一。

Elasticsearch

Clickhouse

说明

版本

7.4.2

22.7.4

分布式支持

扩展性

增加节点后ES会自动均衡数据,CK需手工均衡数据

写入速度

数据压缩率

精确匹配查询

一般

模糊匹配查询

一般

权限管理

支持

支持

查询难度

CK支持通用SQL语法

可视化支持

维护难度

一般

一般

        在了解Clickhouse的特点后,结合我司实际情况,决定使用Clickhouse代替ES存储日志数据。期间以Clickhouse为存储的新日志系统与ELK并行,数据同时写入ES和Clickhouse;同时在kibana添加入口以查询Clickhouse上的日志数据,以逐渐过渡到新日志系统。

下回预告

        Clickhouse的基础知识扫盲,欢迎关注后续更新的系列文章~文章来源地址https://www.toymoban.com/news/detail-766933.html

到了这里,关于「从ES到CK 01」Elasticsearch vs Clickhouse的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 埋点日志解决方案——Golang+Gin+Sarama VS Java+SpringCloudGateway+ReactorKafka

    之前我就写过几篇OpenResty+lua-kafka-client将埋点数据写入Kafka的文章,如下: Lua将Nginx请求数据写入Kafka——埋点日志解决方案 python定时任务执行shell脚本切割Nginx日志-慎用 nginx+lua写入kafka报buffered messages send to kafka err: not found broker 关于OpenResty+doujiang24/lua-resty-kafka写入kafka故障转

    2024年02月08日
    浏览(39)
  • Elasticsearch系列组件:Beats高效的日志收集和传输解决方案

    Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎,设计用于云计算环境中,能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性,可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个全文搜索引擎,它还提供了分布

    2024年02月08日
    浏览(37)
  • filebeat+kafka+logstash+elasticsearch+kibana实现日志收集解决方案

    前言:我们使用nginx来模拟产生日志的服务,通过filebeat收集,交给kafka进行消息队列,再用logstash消费kafka集群中的数据,交给elasticsearch+kibana监控 服务器环境: 192.168.2.1:elasticsearch 192.168.2.2:filebeat+nginx 192.168.2.3:kafka 192.168.2.4:logstash elasticseatch+filebeat+kafka+logsstash(6.60)清

    2024年02月03日
    浏览(57)
  • ClickHouse/Doris vs Elasticsearch谁更胜一筹?

    我之前在ClickHouse vs Doris 读写性能比较 一文中,初步做了一下ClickHouse和Doris的读写性能比较,但由于数据样本比较小,且未发挥出所有硬件资源的性能,因此进行了第二轮压测。 本轮压测与上一轮的区别在于: 新加入了Elasticsearch搜索引擎 ClickHouse和Doris均采用多并发写入,发

    2024年01月22日
    浏览(50)
  • python连接clickhouse (CK)

    2024年02月06日
    浏览(34)
  • 【数据库学习】ClickHouse(ck)

    是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 按列存储,列越多速度越慢; 按列存储,数据更容易压缩(类型相同、区分度);==》每次读取的数据就更多,更少的io。 聚合性能高; 类sql操作;仅支持数据的查询、批量写入、批量删除。 用于磁盘查询,同时也利用

    2024年02月02日
    浏览(56)
  • ELK日志系统实战(五):安装vector并将数据输出到es、clickhouse案例

    目录 安装vector(0.22.0) 方式一:docker安装 方式二:手动下载安装包 编写配置文件 1.从syslog将日志进

    2024年02月06日
    浏览(47)
  • clickhouse断电重启故障解决方案

    公司的一个日志系统用到了clickhouse。一线运维反映说有个生产环境因为异常断电造成服务器重启。在执行日志系统的启动脚本时,一直报clickhouse启动不起来,日志系统无法使用。 通过阅读启动脚本代码,以及启动日志系统,我发现mysql、redis等项目依赖的以及项目本身都能启

    2024年02月14日
    浏览(58)
  • Elasticsearch--01.ES8.1.0集群搭建

    一、搭建ES集群 1.集群环境安装 本集群使用Centos7.5操作系统,2G 2C 60G(如果主机好点的节点配置可以搞高点) 分别修改三台集群服务器配置:  1.1.修改系统配置文件/etc/security/limits.conf 1.2.修改/etc/sysctl.conf 1.3.# sysctl -p  重新加载 集群服务器如下: 机器地址 节点名称 节点角

    2024年02月12日
    浏览(38)
  • clickhouse 数据一致性保障常用解决方案

    对于任何一个数据存储的框架来说,确保数据的一致性都是其非常重要的组成部分,不管是过程中的强一致性,还是最终一致性,都是数据一致性的解决方案,本篇来聊聊clickhouse中的数据一致性问题。 通过查询 CK 官方手册发现,即便对数据一致性支持最好的 Mergetree,也只是

    2024年01月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包