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集群方案测评的主要内容,如果未能解决你的问题,请参考以下文章

ClickHouse分布式集群搭建指南

ClickHouse分布式集群搭建指南

Wildfly 集群 Clickhouse 数据源

ClickHouse 读写分离方案

.Net轻松处理亿级数据--ClickHouse数据操作

大数据ClickHouse进阶:ClickHouse使用场景和集群安装