知识库 : UAP数据平台性能基准测试报告-OLAP引擎

Edit Document

数据平台性能基准测试报告

Version 2.1

OLAP引擎

 

版权

© 20 1 4 用友集团版权所有。

未经用友集团的书面许可,本发版说明任何整体或部分的内容不得被复制、复印、翻译或缩减以用于任何目的。本发版说明的内容在未经通知的情形下可能会发生改变,敬请留意。请注意:本发版说明的内容并不代表用友软件所做的承诺。

目录

 

版权

目录

1               基准环境

1.1               硬件环境

1.2               拓扑结构

1.3               软件环境

2               测试场景

2.1               测试数据

2.2               测试模型

2.3               环境参数

2.4               基准指标

3               数据

4               附录

1         基准环境

1.1        硬件环境

 

应用服务器(虚拟机)

数据库服务器(虚拟机)

IP

20.10.80.15

20.10.80.3

操作系统

Microsoft Windows 2003 Whistler Server 32-bit (5.2)

Microsoft Windows 2003 Whistler Server 32-bit (5.2)

CPU

Intel QEMU Virtual CPU version (cpu64-rhel6) (1995 Mhz, 8 Socket, 1 Cores Per Socket)

Intel QEMU Virtual CPU version (cpu64-rhel6) (1995 Mhz, 8 Socket, 1 Cores Per Socket)

内存

32G( 其中 JDK 最大内存 1G)

32G

硬盘带宽

100G

100G

网络

100Mbps

100Mbps

 

1.2        拓扑结构

 

 

 

1.3        软件环境

操作系统,数据库,中间件, jdk , uap runner 版本等依赖的软件环境

名称

值

应用服务器操作系统

Microsoft Windows 2003 Whistler Server 32-bit (5.2)

数据库服务器

Microsoft Windows 2003 Whistler Server 32-bit (5.2)

JDK 版本

1.6

UAPRUNNER 版本

2.1.0

NMC 版本

6.5.0 (在 UAP home 根目录下)

环境地址

htt p://20.10.80.15:80

登录用户

dev1/ae1234

design 数据源信息

ae_design/1@20.10.130.235:1521/ORCL

dw 数据源信息

pi _dw_1g/1@20.10.80.3:1521/aepidw

 

2         测试场景

2.1        测试数据

TPCH 1G 数据

表名

记录数

复杂度情况

LINEITEM

6 , 001 , 215

复杂

CUSTOMER

150 , 000

中等

SUPPLIER

10 , 000

中等

PART

200 , 000

中等

PARTSUPP

800 , 000

中等

ORDERS

1 , 500 , 000

复杂

REGION

5

简单

NATION

25

简单

BI_DIM_TIME_21331

8 , 308

简单

 

2.2        测试模型

                分析主题: items

 

 

 

 

 

 

分析主题: orders

 

分析主题: partsupp

 

 

 

 

 

 

 

 

 

 

 

2.3        环境参数

单人执行方案:

每个测试用例执行 100 次,记录用例执行时间和对应的数据库执行时间。

在单独执行和并发执行前,先执行一次查询,保证函数定义等加载到内存中。

 

并发执行方案:

  总用户数: 18 人

用户上线策略:整体,每隔 10 秒上线 1 人

  用户执行策略:按时间(分钟 / 整体),执行 60 分钟

2.4        基准指标

单人执行方案:

用例执行时间的最大值、最小值、平均值。

对应的数据库执行时间的最大值、最小值、平均值。

 

并发执行方案:

指标名称

说明

成功事务总数

通过 UAPRUNNER

失败事务总数

通过 UAPRUNNER

每秒通过事务数

通过 UAPRUNNER ,最小值、最大值、平均值

事务平均响应时间

通过 UAPRUNNER ,最小值、最大值、平均值

资源利用率

包括 CPU 利用率,内存利用率

数据库连接次数最多的远程调用

数据库连接数和执行 SQL 数可不对外发布,作为每一版的性能评定标准

SQL 数量最多的远程调用

 

 

3         数据

单人环境测试数据:

 

执行时间(s)

数据库执行时间(s)

 

复杂度

最小

最大

平均

最小

最大

平均

场景一:查询

轻

0.97

2.51

1.65

0.705

7.017

1.775

场景二:钻取

中

1.92

2.65

2.27

1.314

7.5

1.82

场景三:排序

中

9.84

10.96

10.44

13.657

18.593

15.013

场景四:时序分析(环比)

中

3.39

5.20

4.54

2.361

10.5

5.781

场景四:时序分析(同比)

中

3.31

5.63

4.34

2.406

12.608

5.608

场景五:切换指标

中

0.85

1.46

1.11

0.732

4.873

1.123

场景六:切换维度

中

2.56

4.46

3.87

2.705

7.483

4.131

场景七:结构化占比(父级占比)

中

0.94

1.62

1.23

0.782

8.952

1.137

场景八:多个透视区域查询

重

15.64

17.62

16.31

24.313

63.063

46.767

 

并发方案测试数据:

1 )资源利用率

 

 

2 )每秒通过事务数

 

3 )事务平均响应时间

 

4 )事务执行次数

其中 , 成功事务总数: 362 , 失败事务总数: 0

5 ) SQL 数量最多的远程调用 Top10

6 )数据库连接次数最多的远程调用 Top10

4         附录

( 基准测试配置文件的 git 地址,数据文件的备份目录 )

a)      备份文件:

  1. 应用服务器和数据库服务器的 虚拟机文件 。
  2. design 数据源的 dump 文件 , dw 数据库的数据通过 tpch 生成。
  3. 导出的数据仓库元数据、语义模型、分析主题、透视表的定义(通过 design 的 dump 文件可获得)。
  4. 数据文件备份目录: \\20.2.80.19\olap 性能基准测试文件备份

 

b)     Tpch 数据生成步骤:

  1. 数据生成过程

1)        在官方网站 (http://www.tpc.org/tpch/spec/tpch_2_17_0.zip) 下载数据生成工具包 tpch_2_17_0.zip

2)        配置 / tpch_2_17_0/dbgen/ 下面的 makefile 文件,需要配置的位置如下 CC= gcc 、 DATABASE= ORACLE 、 MACHINE = LINUX 、 WORKLOAD = TPCH ,参数依照具体的运行环境和需求而定

3)        在 / tpch_2_17_0/dbgen/ 目录下使用 make 指令对数据生成程序进行编译(如果 makefile 有后缀 .suite 需要重命名成无后缀的文件名),编译后会多出一些连接文件

4)        使用 ./dbgen – s 1 进行数据的生成,其中 1 代表生成 1G 的数据量,其中数据量的取值只能取 1, 10, 100, 300, 1000, 3000, 10000, 30000, 100000 其中的一个,执行成功后,在 / tpch_2_17_0/dbgen/ 目录下会有 8 个表的对应的 8 个以 tbl 为后缀的文件

  1. 建立库表结构 ( 使用如下 sql 创建相关的 8 张表结构 )

CREATE TABLE NATION  ( N_NATIONKEY  INTEGER NOT NULL,

                            N_NAME       CHAR(25) NOT NULL,

                            N_REGIONKEY  INTEGER NOT NULL,

                            N_COMMENT    VARCHAR(152));

CREATE TABLE REGION  ( R_REGIONKEY  INTEGER NOT NULL,

                            R_NAME       CHAR(25) NOT NULL,

                            R_COMMENT    VARCHAR(152));

CREATE TABLE PART  ( P_PARTKEY     INTEGER NOT NULL,

                          P_NAME        VARCHAR(55) NOT NULL,

                          P_MFGR        CHAR(25) NOT NULL,

                          P_BRAND       CHAR(10) NOT NULL,

                          P_TYPE        VARCHAR(25) NOT NULL,

                          P_SIZE        INTEGER NOT NULL,

                          P_CONTAINER   CHAR(10) NOT NULL,

                          P_RETAILPRICE DECIMAL(15,2) NOT NULL,

                          P_COMMENT     VARCHAR(23) NOT NULL );

CREATE TABLE SUPPLIER ( S_SUPPKEY     INTEGER NOT NULL,

                             S_NAME        CHAR(25) NOT NULL,

                             S_ADDRESS     VARCHAR(40) NOT NULL,

                             S_NATIONKEY   INTEGER NOT NULL,

                             S_PHONE       CHAR(15) NOT NULL,

                             S_ACCTBAL     DECIMAL(15,2) NOT NULL,

                             S_COMMENT     VARCHAR(101) NOT NULL);

CREATE TABLE PARTSUPP ( PS_PARTKEY     INTEGER NOT NULL,

                             PS_SUPPKEY     INTEGER NOT NULL,

                             PS_AVAILQTY    INTEGER NOT NULL,

                             PS_SUPPLYCOST  DECIMAL(15,2)  NOT NULL,

                             PS_COMMENT     VARCHAR(199) NOT NULL );

CREATE TABLE CUSTOMER ( C_CUSTKEY     INTEGER NOT NULL,

                             C_NAME        VARCHAR(25) NOT NULL,

                             C_ADDRESS     VARCHAR(40) NOT NULL,

                             C_NATIONKEY   INTEGER NOT NULL,

                             C_PHONE       CHAR(15) NOT NULL,

                             C_ACCTBAL     DECIMAL(15,2)   NOT NULL,

                             C_MKTSEGMENT  CHAR(10) NOT NULL,

                             C_COMMENT     VARCHAR(117) NOT NULL);

CREATE TABLE ORDERS  ( O_ORDERKEY       INTEGER NOT NULL,

                           O_CUSTKEY        INTEGER NOT NULL,

                           O_ORDERSTATUS    CHAR(1) NOT NULL,

                           O_TOTALPRICE     DECIMAL(15,2) NOT NULL,

                           O_ORDERDATE      CHAR(10) NOT NULL,

                           O_ORDERPRIORITY  CHAR(15) NOT NULL, 

                           O_CLERK          CHAR(15) NOT NULL,

                           O_SHIPPRIORITY   INTEGER NOT NULL,

                           O_COMMENT        VARCHAR(79) NOT NULL);

CREATE TABLE LINEITEM ( L_ORDERKEY    INTEGER NOT NULL,

                             L_PARTKEY     INTEGER NOT NULL,

                             L_SUPPKEY     INTEGER NOT NULL,

                             L_LINENUMBER  INTEGER NOT NULL,

                             L_QUANTITY    DECIMAL(15,2) NOT NULL,

                             L_EXTENDEDPRICE  DECIMAL(15,2) NOT NULL,

                             L_DISCOUNT    DECIMAL(15,2) NOT NULL,

                             L_TAX         DECIMAL(15,2) NOT NULL,

                             L_RETURNFLAG  CHAR(1) NOT NULL,

                             L_LINESTATUS  CHAR(1) NOT NULL,

                             L_SHIPDATE    CHAR(10) NOT NULL,

                             L_COMMITDATE  CHAR(10) NOT NULL,

                             L_RECEIPTDATE CHAR(10) NOT NULL,

                             L_SHIPINSTRUCT CHAR(25) NOT NULL,

                             L_SHIPMODE     CHAR(10) NOT NULL,

                             L_COMMENT      VARCHAR(44) NOT NULL);

 

 

 

 

  1. 导入数据

1)        使用 sqlldr name / password @ ip : port / service control= /catalog1 /loa d_control .ctl 进行表的数据导入过程,其中需要控制文件对数据的导入进行控制,控制文件的样例如下

load data

infile '/catalog2/customer.tbl'

append into table CUSTOMER

fields terminated by '|'

(               C_CUSTKEY     ,

        C_NAME        ,

        C_ADDRESS     ,

        C_NATIONKEY   ,

        C_PHONE       ,

        C_ACCTBAL     ,

        C_MKTSEGMENT  ,

        C_COMMENT)

  1. 建立主键、外键、索引

1)        建立主键

ALTER TABLE PART ADD PRIMARY KEY (P_PARTKEY);

ALTER TABLE SUPPLIER ADD PRIMARY KEY (S_SUPPKEY);

ALTER TABLE PARTSUPP ADD PRIMARY KEY (PS_PARTKEY, PS_SUPPKEY);

ALTER TABLE CUSTOMER ADD PRIMARY KEY (C_CUSTKEY);

ALTER TABLE ORDERS ADD PRIMARY KEY (O_ORDERKEY);

ALTER TABLE LINEITEM ADD PRIMARY KEY (L_ORDERKEY, L_LINENUMBER);

ALTER TABLE NATION ADD PRIMARY KEY (N_NATIONKEY);

ALTER TABLE REGION ADD PRIMARY KEY (R_REGIONKEY);

2)        建立外键

ALTER TABLE SUPPLIER ADD CONSTRAINT FK_SUPPLIER_1 FOREIGN KEY (S_NATIONKEY) REFERENCES NATION(N_NATIONKEY);

ALTER TABLE PARTSUPP ADD CONSTRAINT FK_PARTSUPP_1 FOREIGN KEY (PS_PARTKEY) REFERENCES PART(P_PARTKEY);

ALTER TABLE PARTSUPP ADD CONSTRAINT FK_PARTSUPP_2 FOREIGN KEY (PS_SUPPKEY) REFERENCES SUPPLIER(S_SUPPKEY);

ALTER TABLE CUSTOMER ADD CONSTRAINT FK_CUSTOMER_1 FOREIGN KEY (C_NATIONKEY) REFERENCES NATION(N_NATIONKEY);

ALTER TABLE ORDERS ADD CONSTRAINT FK_ORDERS_1 FOREIGN KEY (O_CUSTKEY) REFERENCES CUSTOMER(C_CUSTKEY);

ALTER TABLE LINEITEM ADD CONSTRAINT FK_LINEITEM_1 FOREIGN KEY (L_ORDERKEY) REFERENCES ORDERS(O_ORDERKEY);

ALTER TABLE LINEITEM ADD CONSTRAINT FK_LINEITEM_2 FOREIGN KEY (L_PARTKEY,L_SUPPKEY) REFERENCES PARTSUPP(PS_PARTKEY,PS_SUPPKEY);

ALTER TABLE NATION ADD CONSTRAINT FK_NATION_1 FOREIGN KEY (N_REGIONKEY) REFERENCES REGION(R_REGIONKEY);

 

 

 

3)        建立索引

CREATE INDEX IDX_SUPPLIER_NATION_KEY ON SUPPLIER (S_NATIONKEY);

CREATE INDEX IDX_PARTSUPP_PARTKEY ON PARTSUPP (PS_PARTKEY);

CREATE INDEX IDX_PARTSUPP_SUPPKEY ON PARTSUPP (PS_SUPPKEY);

CREATE INDEX IDX_CUSTOMER_NATIONKEY ON CUSTOMER (C_NATIONKEY);

CREATE INDEX IDX_ORDERS_CUSTKEY ON ORDERS (O_CUSTKEY);

CREATE INDEX IDX_LINEITEM_ORDERKEY ON LINEITEM (L_ORDERKEY);

CREATE INDEX IDX_LINEITEM_PART_SUPP ON LINEITEM (L_PARTKEY,L_SUPPKEY);

CREATE INDEX IDX_NATION_REGIONKEY ON NATION (N_REGIONKEY);

-- aditional indexes

CREATE INDEX IDX_LINEITEM_SHIPDATE ON LINEITEM (L_SHIPDATE, L_DISCOUNT, L_QUANTITY);

CREATE INDEX IDX_ORDERS_ORDERDATE ON ORDERS (O_ORDERDATE);

Attachments:

UAP数据平台性能基准测试报告-OLAP引擎.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
UAP数据平台性能基准测试报告-OLAP引擎_forupload.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
UAP数据平台性能基准测试报告-OLAP引擎_forupload.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
UAP数据平台性能基准测试报告-OLAP引擎_forupload.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
UAP数据平台性能基准测试报告-OLAP引擎_forupload.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)