TPC-DS Benchmark

云数据库 SelectDB 版旨在提供卓越的性能和便捷的数据分析服务,在宽表聚合、多表关联以及高并发点查等场景下均具有优异的性能表现。本文将为您介绍,在Linux环境下,如何使用TPC-DS标准测试SelectDB复杂查询的性能以及测试结果。

概述

TPC-DS(Transaction Processing Performance Council Decision Support Benchmark)是由TPC(Transaction Processing Performance Council)组织开发的,以决策支持为重点的基准测试,旨在评估不同系统在处理复杂查询和大规模数据分析方面的性能。

TPC-DS的设计目标是模拟现实业务中的复杂决策。它通过一系列复杂的查询和数据操作来测试系统的性能,所涉及的查询类型包括联接、聚合、排序、过滤、子查询等。这些查询涵盖了从简单到复杂的各种场景,例如如报表生成、数据挖掘、OLAP(联机分析处理)等。

前提条件

SelectDB实例版本大于等于4.0。

准备工作

  • 确保将安装TPC-DS测试工具的目标服务器与SelectDB实例网络互通:

    1. SelectDB实例申请公网地址。具体操作,请参见申请和释放公网地址

      如果您将要安装TPC-DS测试工具的目标服务器为阿里云服务器,且该服务器与云数据库 SelectDB 版实例位于同一VPC下,跳过此步骤。

    2. 将要安装TPC-DS测试工具的目标服务器的IP地址添加至云数据库 SelectDB 版的白名单。具体操作,请参见设置白名单

  • 确保您将要TPC-DS测试工具的目标服务器已安装了MySQL服务。

    如果您还未安装MySQL服务,可使用以下指令,安装MySQL服务。

    yum install mysql
  • 准备目标库。

    如果您已有目标库,跳过此操作。

    1. 连接实例,具体操作,请参见通过DMS连接云数据库SelectDB版实例

    2. 建库。建库语句如下:

      CREATE DATABASE <db_name>;

测试环境

  • SelectDB数据库环境。

    环境配置项

    配置说明

    地域和可用区

    华东1(杭州)地域,可用区K。

    规格

    64512 GB

    磁盘

    800 GB高性能云硬盘

    云数据库 SelectDB 版内核版本

    4.0.3

  • 客户端环境。

    环境配置项

    配置说明

    下载测试工具的设备

    云服务器ECS实例,详情请参见创建实例

    地域和可用区

    华东1(杭州)地域

    实例规格

    ecs.g7.2xlarge

    操作系统

    Ubuntu 22.04.1 LTS

    网络

    云数据库 SelectDB 版版实例为相同专有网络(VPC)。

测试数据集

说明

TPC-DS的标准测试数据集通常和实际业务场景差距较大,并且部分测试会针对测试数据集进行参数调优。所以标准测试数据集的测试结果仅能反映数据库在特定场景下的性能表现。建议您使用实际业务数据进行进一步的测试。

此次测试TPC-DS会生成100 GB1000 GB的数据,并将其导入SelectDB,以进行SelectDB的性能测试。以下是关于测试数据集为1000 GB数据表的相关说明。

TPC-DS表名

行数

customer_demographics

1,920,800

reason

65

warehouse

20

date_dim

73,049

catalog_sales

1,439,980,416

call_center

42

inventory

783,000,000

catalog_returns

143,996,756

household_demographics

7,200

customer_address

6,000,000

income_band

20

catalog_page

30,000

item

300,000

web_returns

71,997,522

web_site

54

promotion

1,500

web_sales

720,000,376

store

1,002

web_page

3,000

time_dim

86,400

store_returns

287,999,764

store_sales

2,879,987,999

ship_mode

20

customer

12,000,000

操作步骤

步骤一:安装TPC-DS测试工具

  1. 下载瑶池测试工具

    wegt https://selectdb-customers-tools-bj.oss-cn-beijing.aliyuncs.com/yaochi_performance_tool.tar.gz
  2. 解压工具文件。

    tar -zxvf yaochi_performance_tool.tar.gz
  3. 在测试工具安装目录yaochi_performance_tool/tpcds-tools/bin/下,执行以下脚本以下载并编译tpcds-tools工具。

    bash build-tpcds-tools.sh

步骤二:生成TPC-DS测试集

在测试工具安装目录yaochi_performance_tool/tpcds-tools/bin/下,执行下脚本以生成TPC-DS数据集。

bash gen-tpcds-data.sh -s 1000

测试集数据会保存在tpcds-data目录下以.dat为后缀的文件中。

步骤三:使用脚本为SelectDB实例创建TPC-DS测试表

  1. 配置SelectDB实例信息。

    在执行建表脚本前,需要在doris-cluster.conf文件中,配置SelectDB实例的相关信息。该文件位于测试工具安装目录yaochi_performance_tool/tpcds-tools/conf/下,具体参数信息如下。

    参数名称

    参数描述

    FE_HOST

    SelectDB实例的访问地址。

    您可以从SelectDB控制台的实例详情中的网络信息中获取实例的VPC地址或公网地址。

    FE_HTTP_PORT

    SelectDB实例的HTTP协议端口。

    您可以从SelectDB控制台的实例详情中的网络信息中获取实例的HTTP协议端口。

    FE_QUERY_PORT

    您可以从SelectDB控制台的实例详情中的网络信息中获取实例的MySQL协议端口

    USER

    SelectDB实例账号。

    创建SelectDB实例后,系统会默认为您创建admin账号。

    PASSWORD

    SelectDB实例账号的密码。

    如果您的USER配置的是admin账号,但您忘记了此账号的密码,您可以在控制台上重置账号密码。

    DB

    SelectDB实例中待导入数据的库名。

  2. 建表 。

    在测试工具安装目录yaochi_performance_tool/tpcds-tools/bin/下,执行以下脚本,创建用以测试的表。脚本执行完成后,SelectDB的目标库中,会生成上述测试数据集中的表。

    bash create-tpcds-tables.sh -s 1000

步骤四:导入数据至SelectDB

在测试工具安装目录yaochi_performance_tool/tpcds-tools/bin/下,执行以下脚本,完成TPC-DS测试集所有数据的导入至SelectDB

bash load-tpcds-data.sh

步骤五:测试查询性能

您可以执行TPC-DS测试SQL的相关脚本,批量执行测试集的SQL,具体操作如下:

在测试工具安装目录yaochi_performance_tool/tpcds-tools/bin/下,执行以下脚本。

bash run-tpcds-queries.sh -s 1000

脚本执行完毕后,控制台窗口将显示测试集中每个SQLSelectDB中的性能情况。具体测试结果,请参见测试结果

您也可以对SelectDB执行某个SQL的性能进行测试,具体操作如下:

说明

TPCDS-Query-SQL中的SQL也是上述通过脚本批量测试中执行的SQL。

测试结果

以下为TPC-DS 100 GB1000 GB的测试结果。

Query

TPC-DS 100GB(s)

TPC-DS 1000GB(s)

Q1

0.19

1.01

Q2

1.12

8.54

Q3

0.12

0.65

Q4

2.15

21.06

Q5

0.29

1.17

Q6

0.13

0.33

Q7

0.21

1.11

Q8

0.14

0.55

Q9

1.56

13.48

Q10

0.2

0.71

Q11

1.26

12.44

Q12

0.08

0.19

Q13

0.25

1.27

Q14

1.64

12.85

Q15

0.11

0.73

Q16

0.76

0.68

Q17

0.37

1.69

Q18

0.22

1.17

Q19

0.11

0.41

Q20

0.09

0.23

Q21

0.07

0.12

Q22

2.25

4.18

Q23

3.33

39.14

Q24

0.71

9.71

Q25

0.32

1.05

Q26

0.13

0.41

Q27

0.2

1.03

Q28

1.32

12.02

Q29

0.31

1.35

Q30

0.12

0.48

Q31

0.47

4.91

Q32

0.05

0.1

Q33

0.27

0.75

Q34

0.34

1.44

Q35

0.42

2.36

Q36

0.61

0.91

Q37

0.06

0.13

Q38

1.43

11.23

Q39

0.34

0.6

Q40

0.08

0.19

Q41

0.04

0.04

Q42

0.08

0.19

Q43

0.32

2.14

Q44

0.54

3.99

Q45

0.1

0.55

Q46

0.41

4.62

Q47

0.82

6.13

Q48

0.24

1.03

Q49

0.3

1.23

Q50

0.26

1.93

Q51

4.01

11.87

Q52

0.07

0.22

Q53

0.12

0.59

Q54

0.34

2.6

Q55

0.07

0.22

Q56

0.23

0.61

Q57

0.59

3.38

Q58

0.21

0.48

Q59

1.69

15.65

Q60

0.24

0.74

Q61

0.12

1

Q62

0.26

1.98

Q63

0.12

0.46

Q64

0.55

4.91

Q65

1.33

10.39

Q66

0.21

0.86

Q67

6.87

59.04

Q68

0.37

4.44

Q69

0.23

0.68

Q70

0.78

5.54

Q71

0.22

0.74

Q72

2.66

8.81

Q73

0.24

1.27

Q74

1.57

10.5

Q75

1.13

8.73

Q76

0.35

4.86

Q77

0.25

0.74

Q78

2.89

31.02

Q79

0.39

8.42

Q80

0.34

1.07

Q81

0.15

0.84

Q82

0.09

0.72

Q83

0.14

0.3

Q84

0.07

0.22

Q85

0.25

0.45

Q86

0.2

1.36

Q87

1.55

13.14

Q88

1.5

12.36

Q89

0.17

0.88

Q90

0.11

0.41

Q91

0.1

0.16

Q92

0.04

0.07

Q93

0.31

5.4

Q94

0.34

0.57

Q95

0.21

0.8

Q96

0.2

1.41

Q97

1.26

13.26

Q98

0.16

0.43

Q99

0.48

4.13