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 |