clickhouse HA 及性能测试

本文档详尽地展示了对ClickHouse集群在生产环境中的性能测试,包括高可用性验证、写入和查询性能测试、租户划分场景、缓存影响分析。测试结果显示,ClickHouse在特定并发下能保持稳定写入,查询性能受数据量和复杂性影响,分区对查询性能提升有限,而开启缓存能显著改善查询效率。测试结论为生产环境提供了有效的部署和优化建议。

目录

需求说明

逻辑架构图

物体架构图

测试性能

测试指标说明:

sql语句准备

环境准备

测试结论报告

(1) HA测试,停止某台服务,对外服务是否正常访问

(2)spark 以(5/10/20/40)个并发模拟写数据时,读性能(读50/100/150并发)测试

2.1 写并发测试

2.2 qps并发性能测试

(3)租户划分使用场景

(4)缓存

结论

需求说明


    针对clickhouse作为生产环境的底层数据存储,为了能保证生产环境服务稳定可用,做如下性能测试:

(1)chproxy + clickhouse 能否实现集群高可用

(2)clickhouse 写性能

(3)clickhouse查询性能

(4)clickhouse开启字段分区能否提高查询性能

(5)chproxy开启缓存对性能影响

    本文档将针对上述方案做验证以及测试输出结果。

逻辑架构图

ch5、ch6等机器构成一个clickhouse集群,用户读写请求直接作用在chproxy,chproxy提供透明的控制访问配置以及读写指标的监控,可实现用户无感知的故障访问切换。对于读服务,chproxy利用distrubute分布式表优秀的sql解析功能实现数据的查询服务;对于写请求,尽量降低写带来的集群IO负载,chproxy穿透distrubute表直接作用在具体表节点上,减少集群表节点数据转发带来的IO。若后期业务的扩展需求,可直接横向扩展机器节点即可。

物体架构图

测试性能

测试指标说明:

本次分别在写线程5/10/20/40/80 每秒写场景下,模拟不同并发读性能,其中读压力测试以10s内,启用500/1000/1500个查询,测试并发场景在不同级别下表sql的性能,用于生产环境clickhouse机器部署参考,测试性能如下所示,在查询过程中将主要捕获如下指标:

  (1)  throughput:用来衡量吞吐量的指标,通常由TPS和QPS来表示

(2)插入的rows/s:反映集群的写入性能

(3)插入的bytes/s:反映集群的写入性能

sql语句准备

  综合上述的情况准备了如下sql:

  Q1: select * from db.table where tenant_id = ${tenant_id} and project_id =${project_id}  limit 20; //该语句组合了“不使用聚合”+“多条件查询”,查询复杂性最小,基本只存在集群带宽瓶颈

  Q2:select count(*) from db.table where  tenant_id = ${tenant_id} and project_id =${project_id}  //该语句组合了“使用聚合”+“多条件查询”,查询复杂性一般

  Q3:select tenant_id,count(*) as c,max(project_id) as m,count(distinct(project_id)) from db.table where  tenant_id = ${tenant_id} group by tenant_id //该语句组合了“多聚合”+“条件查询” ,查询复杂性较难

  Q4:select count(*) from db.table where  tenant_id =${tenant_id} and tenant_id in (select distinct(tenant_id) from db.table2) group by project_id //该语句组合了“聚合”+“过滤”+“跨表join”,查询复杂性最难

环境准备

本次使用3台测试环境物体机16core,64 GIB,该机器上同时搭载有kudu集群,hdfs集群,yarn等服务,当在生产环境部署时,性能会比本次测试优越。在上述的两台机器上按上述物体架构部署3个节点,其中:

192.168.104.93 clickhouse节点,用于接收数据写入及查询

192.168.104.94 clickhouse节点,用于接收数据写入及查询

192.168.104.95 chpro

引用网络文章开启本课程的开篇: 在大数据分析领域中,传统的大数据分析需要不同框架和技术组合才能达到最终的效果,在人力成本,技术能力和硬件成本上以及维护成本让大数据分析变得成为昂贵的事情。让很多中小型企业非常苦恼,不得不被迫租赁第三方大型公司的数据分析服务。  ClickHouse开源的出现让许多想做大数据并且想做大数据分析的很多公司和企业耳目一新。ClickHouse 正是以不依赖Hadoop 生态、安装和维护简单、查询速度快、可以支持SQL等特点在大数据分析领域越走越远。  本课程采用全新的大数据技术栈:Flink+ClickHouse,让你体验到全新技术栈的强大,感受时代变化的气息,通过学习完本课程可以节省你摸索的时间,节省企业成本,提高企业开发效率。本课程不仅告诉你如何做项目,还会告诉你如何验证系统如何支撑亿级并发,如何部署项目等等。希望本课程对一些企业开发人员和对新技术栈有兴趣的伙伴有所帮助,如对我录制的教程内容有建议请及时交流。 课程概述:在这个数据爆发的时代,像大型电商的数据量达到百亿级别,我们往往无法对海量的明细数据做进一步层次的预聚合,大量的业务数据都是好几亿数据关联,并且我们需要聚合结果能在秒级返回。  那么我们该如何实现这一需求呢?基于Flink+ClickHouse构建电商亿级实时数据分析平台课程,将带领大家一步一步从无到有实现一个高性能的实时数据分析平台,该系统以热门的互联网电商实际业务应用场景为案例讲解,对电商数据的常见实战指标以及难点实战指标进行了详尽讲解,具体指标包括:概况统计、全站流量分析、渠道分析、广告分析、订单分析、运营分析(团购、秒杀、指定活动)等,该系统指标分为分钟级和小时级多时间方位分析,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。 本课程凝聚讲师多年一线大数据企业实际项目经验,大数据企业在职架构师亲自授课,全程实操代码,带你体验真实的大数据开发过程,代码现场调试。通过本课程的学习再加上老师的答疑,你完全可以将本案例直接应用于企业。 本套课程可以满足世面上绝大多数大数据企业级的海量数据实时分析需求,全部代码在老师的指导下可以直接部署企业,支撑千亿级并发数据分析。项目代码也是具有极高的商业价值的,大家可以根据自己的业务进行修改,便可以使用。  本课程包含的技术: 开发工具为:IDEA、WebStorm Flink1.9.0 ClickHouseHadoop2.6.0 Hbase1.0.0 Kafka2.1.0 Hive1.0.0 Jmeter(验证如何支撑亿级并发)Docker (虚拟化部署)HDFS、MapReduce Zookeeper SpringBoot2.0.2.RELEASE SpringCloud Finchley.RELEASE Binlog、Canal MySQL Vue.js、Nodejs Highcharts Linux Shell编程  课程亮点: 1.与企业对接、真实工业界产品 2.ClickHouse高性能列式存储数据库 3.大数据热门技术Flink新版本 4.Flink join 实战 5.Flink 自定义输出路径实战 6.全链路性能压力测试 7.虚拟化部署 8.集成指标明细查询 9.主流微服务后端系统 10.分钟级别与小时级别多时间方位分析 11.数据库实时同步解决方案 12.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS 13.集成SpringCloud实现统一整合方案 14.互联网大数据企业热门技术栈 15.支持海量数据的实时分析 16.支持全端实时数据分析 17.全程代码实操,提供全部代码和资料 18.提供答疑和提供企业技术方案咨询 企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值