TPC-H, сравнение с Greenplum

TPC-H (Transaction Processing Performance Council — High Performance) — это бенчмарк для оценки производительности систем поддержки принятия решений и хранилищ данных. Он включает в себя набор бизнес-ориентированных аналитических запросов и параллельные модификации данных, моделирующие реальные сценарии использования таких систем.

Параметры теста

Бенчмарк

TPC-H

Scaling factor

100

Запрос

случайный Q1Q10

Параметры

случайные

Количество потоков

1, 5, 10, 20

Время

1 час

Примеры тестовых запросов

Посмотреть примеры тестовых SQL-запросов
--Q1. Pricing Summary Report Query
--inputs = [{"depth": random.choice(range(90))}]
select
      l_returnflag,
      l_linestatus,
      sum(l_quantity) as sum_qty,
      sum(l_extendedprice) as sum_base_price,
      sum(l_extendedprice * (1-l_discount)) as sum_disc_price,
      sum(l_extendedprice * (1-l_discount) * (1+l_tax)) as sum_charge,
      avg(l_quantity) as avg_qty,
      avg(l_extendedprice) as avg_price,
      avg(l_discount) as avg_disc,
      count(*) as count_order
from
      s1_lineitem
where
      l_shipdate <= (DATE '1998-12-01') - :depth * interval '1' day
group by
      l_returnflag,
      l_linestatus
order by
      l_returnflag,
      l_linestatus;


--Q2. Minimum Cost Supplier Query
--inputs.size = random.choice(range(50))
--inputs.type = random.choice(['TIN','NICKEL', 'BRASS', 'STEEL', 'COPPER'])
--inputs.region = random.choice(['AFRICA','AMERICA','ASIA','EUROPE','MIDDLE EAST'])
select s_acctbal,s_name,n_name,p_partkey,p_mfgr,s_address,s_phone,s_comment
from s1_part, s1_supplier,s1_partsupp,s1_nation,s1_region
where p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and p_size = :size
and p_type like '%' || :type
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = :region
and ps_supplycost = (
    Select min(ps_supplycost)
    from s1_partsupp, s1_supplier, s1_nation, s1_region
    Where p_partkey = ps_partkey
    and s_suppkey = ps_suppkey
    and s_nationkey = n_nationkey
    and n_regionkey = r_regionkey
    and r_name = :region
)
order by s_acctbal desc,n_name,s_name,p_partkey;

Тестируемые системы

  • Tengri

    • 100 vCPU

    • 200GB RAM

  • Greenplum [1]

    • 1 координатор + 3 ноды по 30 vCPU, 64GB RAM

Результаты

Количество потоков Tengri, запросов в час Greenplum, запросов в час

1

302

304

5

1466

1082

10

2890

1444

20

4111

1800

При использовании системы одним аналитиком производительность Tengri и Greenplum сравнимая:

test result 1

При использовании системы 10 аналитиками Tengri опережает Greenplum за счет эффективной утилизации ресурсов без конкуренции:

test result 2

Tengri линейно масштабируется при увеличении количества аналитиков, эффективно утилизируя вычислительные ресурсы:

test result 3

1. Данные о производительности, содержащиеся на этом сайте, были получены в строго контролируемой среде Postgres Professional при моделировании предполагаемых аналитических нагрузок и носят справочный характер. Результаты, полученные в других условиях, могут отличаться.