TPC-DS
TPC-DS (Transaction Processing Performance Council - Decision Support) is a benchmark for evaluating the performance of decision support systems and analytical databases. It simulates real-world big data scenarios typical of the data centres of retail organisations and other large companies.
Test parameters
Benchmark |
TPC-DS |
Test type |
static test (without ETL) |
Scaling factor |
|
Query |
random |
Parameters |
random |
Number of threads |
|
Time |
1 hour |
Examples of test queries
See examples of test SQL-queries
-- start Q1
WITH customer_total_return
AS (SELECT sr_customer_sk AS ctr_customer_sk,
sr_store_sk AS ctr_store_sk,
Sum(sr_return_amt) AS ctr_total_return
FROM s1_store_returns,
s1_date_dim
WHERE sr_returned_date_sk = d_date_sk
AND d_year = 2001
GROUP BY sr_customer_sk,
sr_store_sk)
SELECT c_customer_id
FROM customer_total_return ctr1,
s1_store,
s1_customer
WHERE ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2
FROM customer_total_return ctr2
WHERE ctr1.ctr_store_sk = ctr2.ctr_store_sk)
AND s_store_sk = ctr1.ctr_store_sk
AND s_state = 'TN'
AND ctr1.ctr_customer_sk = c_customer_sk
ORDER BY c_customer_id
LIMIT 100;
-- start Q2
WITH wscs
AS (SELECT sold_date_sk,
sales_price
FROM (SELECT ws_sold_date_sk sold_date_sk,
ws_ext_sales_price sales_price
FROM s1_web_sales)
UNION ALL
(SELECT cs_sold_date_sk sold_date_sk,
cs_ext_sales_price sales_price
FROM s1_catalog_sales)),
wswscs
AS (SELECT d_week_seq,
Sum(CASE
WHEN ( d_day_name = 'Sunday' ) THEN sales_price
ELSE NULL
END) sun_sales,
Sum(CASE
WHEN ( d_day_name = 'Monday' ) THEN sales_price
ELSE NULL
END) mon_sales,
Sum(CASE
WHEN ( d_day_name = 'Tuesday' ) THEN sales_price
ELSE NULL
END) tue_sales,
Sum(CASE
WHEN ( d_day_name = 'Wednesday' ) THEN sales_price
ELSE NULL
END) wed_sales,
Sum(CASE
WHEN ( d_day_name = 'Thursday' ) THEN sales_price
ELSE NULL
END) thu_sales,
Sum(CASE
WHEN ( d_day_name = 'Friday' ) THEN sales_price
ELSE NULL
END) fri_sales,
Sum(CASE
WHEN ( d_day_name = 'Saturday' ) THEN sales_price
ELSE NULL
END) sat_sales
FROM wscs,
s1_date_dim
WHERE d_date_sk = sold_date_sk
GROUP BY d_week_seq)
SELECT d_week_seq1,
Round(sun_sales1 / sun_sales2, 2),
Round(mon_sales1 / mon_sales2, 2),
Round(tue_sales1 / tue_sales2, 2),
Round(wed_sales1 / wed_sales2, 2),
Round(thu_sales1 / thu_sales2, 2),
Round(fri_sales1 / fri_sales2, 2),
Round(sat_sales1 / sat_sales2, 2)
FROM (SELECT wswscs.d_week_seq d_week_seq1,
sun_sales sun_sales1,
mon_sales mon_sales1,
tue_sales tue_sales1,
wed_sales wed_sales1,
thu_sales thu_sales1,
fri_sales fri_sales1,
sat_sales sat_sales1
FROM wswscs,
s1_date_dim
WHERE s1_date_dim.d_week_seq = wswscs.d_week_seq
AND d_year = 1998) y,
(SELECT wswscs.d_week_seq d_week_seq2,
sun_sales sun_sales2,
mon_sales mon_sales2,
tue_sales tue_sales2,
wed_sales wed_sales2,
thu_sales thu_sales2,
fri_sales fri_sales2,
sat_sales sat_sales2
FROM wswscs,
s1_date_dim
WHERE s1_date_dim.d_week_seq = wswscs.d_week_seq
AND d_year = 1998 + 1) z
WHERE d_week_seq1 = d_week_seq2 - 53
ORDER BY d_week_seq1;
Results
Number of threads | sf=100 ,
requests per hour |
sf=1000 ,
requests per hour |
---|---|---|
|
426 |
86 |
|
5199 |
773 |
|
8284 |
1064 |
When going from a Scaling factor value of 100
to a value of 1000
the operability of Tengri is preserved, the performance decreases only 5-6 times, although the data volume increases by a factor of 10.
