Run a TPC-DS benchmark against MaxCompute using public datasets and the automated test tool. TPC-DS is an industry-standard decision support benchmark covering 99 queries modeled after real business questions — catalog sales analysis, customer segmentation, and supply chain reporting — across store, catalog, and web sales channels. The results let you evaluate query performance at scale before committing to a production workload.
MaxCompute supports two query acceleration engines for this test:
-
MaxQA (MaxCompute Query Acceleration 2.0) — currently in public preview
-
MCQA (MaxCompute Query Acceleration 1.0) — for regions where MaxQA public preview is not yet available
Prerequisites
Before you begin, ensure that you have:
-
A MaxCompute project. See Create a project.
-
One of the following query acceleration engines activated with a subscription specification:
-
MaxQA: See Overview of query acceleration MaxQA (Beta). After activation, create an interactive Quota group.
-
MCQA: See MaxCompute Query Acceleration.
-
-
A Linux machine with Java Development Kit (JDK) 1.7 or later installed.
Set up the test tool
The mc_tpcds_benchmark tool automates the full TPC-DS run and generates a results file when it completes.
-
Download mc_tpcds_benchmark.zip to your Linux machine.
-
Decompress the package:
unzip mc_tpcds_benchmark.zipThe
mc_tpcds_benchmarkdirectory contains the following files:. |_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
Choose a dataset
MaxCompute provides public TPC-DS datasets in four sizes. All datasets are stored in the public project BIGDATA_PUBLIC_DATASET. See Overview of public datasets for access instructions.
| Dataset name | Schema name | Data size |
|---|---|---|
| TPC-DS 10-GB performance test dataset | tpcds_10g |
10 GB |
| TPC-DS 100-GB performance test dataset | tpcds_100g |
100 GB |
| TPC-DS 1-TB performance test dataset | tpcds_1t |
1 TB |
| TPC-DS 10-TB performance test dataset | tpcds_10t |
10 TB |
Configure the test
Open the config file in the mc_tpcds_benchmark directory and update the following parameters.
Basic configuration
These parameters apply to both MaxQA and MCQA modes.
| Parameter | Description | Example value |
|---|---|---|
ODPS_CLT_CMD |
Absolute path to the odpscmd client executable. The client is included in the odps_clt subdirectory. See Connect to MaxCompute by using the local client (odpscmd). |
/xxxxx/mc_tpcds_benchmark/odps_clt/bin/odpscmd |
PROJECT |
The MaxCompute project to use for the test. | tpcds_test |
SF |
Scale Factor — the dataset size in GB. Set this to match the dataset you chose: 10, 100, 1000 (1 TB), or 10000 (10 TB). |
1000 |
Mode-specific configuration
The config file also contains settings that differ between MaxQA and MCQA modes.
| Parameter | Description | MCQA value | MaxQA value |
|---|---|---|---|
MODE |
The query acceleration engine to use. | MCQA |
MaxQA |
MAXQA_QUOTA_NAME |
The alias of the MaxQA interactive Quota group. Find it on the quota management page of the MaxCompute console. | N/A | maxqa_test_quota |
SQL_FLAGS |
Built-in SQL flags — do not modify. See descriptions below. | See MCQA flags | See MaxQA flags |
MCQA SQL flags:
| Flag | Purpose |
|---|---|
set odps.sql.session.result.cache.enable=false |
Disables the result cache so each query runs independently. |
set odps.sql.allow.cartesian=true |
Enables Cartesian product support. |
set odps.sql.session.query.timeout=600 |
Sets the Fuxi job timeout (seconds). |
MaxQA SQL flags:
| Flag | Purpose |
|---|---|
set odps.sql.mcqa2.result.cache.enable=false |
Disables the result cache so each query runs independently. |
set odps.sql.allow.cartesian=true |
Enables Cartesian product support. |
Run the test
From the mc_tpcds_benchmark directory, start the test in the background:
nohup sh pt.sh > pt.log 2>&1 &
The command writes a log to pt.log. To follow the progress in real time:
tail -f pt.log
Monitor job status
While the test is running, check job status in the MaxCompute console:
-
Log in to the MaxCompute console.
-
In the upper-left corner, switch to your target region.
-
In the left navigation pane, go to Workspace > Jobs.
-
On the Job Management page, find your test jobs and check their execution status.
-
To view detailed execution logs, click Actions > LogView for any job.
For more information, see Manage jobs.
View test results
After all queries complete, a results file is automatically saved to the mc_tpcds_benchmark directory:
console_test_result.csv
The file contains:
-
Total time consumed — the overall time for the test run
-
Execution time per query — how long each individual query took
-
LogView links — links to the detailed job logs for each query