OLAP新秀ClickHouse性能测试

Stella981
• 阅读 765

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

ClickHouse简介

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

CH具有以下几个特点:

  1. 列式存储,因此数据压缩比高。
  2. 向量计算,且支持多核CPU并行计算,并且执行每个SQL时都力求榨干CPU性能。
  3. 基于Shared nothing架构,支持分布式方案。
  4. 支持主从复制架构。
  5. 兼容大部分SQL语法,其语法和MySQL尤其相近。
  6. 数据实时更新。
  7. 不支持事务,不适合高频更新数据。
  8. 建议多用宽表,但不建议总是查询整数据行中的所有列。

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

  1. 海量数据,但又不希望单节点的存储空间消耗太高。
  2. 宽表,为了业务方便,可能会把很多相关数据列都整合到一个表里。
  3. 基于SQL的查询方式,提高程序的适用性和可移植性。

性能测试

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

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

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

[root@yejr.me]# cat /etc/fstab
/dev/vdb /data xfs defaults,noatime,nodiratime,nobarrier 0 0

[root@yejr.me]# cat /sys/block/vdb/queue/scheduler
[mq-deadline] kyber none

生成测试数据。

# 下载SSBM工具
[root@yejr.me]# git clone https://github.com/vadimtk/ssb-dbgen.git
[root@yejr.me]# cd ssb-dbgen
[root@yejr.me]# make

# 生成测试数据,机器性能和磁盘有限,所以指定 -s 100
[root@yejr.me]# ./dbgen -s 100 -T c
[root@yejr.me]# ./dbgen -s 100 -T p
[root@yejr.me]# ./dbgen -s 100 -T s
[root@yejr.me]# ./dbgen -s 100 -T l

[root@yejr.me]# wc -l *tbl
  3000000 customer.tbl
  1400000 part.tbl
   200000 supplier.tbl

[root@yejr.me]# ls -l *tbl
-rw-r--r-- 1 root root 331529327 Mar 28 21:17 customer.tbl
-rw-r--r-- 1 root root 140642413 Mar 28 21:17 part.tbl
-rw-r--r-- 1 root root  19462852 Mar 28 21:17 supplier.tbl

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

导入数据。

[root@yejr.me]# clickhouse-client --query "INSERT INTO customer FORMAT CSV" < customer.tbl
[root@yejr.me]# clickhouse-client --query "INSERT INTO part FORMAT CSV" < part.tbl
[root@yejr.me]# clickhouse-client --query "INSERT INTO supplier FORMAT CSV" < supplier.tbl
[root@yejr.me]# clickhouse-client --query "INSERT INTO lineorder FORMAT CSV" < lineorder.tbl

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

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

54G

只看最大的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性能优化的核心要素:合理利用索引,降低锁影响,提高事务并发度

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
PB级数据实时分析,ClickHouse到底有多彪悍?
导语|ClickHouse是俄罗斯开源的OLAP数据库,以彪悍的性能著称。开源5年以来,以性能优异、简单易用的特点,吸引了大量的用户群体。本文是对腾讯云ClickHouse研发负责人彭健老师在云社区沙龙online的分享整理,帮助大家进一步理解ClickHouse的彪悍性能。_点击视频,查看完整直播回放_(https://www.oschina
Stella981 Stella981
3年前
ClickHouse在京东流量分析的应用实践
前言ClickHouse是一款开源列式存储的分析型数据库,相较业界OLAP数据库系统,其最核心优势就是极致的查询性能。它实现了向量化执行和SIMD指令,对内存中的列式数据,一个batch调用一次SIMD指令,大幅缩短了计算耗时,带来数倍的性能提升。目前国内社区火热,各大厂也纷纷进入该技术领域的探索。引言本文主要讨论京东黄
Stella981 Stella981
3年前
Kylin、Druid、ClickHouse 核心技术对比
文章作者:吴建超内容来源:jackywoo.cn导读:Kylin、Druid、ClickHouse是目前主流的OLAP引擎,本文尝试从数据模型和索引结构两个角度,分析这几个引擎的核心技术,并做简单对比。在阅读本文之前希望能对Kylin、Druid、ClickHouse有所理解。01Kylin数据模型
Stella981 Stella981
3年前
ClickHouse性能测试
对ClickHouse做个简单的性能测试。ClickHouse简介ClickHouse是战斗民族Yandex公司出品的OLAP开源数据库,简称CH,也有人简称CK,是目前市面上最快的OLAP数据库。性能远超Vertica、SybaseIQ等。CH具有以下几个特点:1.列式存储,因此数据压缩比高。2.向量计算
Stella981 Stella981
3年前
Clickhouse v18编译记录
简介ClickHouse是“战斗民族”俄罗斯搜索巨头Yandex公司开源的一个极具"战斗力"的实时数据分析数据库,是面向OLAP的分布式列式DBMS,圈内人戏称为“喀秋莎数据库”。ClickHouse有一个简称"CK",与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,其特点:列式存
ClickHouse数据表迁移实战之-remote方式 | 京东云技术团队
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。我们内部很多的报表、数据看板都基于它进行开发。今天为大家带来remote方式的ClickHouse数据表迁移的完整过程介绍,如有错误,还请各位大佬指正。
从ClickHouse通往MySQL的几条道路 | 京东物流技术团队
一、应用背景简介ClickHouse是Yandex(俄罗斯最大的搜索引擎)开源的一个用于实时数据分析的基于列存储的数据库,其处理数据的速度比传统方法快1001000倍。ClickHouse的性能超过了目前市场上可比的面向列的DBMS,每秒钟每台服务器每秒处
《ClickHouse:强大的数据分析引擎》
作者:京东物流陈昌浩最近的工作中接触到CK,一开始还不知道CK是什么,通过查询才知道CK是ClickHouse,ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库,是一款开源的面向列的分布式数据库管理系统,以其卓越的性能和强大的数据