一、背景
针对当前实施的项目,面临着两个主要挑战:一是需要存储更详细的原始数据和中间数据,二是现有基于MySQL的数据存储解决方案在数据量增长时性能受限,特别是在进行跨年历史数据的即时分析时。为了解决这些问题,对ClickHouse进行一系列的性能测试。
二、过程记录
1、环境
笔记本上搭建的虚拟机
操作系统:centos7.9
CPU/内存/硬盘:1C4G20G
ClickHouse版本:22.10.1.1877
2、安装步骤(离线)
3、测试场景
ü百、十万级、百万级、千万级、亿级的单表统计、小表关联,区分10列和50列分别测试
10列表测试(含中文列)
50列表测试(含中文列)
ü接入方式及性能
待接入数据量:2.7万
远程连接mysql导入方式:2秒
jdbc批量方式:6分半,经过分析,瓶颈在批量sql放缓存,可能是本地内存不足或配置方面的原因
三、初步结果
在资源有限的硬件环境下,ClickHouse的性能表现如下:
1、表分组统计性能:
对于包含10个字段的数据表,在进行分组统计操作时,ClickHouse展现出卓越的性能,处理超过2亿条数据仅需10秒钟。
即便数据表字段增加到50个,ClickHouse的性能依旧出色,与10个字段的数据表相比,执行效率没有显著差异。
2、表关联性能:
ClickHouse在关联小规模数据表时,也能保持较快的处理速度,处理2.7万条数据大约需要16秒。
3、数据导入性能:
当从远程MySQL数据库导入数据时,ClickHouse能够通过远程导入方式高效地完成数据迁移,2.7万条数据的导入过程仅需2秒。
然而,如果使用JDBC连接从MySQL导入数据,可能会因为硬件资源的限制,导致性能表现不佳,与其他数据库相比,速度较慢。
4、安装与配置注意事项:
在安装ClickHouse时,需要根据实际的硬件环境进行适当的配置。如果配置不当,例如分配的内存超出了物理内存的限制,可能会导致系统不稳定甚至崩溃。
四、其他说明
关于ClickHouse的稳定性,以及配置、性能调优方式是一个持续的过程,需要在实际运用中不断发现问题并加以改进。