TPC-DS性能测试

更新时间:2025-02-17 11:45:32

MaxCompute适用于TB、PBEB等各个数量级的数据查询场景,并在业界具有较大的性能优势,本文基于MaxCompute提供的公开数据集及测试工具,以大数据基准测试TPC-DS为例为您验证MaxCompute的性能。当前MaxCompute提供两种不同性能测试方式,方式一是基于全新MaxQA查询加速引擎的TPC-DS测试,方式二是基于MCQA引擎的TPC-DS测试。

准备工作

  1. 环境准备。

    • 在进行TPC-DS测试前,您需要先开通MaxCompute服务并创建项目。具体操作请参见创建项目

    • 方式一:开通MaxQA(MaxCompute查询加速2.0)。目前在公测阶段(请点击公测链接参加公测,各地域开启公测的时间计划请参考公测计划)。

    • 方式二:开通MCQA(MaxCompute查询加速1.0),面向未开启MaxQA公测的其他地域。

  2. 测试工具准备。

    为方便用户测试,MaxCompute提供了TPC-DS性能自动化测试工具,可帮助您快速完成TPC-DS测试并自动生成测试结果。

    重要

    目前测试工具仅支持在Linux环境使用,且需要安装1.7及以上版本的JDK。

    单击mc_tpcds_benchmark下载工具包附件,并在Linux服务器上执行以下命令进行解压。

    unzip mc_tpcds_benchmark.zip

    解压后的文件目录结构如下:

    .
    |_t1c7039e3-2a1d-451b-bfda-d14c49016243-tpc-ds-tool.zip
    |_config
    |_init_tools.sh
    |_load_table.sh
    |_logs
    |_odps_clt
    |_patches
    |_pt.sh
    |_queries_1
    |_queries_1.quality
    |_queries_10
    |_queries_100
    |_queries_1000
    |_queries_10000
    |_queries_100000
    |_querygen.sh
    |_results
    |_run_stream.sh
    |_run_stream.sh.offline
    |_sqls
    |_start_session_only.sh
    |_start_session.sql
    |_start_session.sql_tmp
    |_tools_file
    |_tt.sh
    |_v2.10.1rc3
  3. 测试数据集说明。

    MaxCompute提供公开数据集,您无需自行准备测试数据,所有数据均已存储于MaxCompute公开项目BIGDATA_PUBLIC_DATASET中,详情请参见公开数据集概述

    TPC-DS测试数据集分为10GB、100GB、1TB10TB四种规格,您可根据测试需求自行选择,详情如下:

    类别

    简介

    数据集名称

    Schema名称

    类别

    简介

    数据集名称

    Schema名称

    TPC-DS

    TPC-DS是一个面向决策支持的基准,它对决策支持系统的几个普遍适用的方面进行建模,包括查询和数据维护等,使大数据系统等新技术能够执行基准测试。

    • TPC-DS 10GB性能测试集

    • TPC-DS 100GB性能测试集

    • TPC-DS 1TB性能测试集

    • TPC-DS 10TB性能测试集

    • tpcds_10g

    • tpcds_100g

    • tpcds_1t

    • tpcds_10t

测试过程

修改测试工具配置文件

进入解压后的测试工具的mc_tpcds_benchmark目录,修改config文件。由于测试工具同时支持 MaxQA 和 MCQA 两种模式,二者在基础配置以外的配置上要做的修改稍有差异。

基础配置

配置项

说明

取值

配置项

说明

取值

ODPS_CLT_CMD

MaxCompute客户端可执行文件的绝对路径。

本工具包内提供的客户端在工作目录下的odps_clt,请修改对应配置,可参见使用本地客户端(odpscmd)连接

例如:/xxxxx/mc_tpcds_benchmark/odps_clt/bin/odpscmd

PROJECT

测试使用的MaxCompute Project。

例如:tpcds_test

SF

测试TPC-DS的数据规模。

单位是GB,1表示1GB,1000表示1T,可根据测试需求进行修改。

默认1000

差异配置-MCQA vs MaxQA模式

配置项

说明

MCQA取值

MaxQA取值

配置项

说明

MCQA取值

MaxQA取值

ODPS_CLT_CMD

MaxCompute客户端可执行文件的绝对路径。

本工具包内提供的客户端在工作目录下的odps_clt,请修改对应配置,可参见使用本地客户端(odpscmd)连接

例如:/xxxxx/mc_tpcds_benchmark/odps_clt/bin/odpscmd

例如:/xxxxx/mc_tpcds_benchmark/odps_clt/bin/odpscmd

PROJECT

测试使用的MaxCompute Project。

例如:tpcds_test

例如:tpcds_test

SF

测试TPC-DS的数据规模。

单位是GB,1表示1GB,1000表示1T,可根据测试需求进行修改。

默认1000,目前 MaxCompute 公共数据集中提供了 10G、100G、1T、10T 四种规模的数据。因此,SF可以设置为 10、100、1000 或 10000

默认1000,目前 MaxCompute 公共数据集中提供了 10G、100G、1T、10T 四种规模的数据。因此,SF可以设置为 10、100、1000 或 10000。

MODE

设置本次 benchmark 运行的模式

MCQA

MaxQA

MAXQA_QUOTA_NAME

测试使用的 MaxQA 交互式 Quota 组的名字,从 MaxCompute 控制台的配额管理页面可以查到,特别注意需要填写的是 Quota 的别名(即用户自己取的名字)

N/A

例如:maxqa_test_quota

SQL_FLAGS

MaxCompute内置相关Flag参数,无需修改。

  • set odps.sql.session.result.cache.enable=false:关闭MCQA模式result cache,确保每个Query均独立执行。

  • set odps.sql.allow.cartesian=true:使SQL支持笛卡尔积计算。

  • set odps.sql.session.query.timeout=600:MCQA模式下Fuxi job超时时间。

  • set odps.sql.mcqa2.result.cache.enable=false:关闭MaxQA模式result cache,确保每个Query均独立执行。

  • set odps.sql.allow.cartesian=true:使SQL支持笛卡尔积计算。

执行测试

mc_tpcds_benchmark目录下执行以下命令,启动TPC-DS测试:

nohup sh pt.sh > pt.log 2>&1 &

执行成功后,在mc_tpcds_benchmark目录下自动生成pt.log日志文件,可执行以下命令查看任务详细日志:

tail -f pt.log

查看MaxCompute任务执行情况

您可在MaxCompute控制台的工作区>作业运维页面查看任务执行情况,详情请参见作业运维

image

测试结果查看

任务执行成功后,在mc_tpcds_benchmark目录下自动生成测试执行结果文件console_test_result.csv,可查看本次测试执行结果,其中包含测试总耗时、每个Query执行时间及对应Logview等信息。

  • 本页导读 (1)
  • 准备工作
  • 测试过程
  • 修改测试工具配置文件
  • 基础配置
  • 差异配置-MCQA vs MaxQA模式
  • 执行测试
  • 查看MaxCompute任务执行情况
  • 测试结果查看