1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > ClickHouse性能测试

ClickHouse性能测试

时间:2019-01-14 15:23:15

相关推荐

ClickHouse性能测试

对ClickHouse做个简单的性能测试。
ClickHouse简介

ClickHouse是战斗民族Yandex公司出品的OLAP开源数据库,简称CH,也有人简称CK,是目前市面上最快的OLAP数据库。性能远超Vertica、Sybase IQ等。

CH具有以下几个特点:

列式存储,因此数据压缩比高。

向量计算,且支持多核CPU并行计算,并且执行每个SQL时都力求榨干CPU性能。

基于Shared nothing架构,支持分布式方案。

支持主从复制架构。

兼容大部分SQL语法,其语法和MySQL尤其相近。

数据实时更新。

不支持事务,不适合高频更新数据。

建议多用宽表,但不建议总是查询整数据行中的所有列。

简言之,如果你有以下业务场景,可以考虑用CH:

海量数据,但又不希望单节点的存储空间消耗太高。

宽表,为了业务方便,可能会把很多相关数据列都整合到一个表里。

基于SQL的查询方式,提高程序的适用性和可移植性。

性能测试

我选用了CH官方提供的一个测试方案:SSBM (Star Schema Benchmark)。测试机配置:

-腾讯云CVM主机-标准型S5机型-4核16G-外挂500GSSD云硬盘

数据盘采用xfs文件系统,ioscheduler采用deadline方式:

[root@yejr.me]#cat/etc/fstab/dev/vdb/>0[root@yejr.me]#cat/sys/block/vdb/queue/scheduler[mq-deadline]kybernone

生成测试数据。

#下载SSBM工具[root@yejr.me]#gitclone/vadimtk/ssb-dbgen.git[root@yejr.me]#cdssb-dbgen[root@yejr.me]#make#生成测试数据,机器性能和磁盘有限,所以指定-s100[root@yejr.me]#./dbgen-s100-Tc[root@yejr.me]#./dbgen-s100-Tp[root@yejr.me]#./dbgen-s100-Ts[root@yejr.me]#./dbgen-s100-Tl[root@yejr.me]#wc-l*tbl3000000customer.tbl1400000part.tbl200000supplier.tbl[root@yejr.me]#ls-l*tbl-rw-r--r--1rootroot331529327Mar2821:17customer.tbl-rw-r--r--1rootroot140642413Mar2821:17part.tbl-rw-r--r--1rootroot19462852Mar2821:17supplier.tbl

创建测试表,根据CH官网提供的建表DDL直接创建即可,参考这里:Star Schema Benchmark( https://clickhouse.tech/docs/en/getting_started/example_datasets/star_schema/ )。

导入数据。

[root@yejr.me]#clickhouse-client--query"INSERTINTOcustomerFORMATCSV"<customer.tbl[root@yejr.me]#clickhouse-client--query"INSERTINTOpartFORMATCSV"<part.tbl[root@yejr.me]#clickhouse-client--query"INSERTINTOsupplierFORMATCSV"<supplier.tbl[root@yejr.me]#clickhouse-client--query"INSERTINTOlineorderFORMATCSV"<lineorder.tbl

这是导入测试数据的耗时以及导完后表空间大小的数据。

表表数据量耗时(秒)tbl文件大小表空间大小customer3,000,0002.923317M116Mpart1,400,0001.573135M25Msupplier200,0000.30519M7.7Mlineorder600,037,902837.28867G17Glineorder_flat600,037,9022318.61654G

只看最大的lineorder表,对tbl文件的压缩比可以达到4:1,如果是相对常规的OLTP数据库,其压缩比显然还要更高。

运行SSBM的几个标准查询耗时

SQL耗时(秒)扫描行数(10万)返回行数Q1.12.12391.011Q1.20.3207.751Q1.30.0531.811Q2.117.979600.04280Q2.23.625600.0456Q2.33.263600.047Q3.16.906546.67150Q3.25.330546.67600Q3.33.666546.6724Q3.40.0587.764Q4.110.110600.0435Q4.21.928144.42100Q4.31.373144.42800

每次扫描这么多数据量,但这些统计分析为主的SQL查询耗时却并不大,足见CH的计算性能了。

今天先简单介绍到这里,以后有机会再继续分享。

由叶老师主讲的知数堂「MySQL优化课」第17期已发车,课程从第15期就升级成MySQL 8.0版本了,现在上车刚刚好,扫码开启MySQL 8.0的修行之旅吧。

另外,叶老师在腾讯课堂的短课程《MySQL性能优化》已开课,本课程讲解读几个MySQL性能优化的核心要素:合理利用索引,降低锁影响,提高事务并发度

下面是报名小程序码

点“在看”给我一朵小黄花

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。