Бенчмарк TPC-H
TPC-H — это бенчмарк для поддержки принятия решений, разработанный Советом по производительности обработки транзакций (TPC). Он состоит из набора бизнес-ориентированных ad-hoc запросов и одновременных модификаций данных. TPC-H может использоваться для построения моделей на основе реальных производственных сред для симуляции хранилища данных системы продаж. Этот тест использует восемь таблиц с размером данных от 1 ГБ до 3 ТБ. Тестируется в общей сложности 22 запроса, и основными метриками производительности являются время отклика каждого запроса, которое представляет собой продолжительность между моментом отправки запроса и моментом возврата результата.
1. Заключение теста
Был проведен сравнительный тест на наборе данных TPC-H масштаба 100G с общим количеством 22 запросов. Результаты следующие:

Selena протестировала два метода, используя локальное хранилище и запросы к таблицам Hive. Таблица Hive Selena и Trino запрашивают одни и те же данные. Данные хранятся в формате ORC и сжаты в формате zlib.
Задержка для Selena при запросе данных из собственного хранилища составляет 21с, для Selena при запросе внешних таблиц Hive составляет 92с, а для Trino при запросе внешних таблиц Hive составила 187с.
2. Подготовка к тесту
2.1 Аппаратная среда
| Машина | 4 облачных хоста |
|---|---|
| CPU | 16core Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz |
| Память | 64 ГБ |
| Пропускная способность сети | 5 Гбит/с |
| Диск | Облачный диск ESSD |
2.2 Программная среда
Selena и Trino развернуты на машинах с одинаковой конфигурацией. Selena имеет 1 FE и 3 BE развернутых. Trino имеет 1 Coordinator и 3 Workers развернутых.
-
Версия ядра: Linux 3.10.0-1127.13.1.el7.x86_64
-
Версия операционной системы: CentOS Linux release 7.8.2003
-
Версия программного обеспечения: Selena 1.5, Trino-419, Hive-2.3.9
3 Тестовые данные и результаты
3.1 Тестовые данные
| таблица | количество строк |
|---|---|
| customer | 15 миллионов |
| lineitem | 600 миллионов |
| nation | 25 |
| orders | 150 миллионов |
| part | 20 миллионов |
| partsupp | 80 миллионов |
| region | 5 |
| supplier | 1 миллион |
3.2 Результаты теста
Единица измерения результатов запросов — мс. Меньше — лучше. Все запросы прогреваются 1 раз, а затем выполняются 3 раза для получения среднего значения в качестве результата.
| Запрос | Selena-native-3.0 | Selena-3.0-Hive external | Trino-419 |
|---|---|---|---|
| Q1 | 1540 | 5660 | 8811 |
| Q2 | 100 | 1593 | 3009 |
| Q3 | 700 | 5286 | 7891 |
| Q4 | 423 | 2110 | 5760 |
| Q5 | 1180 | 4453 | 9181 |
| Q6 | 56 | 2806 | 4029 |
| Q7 | 903 | 4910 | 7158 |
| Q8 | 546 | 4766 | 8014 |
| Q9 | 2553 | 8010 | 18460 |
| Q10 | 776 | 8190 | 9997 |
| Q11 | 206 | 920 | 2088 |
| Q12 | 166 | 2916 | 4852 |
| Q13 | 1663 | 3420 | 7203 |
| Q14 | 146 | 3286 | 4995 |
| Q15 | 123 | 4173 | 9688 |
| Q16 | 353 | 1126 | 2545 |
| Q17 | 296 | 3426 | 18970 |
| Q18 | 2713 | 7960 | 21763 |
| Q19 | 246 | 4406 | 6586 |
| Q20 | 176 | 3280 | 6632 |
| Q21 | 1410 | 7933 | 16873 |
| Q22 | 350 | 1190 | 2788 |
| СУММА | 16625 | 91820 | 187293 |