文章目录[隐藏]
ClickHouse脑图
clickhouse性能测试及与hive的性能对比
测试一
数据库实例配置
- 计算节点:节点规格: 8 核 32 GB ; 存储空间: 1000 GB ; 副本数: 2 ; 分片数: 1
- ZK节点:节点规格: 8 核 32 GB ; 存储空间: 300 GB ; 节点数目: 3
测试表
- test_1(10个字段):15652条,使用MergeTree作为表引擎
- test_2(28个字段):1026820983条,使用MergeTree作为表引擎
测试场景一:ClickHouse插入性能测试
- 外部数据无序插入到ClickHouse:55000条/秒
备注:与官方数据差距较大,官方号称单节点可以达到50万条/秒的插入速度 - ClickHouse节点内数据复制(test_2,新表使用MergeTree作为表引擎):85万条/秒
- ClickHouse节点内数据复制(test_2,新表使用ReplicatedMergeTree作为表引擎,并行两张表):40万条/秒
测试场景二:单节点与Hive对比
- 关于缓存,Clickhouse的缓存实际上是基于linux 的page cache,这块有兴趣的可以自行查找资料学习。
场景 | hive耗时(秒) | CH第1次查询(秒) | CH第2次查询(秒) | CH第3次查询(秒) |
---|---|---|---|---|
单表查询(1) | 194 | 133 | 20 | 17 |
单表查询(2) | 668 | 126 | 17 | 14 |
单表查询(3) | 226 | 122 | 17 | 14 |
单表查询(4) | 163 | 87 | 45 | 13 |
单表查询(5) | 190 | 86 | 13 | 13 |
单表多层(1) | 295 | 86 | 20 | 10 |
单表多层(2) | 360 | 10 | 10 | 10 |
子表关联 | 610 | 68 | 27 | 27 |
测试二
数据库实例配置
- 计算节点:节点规格: 8 核 32 GB ; 存储空间: 1000 GB ; 副本数: 2 ; 分片数: 2
- ZK节点:节点规格: 8 核 32 GB ; 存储空间: 300 GB ; 节点数目: 3
测试表
- test_2(28个字段):1026820983条,使用MergeTree作为表引擎
测试场景一:ClickHouse插入性能测试(无序插入)
- 提数到ClickHouse(MergeTree):55000条/秒
- 提数到ClickHouse(Distributed + ReplicatedMergeTree):24000条/秒
测试场景二:ClickHouse插入性能测试(有序插入)
- 10线程并发下,对比不同表引擎下有序数据和无序数据的插入性能
表引擎 | 插入数据顺序(TPS) | 插入数据乱序(TPS) |
---|---|---|
MergeTree | 421941 | 28885 |
Distributed + MergeTree | 344828 | 23935 |
ReplicatedMergeTree | 178253 | Too many parts (606) |
Distributed + ReplicatedMergeTree | 142857 | - |
- ReplicatedMergeTree在不同线程数下,插入性能比较
线程数 | TPS |
---|---|
10 | 178253 |
15 | 215983 |
20 | 257069 |
25 | 297619 |
30 | 328947 |
40 | 355872 |
50 | Too many parts (606) |
测试场景三:双分片与Hive对比
场景 | hive耗时(秒) | CH第1次查询(秒) | CH第2次查询(秒) | 同一张表不同SQL耗时(秒) |
---|---|---|---|---|
单表查询(1) | 194 | 54 | 7 | 23 |
单表查询(2) | 668 | 81 | 10 | 12 |
单表查询(3) | 226 | 50 | 7 | 16 |
单表查询(4) | 163 | 50 | 6 | 14 |
单表查询(5) | 190 | 37 | 8 | 14 |
单表多层(1) | 295 | 73 | 8 | 18 |
单表多层(2) | 360 | 72 | 7 | 18 |
子表关联 | 610 | 102 | 16 | 32 |
结论
- 在不需要保证数据高可用情况下,推荐使用Distributed + MergeTree,性能比复制表快1倍多。
- 直接插入MergeTree和ReplicatedMergeTree,要比插入到Distributed快一些,所以配置插入任务时,不要选择Distributed。
- 插入的数据一定要先排序再插入,否则性能会差10倍。
- 并发数的增加可以线性提升插入的TPS,但过多时也会导致606错误,这个只能根据Clickhouse的集群配置来灵活控制。
本文地址: https://www.xiongge.club/biancheng/elk/1644.html
转载请注明:熊哥club → clickhouse性能测试及与hive的性能对比
©熊哥club,本站推荐使用的主机:阿里云,CDN建议使用七牛云。
关注微信公众号『熊哥club』
免费提供IT技术指导交流
关注博主不迷路~