首页 > 其他分享 >TPCH测试TIDB

TPCH测试TIDB

时间:2022-12-08 22:34:59浏览次数:56  
标签:rows data TIDB tpch tbl 测试 tidb TPCH root

1、下载Git的测试工具

[root@localhost tpch]# git clone https://github.com/pingcap/tidb-bench.git
Cloning into 'tidb-bench'...
fatal: unable to access 'https://github.com/pingcap/tidb-bench.git/': Encountered end of file
###如上报错的解决
[root@localhost tpch]# git config --global --unset http.proxy [root@localhost tpch]# git config --global --unset https.proxy [root@localhost tpch]# git clone https://github.com/pingcap/tidb-bench.git Cloning into 'tidb-bench'... remote: Enumerating objects: 3313, done. remote: Counting objects: 100% (20/20), done. remote: Compressing objects: 100% (14/14), done. remote: Total 3313 (delta 6), reused 16 (delta 6), pack-reused 3293 Receiving objects: 100% (3313/3313), 7.33 MiB | 2.65 MiB/s, done. Resolving deltas: 100% (1321/1321), done. [root@localhost tpch]#

2、tidb的库中创建8张表

进入下载到的tidb-bench中,再次进入到tpch

[root@localhost tpch]# mysql -h192.168.30.51 -uroot -P4000 <dss.sql

生成tiflash的副本

ALTER TABLE customer SET TIFLASH REPLICA 1;
ALTER TABLE lineitem SET TIFLASH REPLICA 1;
ALTER TABLE nation SET TIFLASH REPLICA 1;
ALTER TABLE orders SET TIFLASH REPLICA 1;
ALTER TABLE part SET TIFLASH REPLICA 1;
ALTER TABLE partsupp SET TIFLASH REPLICA 1;
ALTER TABLE region SET TIFLASH REPLICA 1;
ALTER TABLE supplier SET TIFLASH REPLICA 1;

3、生成测试数据

[root@localhost ~]# cd /tidb/tpch/tidb-bench/tpch   #进入到tpch脚本的目录

[root@localhost tpch]# yum install gcc   #安装gcc

[root@localhost tpch]# make tbl   #构建生成tbl的数据,此时默认是生成1G数据
cd dbgen; make;
make[1]: Entering directory `/tidb/tpch/tidb-bench/tpch/dbgen'
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o build.o build.c
........等等显示的结果

[root@localhost tpch]# cd dbgen/
[root@localhost dbgen]# ll *.tbl    #此时默认生成的为1G的测试结果
-rw-r--r--. 1 root root  24346144 Dec  6 12:51 customer.tbl
-rw-r--r--. 1 root root 759863287 Dec  6 12:51 lineitem.tbl
-rw-r--r--. 1 root root      2224 Dec  6 12:51 nation.tbl
-rw-r--r--. 1 root root 171952161 Dec  6 12:51 orders.tbl
-rw-r--r--. 1 root root 118984616 Dec  6 12:51 partsupp.tbl
-rw-r--r--. 1 root root  24135125 Dec  6 12:51 part.tbl
-rw-r--r--. 1 root root       389 Dec  6 12:51 region.tbl
-rw-r--r--. 1 root root   1409184 Dec  6 12:51 supplier.tbl

删除1G的数据,重新生成10G的测试数据

[root@localhost dbgen]# rm -rf *.tbl
[root@localhost tpch]# cd dbgen && ./dbgen -s 10
TPC-H Population Generator (Version 2.17.0)
Copyright Transaction Processing Performance Council 1994 - 2010

此时生成完数据了,到dbgen目录下du -sh *.tbl查看生成的数据

4、导入数据

(1)首先进入到数据库内部,再次执行导入命令

[root@localhost ~]# mysql -h192.168.30.51 -uroot -p -P4000
MySQL [(none)]> use tpch;
#此时执行下面的语句
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/nation.tbl' INTO TABLE nation FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/region.tbl' INTO TABLE region FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/part.tbl' INTO TABLE part FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/supplier.tbl' INTO TABLE supplier FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/partsupp.tbl' INTO TABLE partsupp FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/customer.tbl' INTO TABLE customer FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/orders.tbl' INTO TABLE orders FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/lineitem.tbl' INTO TABLE lineitem FIELDS TERMINATED BY '|';

说明。再导入中出现报错如下ERROR 8004 (HY000): Transaction is too large, size: 104857637

MySQL [tpch]> load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/part.tbl' INTO TABLE part FIELDS TERMINATED BY '|';
ERROR 8004 (HY000): Transaction is too large, size: 104857637

解决方法:首先建议调大 topo.yaml 文件中的 txn-total-size-limit 值。若还是不行,则将 tidb_dml_batch_size 的值设置为 20000 来恢复升级前的行为。

第一步:
#cd /tidb  #创建tidb本地集群时创建的配置文件
第二步:
[root@localhost tidb]# vim topo.yaml
tikv_servers:下面增加 performance.txn-total-size-limit: 10737418240,请看此篇文章 https://www.zybuluo.com/llplmlyd/note/1737936 中的介绍使用
#######修改或的显示为
.........等等
tikv_servers:
 - host: 192.168.30.51
   port: 20160
   status_port: 20180
   config:
     server.labels: { host: "logic-host-1" }
     performance.txn-total-size-limit: 10737418240
 - host: 192.168.30.51
   port: 20161
   status_port: 20181
   config:
     server.labels: { host: "logic-host-2" }
     performance.txn-total-size-limit: 10737418240
 - host: 192.168.30.51
   port: 20162
   status_port: 20182
   config:
     server.labels: { host: "logic-host-3" }
     performance.txn-total-size-limit: 10737418240
tiflash_servers:
 - host: 192.168.30.51
........等等

第三步:
$ tiup cluster reload tidb_v640 -R tidb    #tidb_v640为cluster_name 
第四步:
MySQL [tpch]> set @@tidb_dml_batch_size=20000;
Query OK, 0 rows affected (0.00 sec)

执行完如上,再次使用load data去导入大表的数据,则会显示导入成功

MySQL [tpch]> load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/part.tbl' INTO TABLE part FIELDS TERMINATED BY '|';
Query OK, 2000000 rows affected (48.68 sec)
Records: 2000000  Deleted: 0  Skipped: 0  Warnings: 0

测试结果

注:创建表的SQL与查询的SQL请见下载后的工具包

[1]导入耗时

 

表名

行数

耗时

nation

25

0.24 sec

region

5

0.02 sec

part

2000000

48.68 sec

orders

15000000

8 min 14.55 sec

supplier

100000

48.10 sec

partsupp

8000000

5 min 18.83 sec

customer

1500000

1 min 19.35 sec

lineitem

59986052

58 min 23.35 sec

查询耗时
 

第一次

第二次

第三次

查询的结果

Q1

4.59

1.34

1.35

4 rows

Q2

17.85

12.75

12.45

100 rows

Q3

6.33

3.94

4.19

10 rows

Q4

0.75

0.78

0.78

5 rows

Q5

ERROR 1105 (HY000): rpc error: code = Unavailable desc = keepalive ping failed to receive ACK within timeout

Q6

12.26

0.36

0.34

1 rows

Q7

41.10

2.91

2.97

4 rows

Q8

54.85

17.86

17.77

2 rows

Q9

194.67

164.99

152.09

175 rows

Q10

22.33

21.29

21.25

20 rows

Q11

1.21

0.77

0.76

Empty set

Q12

9.08

1.00

1.02

2 rows

Q13

3.06

0.84

0.85

46 rows

Q14

2.11

1.84

1.72

1 rows

Q15

0.77

0.76

0.72

 

Q16

2.91

2.69

2.86

27838 rows

Q17

88.07

88.21

87.56

1 rows

Q18

3.99

2.93

2.90

84 rows

Q19

3.74

2.57

2.64

1

Q20

11.70

11.71

12.01

1746 rows

Q21

35.66

3.56

3.58

100 rows

Q22

0.58

0.43

0.43

4 rows

标签:rows,data,TIDB,tpch,tbl,测试,tidb,TPCH,root
From: https://www.cnblogs.com/syw20170419/p/16967596.html

相关文章

  • 安全测试之重置和水平越权
    水平越权水平越权指的是攻击者尝试访问与他拥有相同权限的用户的资源,怎么理解呢?比如某系统中有个人资料这个功能,A账号和B账号都可以访问这个功能,但是A账号的个人信息......
  • 安装单机部署TiDB
    1、下载并安装TiUPcurl--proto'=https'--tlsv1.2-sSfhttps://tiup-mirrors.pingcap.com/install.sh|sh2、声明全局环境变量注意看第一步执行完的内容,页面的......
  • 第五次测试 7段数码管绘制
    7段数码管绘制    请画出,系统时间。具体包括:年,月,日,小时,分,秒代码如下:#coding:utf-8#绘制七段数码管,显示当前时间importtimeimportturtleastt#绘制......
  • itop3568开发板Buildroot系统功能测试-系统启动
    烧写buildroot系统镜像,buildroot系统镜像在网盘资料“iTOP-3568开发板\01_【iTOP-RK3568开发板】基础资料\06_iTOP-RK3568开发板​​Linux​​......
  • mac下golang测试https
    1.自定义域名sudovi/etc/hosts增加自定义域名zhengzhihua.mac  保存退出   测试域名  2.生成证书脚本......
  • 白盒测试
     作者:一个人的天空 一般软件开发人员和测试人员对白盒测试和黑盒测试的感念都有一定的认识,但认为是编代码所做的测试是白盒测试,黑盒测试不用编写代码,这其实是一种误解。......
  • 软件测试有哪些常用的测试方法?
    软件测试是软件开发过程中重要组成部分,是用来确认一个程序的质量或者性能是否符合开发之前提出的一些要求。软件测试的目的有两方面,一方面是确认软件的质量,另一方面是......
  • 自动化测试高手课-学习笔记
    课程链接github链接Job框架1自动化测试我对自动化测试架构师的定义是,不仅仅是写代码让自动化测试跑起来,而且能够超脱于工具框架的层面,对测试需求和自动化ROI一起抽......
  • JAVA构造性能测试数据
    一、idea配置pom.xml文件1.打开idea编辑器,新建一个Maven项目,File-->New-->Project-->Maven,选择Maven,点击next。2.在Name编辑框中输入项目的名称,这里是dataProject,点......
  • 测试随笔
    博客园星耀寂夜https://www.cnblogs.com/montaro/我是用的这个https://github.com/esofar/cnblogs-theme-silenceDennis&&BNDonghttps://www.cnblogs.com/dennisdo......