知识库 : 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)