ClickHouse集群方案测评
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClickHouse集群方案测评相关的知识,希望对你有一定的参考价值。
参考技术A回合对战数据指标计算,耗时过长,甚至因为单机内存不足无法满足需求,故考虑将原本单节点的单机ClickHouse改为集群 , 采用分布式表来进行相关计算。
数据量 : 26910101 Rows
方案一 : 单机方案( 全量数据插入单机表 )
方案二 : 集群方案( 数据写入物理表,分别并行向3台机器物理表写入数据 )
结论 : 写入数据速度和磁盘IO有关 , 集群方案数据写入相比单机方案有显著优势。
(1)分布式建表方法
(2)分组查询
SQL语句 : select count(*) , accountId,pvpId from rd.rd_baseinfo where ds>=\'2019-12-01\' and ds<\'2020-01-01\' group by accountId ,pvpId ;
结论 : 集群方案对数据分类查询效率比单机高出25%左右。
(3)关联查询
结论 : 小数据量join操作 , 单机方案和集群方案差异很小 ; 大数据量单机方案不如集群方案 , 单机方案还可能会存在内存不足等问题。
ClickHouse并发较小 , 官网查询建议100 Queries / second , 单机ClickHouse不适合做业务型高并发查询。ClickHouse集群可以通过chproxy 将并发的查询代理到集群上各分片上去作查询 , 可以极大提高了并发量。
单机方案写数据的性能上远不如集群方案。
查询方面, 数据量小时的查询单机方案和集群方案相差不明显, 数据量大时集群方案不会存在内存,cup不足等问题,同时查询的效率也高于单机方案。
集群方案相较于单机方案 , 建表略有繁琐 , 分布式表写数据无法实时写入各个分片物理表 , 而会先写入内存然后同步到各个分片,故我们需要向每个分片的物理表同时写入数据。
综上, 目前round和roundData数据量越来越大 ,搭建集群分布式存储数据方案是可行的。
ClickHouse集群部署
参考技术A 下文以 常见ClickHouse集群部署架构 中 方案四 的部署架构为例。准备Docker环境:
其中,主配置文件 conf/zoo.cfg的关键配置项:
ClickHouse最重要的配置有clickhouse_remote_servers、zookeeper和macros。
主配置文件,设置成可加载其他相关配置文件。
用于配置集群、数据副本、Zookeeper等。如果使用 方案一 ,此处配置需修改。
宏定义,后面创建本地表时会引用到。比如:
查看数据表:
主副本的分布表:
副副本的分布表:
node21节点主副本的本地表:
node23节点副副本的本地表:
以上是关于ClickHouse集群方案测评的主要内容,如果未能解决你的问题,请参考以下文章