Сравнительный отчет по тестированию TPC-H YMatrix и Greenplum

Обзор теста


Данный отчет о производительности сравнивает производительность YMatrix и Greenplum (далее GPDB) в сценариях аналитических запросов TPC-H. Результаты тестирования показывают, что YMatrix значительно превосходит GPDB при двух масштабах данных: 100 и 1000, с улучшением производительности на 13 и 12 раз соответственно.

TPC-H — это эталонный набор для поддержки принятия решений, включающий набор бизнес-ориентированных ад-хок-запросов и параллельных модификаций данных. Данные, используемые в выбранных запросах и базах данных, имеют широкую отраслевую применимость. Этот эталон демонстрирует способность системы поддержки принятия решений обрабатывать большие объемы данных, выполнять высокосложные запросы и отвечать на ключевые бизнес-вопросы, а также отражает многогранную способность системы баз данных обрабатывать запросы.

Тестовая среда


Аппаратная среда

Масштаб данных Машина vCPU ОЗУ Пропускная способность EBS
100 AWS EC2, m5.8xlarge 32 128 ГБ 10 Гбит/с gp3, iops = 3000, throughput = 125 МБ/с
1000 AWS EC2, m5.8xlarge 32 128 ГБ 10 Гбит/с io1, iops = 64000

Программная среда

Тест TPC-H для YMatrix выполнен в режиме одиночного развертывания с использованием метода развертывания по умолчанию, автоматически выбранного продуктами YMatrix. В описанной выше аппаратной среде задействовано 6 узлов Segment.

  • Ядро операционной системы: 3.10.0-1160.66.1.el7.x86_64
  • Версия ОС: CentOS Linux release 7.9.2009
  • YMatrix: корпоративная версия matrixdb5-5.0.0+enterprise_5.0.0; инструкции по развертыванию кластера YMatrix доступны на официальном сайте YMatrix и в инструменте TPC-H Benchmark YMatrix.
  • Greenplum: open-source-greenplum-db-6.23.3-rhel7-x86_64

План тестирования


YMatrix и GPDB были протестированы на масштабах данных 100 и 1000 соответственно. И YMatrix, и GPDB были настроены на 6 сегментов, и все результаты тестирования измерялись инженерами YMatrix с использованием одинаковой конфигурации оборудования.

Различия между тестами на масштабах 100 и 1000 следующие:

  • Поскольку данные масштаба 100 могут быть полностью закэшированы в конфигурации с 128 ГБ ОЗУ, для теста масштаба 100 используется диск типа gp3, а YMatrix тестирует как форматы сжатия lz4, так и zstd; для zstd compresslevel=1; открытая версия GPDB не поддерживает формат сжатия quicklz, поэтому используется только zstd, compresslevel=1.
  • При масштабе 1000 используются диски более высокой производительности типа io1, и как YMatrix, так и GPDB используют сжатие zstd, compresslevel=1.
  • В данном тесте statement_mem=1GB применяется при масштабе данных 100, а statement_mem=2GB — при масштабе данных 1000.

Тестовые данные


Данные TPC-H масштаба 100:

Таблица Записи YMatrix(lz4) YMatrix(zstd) GPDB(zstd)
nation 25 5 МБ 5 МБ 1 МБ
region 5 4 МБ 4 МБ 1 МБ
part 20 000 000 1 ГБ 690 МБ 592 МБ
partsupp 80 000 000 4 ГБ 3 ГБ 3 ГБ
supplier 1 000 000 97 МБ 70 МБ 55 МБ
customer 15 000 000 1 ГБ 969 МБ 861 МБ
orders 150 000 000 7 ГБ 5 ГБ 4 ГБ
lineitem 600 037 902 34 ГБ 19 ГБ 18 ГБ

Данные TPC-H масштаба 1000:

Таблица Записи YMatrix(zstd) GPDB(zstd)
nation 25 5 МБ 1 МБ
region 5 4 МБ 1 МБ
part 200 000 000 5 ГБ 5 ГБ
partsupp 800 000 000 29 ГБ 31 ГБ
supplier 10 000 000 616 МБ 538 МБ
customer 150 000 000 8 ГБ 8 ГБ
orders 1 500 000 000 46 ГБ 46 ГБ
lineitem 5 999 989 709 185 ГБ 184 ГБ

Шаги тестирования


  1. Подготовка тестовой среды

  2. Скачивание инструмента TPC-H benchmark

    git clone https://github.com/ymatrix-data/TPC-H.git

    Примечание!
    Инструмент TPC-H от YMatrix является открытым и простым в использовании — приглашаем попробовать.

  3. Выполнение скрипта tpch.sh

  • Настройка переменных окружения базы данных, указание порта и имени базы данных.
     export PGPORT=5432
     export PGDATABASE=tpch_s100
  • Запуск скрипта tpch.sh для генерации файла конфигурации tpch_variable.sh. Параметр -d позволяет выбрать тип базы данных, например matrixdb, greenplum, postgresql; параметр -s позволяет указать размер данных.
     ./tpch.sh -d matrixdb -s 100
  • После завершения редактирования файла конфигурации выполните tpch.sh одним щелчком. Скрипт автоматически сгенерирует данные, создаст таблицы, загрузит данные и выполнит все запросы TPC-H, а также сгенерирует время выполнения запросов.
     ./tpch.sh

    Примечание!
    При загрузке данных скрипт tpch.sh использует для YMatrix метод загрузки на основе инструмента MatrixGate, а для GPDB — метод на основе инструмента gpfdist.

  1. Важные параметры инструмента TPC-H benchmark

Вы можете настроить конкретные требования, настраивая файл конфигурации tpch_variable.sh:

  • Настройте RUN_GEN_DATA="true", чтобы указать генерируемые данные.
  • Настройте RUN_DDL="true", чтобы создать таблицы и индексы.
  • Настройте RUN_LOAD="true", чтобы указать загрузку данных.
  • Настройте RUN_SQL="true", чтобы выполнить все запросы TPC-H.
  • Настройте PREHEATING_DATA="true", чтобы указать, что файлы данных должны быть закэшированы в цикле прогрева.
  • Настройте SINGLE_USER_ITERATIONS="2". Если вышеуказанный параметр PREHEATING_DATA="true" включен, это означает, что запросы TPC-H будут выполняться 3 раза, при этом один результат — прогрев, и из двух оставшихся результатов берется минимальное значение.

Пример:

Если вы хотите повторить выполнение запросов TPC-H, достаточно изменить следующие параметры файла конфигурации tpch_variable.sh:

`RUN_COMPILE_TPCH="false"`
`RUN_GEN_DATA="false"`
`RUN_INIT="false"`
`RUN_LOAD="false"`
`RUN_SQL="true"`
`RUN_SINGLE_USER_REPORT="true"`

Затем снова выполните tpch.sh.

Выводы по тестированию


YMatrix и GPDB были протестированы в нескольких группах, и сравнение производительности проводилось на основе лучших результатов.

Данные производительности YMatrix TPC-H 100 используют формат сжатия lz4, а данные производительности GPDB TPC-H 100 используют zstd, compresslevel=1. Поскольку открытая версия GPDB не поддерживает формат сжатия quicklz, для сравнения в настоящее время можно использовать только zstd; Данные производительности TPC-H 1000 для YMatrix и GPDB используют оба формат сжатия zstd, compresslevel=1.

В плане производительности YMatrix значительно превосходит GPDB: оба масштаба TPC-H 100 и 1000 показывают более чем в 10 раз лучшую производительность по сравнению с GPDB.

Масштаб данных GPDB (мс) YMatrix (мс) Коэффициент улучшения
100 930 071 70 044 1300%
1000 15 273 254 1 265 478 1200%

Ниже приведены подробные результаты тестирования. YMatrix TPC-H 100 тестировался в двух форматах сжатия: lz4 и zstd. При этом lz4 показал лучшую производительность, поскольку память сервера в этом тесте достаточна для полного кэширования всех файлов данных, поэтому коэффициент сжатия ниже, но благодаря лучшей производительности декомпрессии формат lz4 достигает более высокой производительности.

GPDB тестировался в сценариях с включенным и выключенным ORCA, и было обнаружено, что производительность ORCA хуже в сценарии TPC-H 1000, а лучше — в сценарии TPC-H 100. Кроме того, все тесты YMatrix проводились при выключенном ORCA.

(мс) YMatrix TPC-H 100 planner lz4 YMatrix TPC-H 100 planner zstd GPDB TPC-H 100 orca zstd GPDB TPC-H 1000 planner zstd YMatrix TPC-H 1000 planner zstd GPDB TPC-H 1000 orca zstd GPDB TPC-H 1000 planner zstd
Q01 4 200 4 846 94 271 90 473 53 291 929 166 907 474
Q02 1 228 1 417 13 134 11 005 12 960 163 967 132 898
Q03 4 409 4 860 31 654 32 057 50 194 406 933 456 339
Q04 4 965 4 947 40 743 30 522 103 699 492 440 429 417
Q05 4 405 5 226 43 100 40 094 88 930 787 161 569 668
Q06 183 254 4 066 3 995 2 852 40 141 38 985
Q07 1 865 2 219 29 294 28 879 29 921 340 402 402 481
Q08 2 239 3 123 51 852 49 998 41 305 610 720 650 542
Q09 7 012 8 229 84 506 91 597 248 033 1 072 529 1 719 890
Q10 3 861 4 469 61 953 28 238 64 568 810 094 395 927
Q11 470 569 5 937 10 010 6 475 54 006 97 012
Q12 2 319 2 486 27 271 30 032 26 964 326 579 335 811
Q13 4 610 4 458 34 345 26 018 72 861 631 285 651 340
Q14 588 696 5 591 3 318 7 277 48 476 47 320
Q15 1 310 1 249 9 579 12 001 31 236 93 387 172 448
Q16 1 471 1 584 8 493 22 038 25 295 141 958 492 614
Q17 1 613 1 960 154 488 143 057 28 158 3 299 179 3 272 970
Q18 7 225 6 950 78 451 89 587 93 391 1 064 011 1 276 977
Q19 3 225 4 173 22 224 21 027 40 080 217 796 208 500
Q20 850 1 004 24 920 24 818 9 596 293 892 421 818
Q21 10 219 10 529 149 483 128 112 205 788 2 427 732 2 420 413
Q22 1 777 1 858 19 866 13 196 22 603 226 963 172 399
SUM 70 044 77 107 995 221 930 071 1 265 478 14 478 829 15 273 254